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

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

Stark Tower Defense - this TD game does feature 3 Boss enemies.swf

This is the info page for
Flash #91503

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


Text
THE FOLLOWING IS AN ADVERTISEMENT

WEAPON X

WEAPON X
EE

HOW TO PLAY

CHARACTERS

MORE GAMES

PAUSE GAME

MAIN MENU

YOUR BEST SCORE

<p align="left"><font face="BadaBoom BB" size="18" color="#000000" letterSpacing="1.000000" kerning="0">123,456,789</font></p>

CASH:

YOUR SCORE

<p align="left"><font face="BadaBoom BB" size="21" color="#000000" letterSpacing="1.000000" kerning="0">$10,000</font></p>

<p align="center"><font face="BadaBoom BB" size="18" color="#000000" letterSpacing="1.000000" kerning="0">123,456,789</font></p>

<p align="center"><font face="Mighty Zeo Caps" size="12" color="#000000" letterSpacing="0.000000" kerning="1">The superior mind of MODOK will crush your measly defenses!</font></p>

SPEED :

RANGE :

DAMAGE :

<p align="center"><font face="Mighty Zeo" size="10" color="#ffffff" letterSpacing="1.000000" kerning="0">$50</font></p>

$50

X

STARK TOWER
STRENGTH:

<p align="left"><font face="BadaBoom BB" size="16" color="#000000" letterSpacing="1.000000" kerning="0">1/50</font></p>

$2,000

COST :

ActionScript [AS3]

Section 1
//ChunkUI (assets.effects.ChunkUI) package assets.effects { import flash.display.*; public dynamic class ChunkUI extends MovieClip { } }//package assets.effects
Section 2
//ExplodeUI (assets.effects.ExplodeUI) package assets.effects { import flash.display.*; public dynamic class ExplodeUI extends MovieClip { } }//package assets.effects
Section 3
//MapScar (assets.effects.MapScar) package assets.effects { import flash.display.*; public dynamic class MapScar extends MovieClip { } }//package assets.effects
Section 4
//ParticleUI (assets.effects.ParticleUI) package assets.effects { import flash.display.*; public dynamic class ParticleUI extends MovieClip { } }//package assets.effects
Section 5
//AIMSentry_BlueClip (assets.enemies.AIMSentry_BlueClip) package assets.enemies { import flash.display.*; public dynamic class AIMSentry_BlueClip extends MovieClip { public function AIMSentry_BlueClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 6
//AIMSentry_RedClip (assets.enemies.AIMSentry_RedClip) package assets.enemies { import flash.display.*; public dynamic class AIMSentry_RedClip extends MovieClip { public function AIMSentry_RedClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 7
//AIMSentry_YellowClip (assets.enemies.AIMSentry_YellowClip) package assets.enemies { import flash.display.*; public dynamic class AIMSentry_YellowClip extends MovieClip { public function AIMSentry_YellowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 8
//AIMSentryShadowClip (assets.enemies.AIMSentryShadowClip) package assets.enemies { import flash.display.*; public dynamic class AIMSentryShadowClip extends MovieClip { public function AIMSentryShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 9
//AttackAPCClip (assets.enemies.AttackAPCClip) package assets.enemies { import flash.display.*; public dynamic class AttackAPCClip extends MovieClip { public function AttackAPCClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 10
//AttackAPCShadowClip (assets.enemies.AttackAPCShadowClip) package assets.enemies { import flash.display.*; public dynamic class AttackAPCShadowClip extends MovieClip { public function AttackAPCShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 11
//CruiseMissileClip (assets.enemies.CruiseMissileClip) package assets.enemies { import flash.display.*; public dynamic class CruiseMissileClip extends MovieClip { public function CruiseMissileClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 12
//CruiseMissileShadowClip (assets.enemies.CruiseMissileShadowClip) package assets.enemies { import flash.display.*; public dynamic class CruiseMissileShadowClip extends MovieClip { public function CruiseMissileShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 13
//DoombotClip (assets.enemies.DoombotClip) package assets.enemies { import flash.display.*; public dynamic class DoombotClip extends MovieClip { public function DoombotClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 14
//DoombotShadow (assets.enemies.DoombotShadow) package assets.enemies { import flash.display.*; public dynamic class DoombotShadow extends MovieClip { public function DoombotShadow(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 15
//DrDoomClip (assets.enemies.DrDoomClip) package assets.enemies { import flash.display.*; public dynamic class DrDoomClip extends MovieClip { public function DrDoomClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 16
//DrDoomShadowClip (assets.enemies.DrDoomShadowClip) package assets.enemies { import flash.display.*; public dynamic class DrDoomShadowClip extends MovieClip { public function DrDoomShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 17
//HealthBar (assets.enemies.HealthBar) package assets.enemies { import flash.display.*; public dynamic class HealthBar extends MovieClip { public var green_mc:MovieClip; public var red_mc:MovieClip; } }//package assets.enemies
Section 18
//HeavyTankClip (assets.enemies.HeavyTankClip) package assets.enemies { import flash.display.*; public dynamic class HeavyTankClip extends MovieClip { public function HeavyTankClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 19
//HeavyTankShadowClip (assets.enemies.HeavyTankShadowClip) package assets.enemies { import flash.display.*; public dynamic class HeavyTankShadowClip extends MovieClip { public function HeavyTankShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 20
//HelicopterClip (assets.enemies.HelicopterClip) package assets.enemies { import flash.display.*; public dynamic class HelicopterClip extends MovieClip { public function HelicopterClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 21
//HelicopterShadowClip (assets.enemies.HelicopterShadowClip) package assets.enemies { import flash.display.*; public dynamic class HelicopterShadowClip extends MovieClip { public function HelicopterShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 22
//JeepClip (assets.enemies.JeepClip) package assets.enemies { import flash.display.*; public dynamic class JeepClip extends MovieClip { public function JeepClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 23
//JeepShadowClip (assets.enemies.JeepShadowClip) package assets.enemies { import flash.display.*; public dynamic class JeepShadowClip extends MovieClip { public function JeepShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 24
//LightTankClip (assets.enemies.LightTankClip) package assets.enemies { import flash.display.*; public dynamic class LightTankClip extends MovieClip { public function LightTankClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 25
//LightTankShadowClip (assets.enemies.LightTankShadowClip) package assets.enemies { import flash.display.*; public dynamic class LightTankShadowClip extends MovieClip { public function LightTankShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 26
//ModokClip (assets.enemies.ModokClip) package assets.enemies { import flash.display.*; public dynamic class ModokClip extends MovieClip { public function ModokClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 27
//ModokShadowClip (assets.enemies.ModokShadowClip) package assets.enemies { import flash.display.*; public dynamic class ModokShadowClip extends MovieClip { public function ModokShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 28
//MoleManClip (assets.enemies.MoleManClip) package assets.enemies { import flash.display.*; public dynamic class MoleManClip extends MovieClip { public function MoleManClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 29
//MoleManShadowClip (assets.enemies.MoleManShadowClip) package assets.enemies { import flash.display.*; public dynamic class MoleManShadowClip extends MovieClip { public function MoleManShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 30
//MoleoidClip (assets.enemies.MoleoidClip) package assets.enemies { import flash.display.*; public dynamic class MoleoidClip extends MovieClip { public function MoleoidClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 31
//MoleoidShadowClip (assets.enemies.MoleoidShadowClip) package assets.enemies { import flash.display.*; public dynamic class MoleoidShadowClip extends MovieClip { public function MoleoidShadowClip(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets.enemies
Section 32
//BlasterTowerIcon (assets.hud.BlasterTowerIcon) package assets.hud { import flash.display.*; public dynamic class BlasterTowerIcon extends MovieClip { } }//package assets.hud
Section 33
//BossPopupPanel (assets.hud.BossPopupPanel) package assets.hud { import flash.display.*; import flash.text.*; public dynamic class BossPopupPanel extends MovieClip { public var txt:TextField; public var avatar:MovieClip; } }//package assets.hud
Section 34
//BuyPanel (assets.hud.BuyPanel) package assets.hud { import flash.display.*; public dynamic class BuyPanel extends MovieClip { public var msmarvelDisabled:MovieClip; public var ironmanOver:MovieClip; public var spidermanOver:MovieClip; public var thorOver:MovieClip; public var cyclopsDisabled:MovieClip; public var cyclopsEnabled:MovieClip; public var ironmanEnabled:MovieClip; public var msmarvelOver:MovieClip; public var cyclopsOver:MovieClip; public var thorEnabled:MovieClip; public var msmarvelEnabled:MovieClip; public var spidermanEnabled:MovieClip; public var ironmanDisabled:MovieClip; public var spidermanDisabled:MovieClip; public var thorDisabled:MovieClip; } }//package assets.hud
Section 35
//BuyStatsPanel (assets.hud.BuyStatsPanel) package assets.hud { import flash.display.*; import flash.text.*; public dynamic class BuyStatsPanel extends MovieClip { public var label:MovieClip; public var cost_txt:TextField; public var statBar:StatBar; } }//package assets.hud
Section 36
//ConfirmExitScreen (assets.hud.ConfirmExitScreen) package assets.hud { import flash.display.*; public dynamic class ConfirmExitScreen extends MovieClip { public var noButton:MovieClip; public var yesGlow:MovieClip; public var yesButton:MovieClip; public var noGlow:MovieClip; } }//package assets.hud
Section 37
//DifficultySelectScreen (assets.hud.DifficultySelectScreen) package assets.hud { import flash.display.*; public dynamic class DifficultySelectScreen extends MovieClip { public var epicGlow:MovieClip; public var epicButton:MovieClip; public var normalButton:MovieClip; public var normalGlow:MovieClip; } }//package assets.hud
Section 38
//GameBottomPanel (assets.hud.GameBottomPanel) package assets.hud { import flash.display.*; import flash.text.*; public dynamic class GameBottomPanel extends MovieClip { public var livesProgress:MovieClip; public var sendNextWave:MovieClip; public var waveProgress:MovieClip; public var nextWaveGlow:MovieClip; public var wave_txt:TextField; } }//package assets.hud
Section 39
//GameDefeatScreen (assets.hud.GameDefeatScreen) package assets.hud { import flash.display.*; public dynamic class GameDefeatScreen extends MovieClip { } }//package assets.hud
Section 40
//GameHelpScreen (assets.hud.GameHelpScreen) package assets.hud { import flash.display.*; public dynamic class GameHelpScreen extends MovieClip { public var closeButton:MovieClip; public var closeGlow:MovieClip; } }//package assets.hud
Section 41
//GamePauseScreen (assets.hud.GamePauseScreen) package assets.hud { import flash.display.*; public dynamic class GamePauseScreen extends MovieClip { public var pauseButton:MovieClip; public var pauseGlow:MovieClip; } }//package assets.hud
Section 42
//GameTopPanel (assets.hud.GameTopPanel) package assets.hud { import flash.display.*; import flash.text.*; public dynamic class GameTopPanel extends MovieClip { public var score_txt:TextField; public var cash_txt:TextField; public var helpBtn:MovieClip; public var scoretext:TextField; } }//package assets.hud
Section 43
//GameVictoryScreen (assets.hud.GameVictoryScreen) package assets.hud { import flash.display.*; public dynamic class GameVictoryScreen extends MovieClip { public var skipGlowBtn:MovieClip; public var victoryImage:MovieClip; public var videoWindow:MovieClip; public var skipBtn:MovieClip; } }//package assets.hud
Section 44
//HoverAllowed (assets.hud.HoverAllowed) package assets.hud { import flash.display.*; public dynamic class HoverAllowed extends MovieClip { } }//package assets.hud
Section 45
//HoverDenied (assets.hud.HoverDenied) package assets.hud { import flash.display.*; public dynamic class HoverDenied extends MovieClip { } }//package assets.hud
Section 46
//HudBG (assets.hud.HudBG) package assets.hud { import flash.display.*; public dynamic class HudBG extends MovieClip { } }//package assets.hud
Section 47
//LaserTowerIcon (assets.hud.LaserTowerIcon) package assets.hud { import flash.display.*; public dynamic class LaserTowerIcon extends MovieClip { } }//package assets.hud
Section 48
//LightningTowerIcon (assets.hud.LightningTowerIcon) package assets.hud { import flash.display.*; public dynamic class LightningTowerIcon extends MovieClip { } }//package assets.hud
Section 49
//RocketTowerIcon (assets.hud.RocketTowerIcon) package assets.hud { import flash.display.*; public dynamic class RocketTowerIcon extends MovieClip { } }//package assets.hud
Section 50
//SelectedPanel (assets.hud.SelectedPanel) package assets.hud { import flash.display.*; public dynamic class SelectedPanel extends MovieClip { public var badge:MovieClip; public var sellOver:MovieClip; public var upgradeOver:MovieClip; public var closeOver:MovieClip; public var label:MovieClip; public var closeOff:MovieClip; public var icon:MovieClip; public var upgradeOff:MovieClip; public var sellOff:MovieClip; public var statBar:StatBar; } }//package assets.hud
Section 51
//SlowdownTowerIcon (assets.hud.SlowdownTowerIcon) package assets.hud { import flash.display.*; public dynamic class SlowdownTowerIcon extends MovieClip { } }//package assets.hud
Section 52
//StatBar (assets.hud.StatBar) package assets.hud { import flash.display.*; public dynamic class StatBar extends MovieClip { public var frequency:MovieClip; public var range:MovieClip; public var damage:MovieClip; } }//package assets.hud
Section 53
//DamageFlash (assets.level01.fortress.DamageFlash) package assets.level01.fortress { import flash.display.*; public dynamic class DamageFlash extends MovieClip { } }//package assets.level01.fortress
Section 54
//HealthFull (assets.level01.fortress.HealthFull) package assets.level01.fortress { import flash.display.*; public dynamic class HealthFull extends MovieClip { } }//package assets.level01.fortress
Section 55
//HealthLow (assets.level01.fortress.HealthLow) package assets.level01.fortress { import flash.display.*; public dynamic class HealthLow extends MovieClip { } }//package assets.level01.fortress
Section 56
//HealthMedium (assets.level01.fortress.HealthMedium) package assets.level01.fortress { import flash.display.*; public dynamic class HealthMedium extends MovieClip { } }//package assets.level01.fortress
Section 57
//BlasterTowerL1 (assets.towers.BlasterTowerL1) package assets.towers { import flash.display.*; public dynamic class BlasterTowerL1 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 58
//BlasterTowerL2 (assets.towers.BlasterTowerL2) package assets.towers { import flash.display.*; public dynamic class BlasterTowerL2 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 59
//BlasterTowerL3 (assets.towers.BlasterTowerL3) package assets.towers { import flash.display.*; public dynamic class BlasterTowerL3 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 60
//BlasterTowerShadowL1 (assets.towers.BlasterTowerShadowL1) package assets.towers { import flash.display.*; public dynamic class BlasterTowerShadowL1 extends MovieClip { } }//package assets.towers
Section 61
//BlasterTowerShadowL2 (assets.towers.BlasterTowerShadowL2) package assets.towers { import flash.display.*; public dynamic class BlasterTowerShadowL2 extends MovieClip { } }//package assets.towers
Section 62
//BlasterTowerShadowL3 (assets.towers.BlasterTowerShadowL3) package assets.towers { import flash.display.*; public dynamic class BlasterTowerShadowL3 extends MovieClip { } }//package assets.towers
Section 63
//LaserTowerL1 (assets.towers.LaserTowerL1) package assets.towers { import flash.display.*; public dynamic class LaserTowerL1 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 64
//LaserTowerL2 (assets.towers.LaserTowerL2) package assets.towers { import flash.display.*; public dynamic class LaserTowerL2 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 65
//LaserTowerL3 (assets.towers.LaserTowerL3) package assets.towers { import flash.display.*; public dynamic class LaserTowerL3 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 66
//LaserTowerShadowL1 (assets.towers.LaserTowerShadowL1) package assets.towers { import flash.display.*; public dynamic class LaserTowerShadowL1 extends MovieClip { } }//package assets.towers
Section 67
//LaserTowerShadowL2 (assets.towers.LaserTowerShadowL2) package assets.towers { import flash.display.*; public dynamic class LaserTowerShadowL2 extends MovieClip { } }//package assets.towers
Section 68
//LaserTowerShadowL3 (assets.towers.LaserTowerShadowL3) package assets.towers { import flash.display.*; public dynamic class LaserTowerShadowL3 extends MovieClip { } }//package assets.towers
Section 69
//LightningTowerL1 (assets.towers.LightningTowerL1) package assets.towers { import flash.display.*; public dynamic class LightningTowerL1 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 70
//LightningTowerL2 (assets.towers.LightningTowerL2) package assets.towers { import flash.display.*; public dynamic class LightningTowerL2 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 71
//LightningTowerL3 (assets.towers.LightningTowerL3) package assets.towers { import flash.display.*; public dynamic class LightningTowerL3 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 72
//LightningTowerShadowL1 (assets.towers.LightningTowerShadowL1) package assets.towers { import flash.display.*; public dynamic class LightningTowerShadowL1 extends MovieClip { } }//package assets.towers
Section 73
//LightningTowerShadowL2 (assets.towers.LightningTowerShadowL2) package assets.towers { import flash.display.*; public dynamic class LightningTowerShadowL2 extends MovieClip { } }//package assets.towers
Section 74
//LightningTowerShadowL3 (assets.towers.LightningTowerShadowL3) package assets.towers { import flash.display.*; public dynamic class LightningTowerShadowL3 extends MovieClip { } }//package assets.towers
Section 75
//RocketTowerL1 (assets.towers.RocketTowerL1) package assets.towers { import flash.display.*; public dynamic class RocketTowerL1 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 76
//RocketTowerL2 (assets.towers.RocketTowerL2) package assets.towers { import flash.display.*; public dynamic class RocketTowerL2 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 77
//RocketTowerL3 (assets.towers.RocketTowerL3) package assets.towers { import flash.display.*; public dynamic class RocketTowerL3 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 78
//RocketTowerShadowL1 (assets.towers.RocketTowerShadowL1) package assets.towers { import flash.display.*; public dynamic class RocketTowerShadowL1 extends MovieClip { } }//package assets.towers
Section 79
//RocketTowerShadowL2 (assets.towers.RocketTowerShadowL2) package assets.towers { import flash.display.*; public dynamic class RocketTowerShadowL2 extends MovieClip { } }//package assets.towers
Section 80
//RocketTowerShadowL3 (assets.towers.RocketTowerShadowL3) package assets.towers { import flash.display.*; public dynamic class RocketTowerShadowL3 extends MovieClip { } }//package assets.towers
Section 81
//SlowdownTowerL1 (assets.towers.SlowdownTowerL1) package assets.towers { import flash.display.*; public dynamic class SlowdownTowerL1 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 82
//SlowdownTowerL2 (assets.towers.SlowdownTowerL2) package assets.towers { import flash.display.*; public dynamic class SlowdownTowerL2 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 83
//SlowdownTowerL3 (assets.towers.SlowdownTowerL3) package assets.towers { import flash.display.*; public dynamic class SlowdownTowerL3 extends MovieClip { public var gunfire:MovieClip; } }//package assets.towers
Section 84
//SlowdownTowerShadowL1 (assets.towers.SlowdownTowerShadowL1) package assets.towers { import flash.display.*; public dynamic class SlowdownTowerShadowL1 extends MovieClip { } }//package assets.towers
Section 85
//SlowdownTowerShadowL2 (assets.towers.SlowdownTowerShadowL2) package assets.towers { import flash.display.*; public dynamic class SlowdownTowerShadowL2 extends MovieClip { } }//package assets.towers
Section 86
//SlowdownTowerShadowL3 (assets.towers.SlowdownTowerShadowL3) package assets.towers { import flash.display.*; public dynamic class SlowdownTowerShadowL3 extends MovieClip { } }//package assets.towers
Section 87
//GameMask (assets.ui.GameMask) package assets.ui { import flash.display.*; public dynamic class GameMask extends MovieClip { } }//package assets.ui
Section 88
//RocketProjectileL1 (assets.weapons.RocketProjectileL1) package assets.weapons { import flash.display.*; public dynamic class RocketProjectileL1 extends MovieClip { } }//package assets.weapons
Section 89
//RocketProjectileL2 (assets.weapons.RocketProjectileL2) package assets.weapons { import flash.display.*; public dynamic class RocketProjectileL2 extends MovieClip { } }//package assets.weapons
Section 90
//RocketProjectileL3 (assets.weapons.RocketProjectileL3) package assets.weapons { import flash.display.*; public dynamic class RocketProjectileL3 extends MovieClip { } }//package assets.weapons
Section 91
//SlowdownExplosion (assets.weapons.SlowdownExplosion) package assets.weapons { import flash.display.*; public dynamic class SlowdownExplosion extends MovieClip { } }//package assets.weapons
Section 92
//SlowdownProjectile (assets.weapons.SlowdownProjectile) package assets.weapons { import flash.display.*; public dynamic class SlowdownProjectile extends MovieClip { } }//package assets.weapons
Section 93
//Level01 (assets.Level01) package assets { import flash.display.*; public dynamic class Level01 extends MovieClip { } }//package assets
Section 94
//Level01_animated (assets.Level01_animated) package assets { import flash.display.*; public dynamic class Level01_animated extends MovieClip { } }//package assets
Section 95
//Level01Background (assets.Level01Background) package assets { import flash.display.*; public dynamic class Level01Background extends MovieClip { } }//package assets
Section 96
//BlasterGunfire1_rocket_116 (assets_fla.BlasterGunfire1_rocket_116) package assets_fla { import flash.display.*; public dynamic class BlasterGunfire1_rocket_116 extends MovieClip { public function BlasterGunfire1_rocket_116(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 97
//BossPopupAvatars_75 (assets_fla.BossPopupAvatars_75) package assets_fla { import flash.display.*; public dynamic class BossPopupAvatars_75 extends MovieClip { public function BossPopupAvatars_75(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_fla
Section 98
//towerLevelBadge_42 (assets_fla.towerLevelBadge_42) package assets_fla { import flash.display.*; public dynamic class towerLevelBadge_42 extends MovieClip { public function towerLevelBadge_42(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package assets_fla
Section 99
//towerSelectedIcons_41 (assets_fla.towerSelectedIcons_41) package assets_fla { import flash.display.*; public dynamic class towerSelectedIcons_41 extends MovieClip { public function towerSelectedIcons_41(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package assets_fla
Section 100
//towerTitleLabels_40 (assets_fla.towerTitleLabels_40) package assets_fla { import flash.display.*; public dynamic class towerTitleLabels_40 extends MovieClip { public function towerTitleLabels_40(){ addFrameScript(0, frame1, 1, frame2); } function frame1(){ stop(); } function frame2(){ stop(); } } }//package assets_fla
Section 101
//bleep1 (assets_sfx.sfx.common.bleep1) package assets_sfx.sfx.common { import flash.media.*; public dynamic class bleep1 extends Sound { } }//package assets_sfx.sfx.common
Section 102
//bleep2 (assets_sfx.sfx.common.bleep2) package assets_sfx.sfx.common { import flash.media.*; public dynamic class bleep2 extends Sound { } }//package assets_sfx.sfx.common
Section 103
//bleep3 (assets_sfx.sfx.common.bleep3) package assets_sfx.sfx.common { import flash.media.*; public dynamic class bleep3 extends Sound { } }//package assets_sfx.sfx.common
Section 104
//NavButtonSound (assets_sfx.sfx.common.NavButtonSound) package assets_sfx.sfx.common { import flash.media.*; public dynamic class NavButtonSound extends Sound { } }//package assets_sfx.sfx.common
Section 105
//PanelSound (assets_sfx.sfx.common.PanelSound) package assets_sfx.sfx.common { import flash.media.*; public dynamic class PanelSound extends Sound { } }//package assets_sfx.sfx.common
Section 106
//PanelSound2 (assets_sfx.sfx.common.PanelSound2) package assets_sfx.sfx.common { import flash.media.*; public dynamic class PanelSound2 extends Sound { } }//package assets_sfx.sfx.common
Section 107
//BossExplosion (assets_sfx.sfx.explosions.BossExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class BossExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 108
//EnemyObjective (assets_sfx.sfx.explosions.EnemyObjective) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class EnemyObjective extends Sound { } }//package assets_sfx.sfx.explosions
Section 109
//HeavyExplosion (assets_sfx.sfx.explosions.HeavyExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class HeavyExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 110
//HeliExplosion (assets_sfx.sfx.explosions.HeliExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class HeliExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 111
//MediumExplosion (assets_sfx.sfx.explosions.MediumExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class MediumExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 112
//MediumGlassExplosion (assets_sfx.sfx.explosions.MediumGlassExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class MediumGlassExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 113
//MediumVehicleExplosion (assets_sfx.sfx.explosions.MediumVehicleExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class MediumVehicleExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 114
//SmallExplosion (assets_sfx.sfx.explosions.SmallExplosion) package assets_sfx.sfx.explosions { import flash.media.*; public dynamic class SmallExplosion extends Sound { } }//package assets_sfx.sfx.explosions
Section 115
//GameLoop (assets_sfx.sfx.music.GameLoop) package assets_sfx.sfx.music { import flash.media.*; public dynamic class GameLoop extends Sound { } }//package assets_sfx.sfx.music
Section 116
//MenuLoop (assets_sfx.sfx.music.MenuLoop) package assets_sfx.sfx.music { import flash.media.*; public dynamic class MenuLoop extends Sound { } }//package assets_sfx.sfx.music
Section 117
//TowerBuild (assets_sfx.sfx.towers.TowerBuild) package assets_sfx.sfx.towers { import flash.media.*; public dynamic class TowerBuild extends Sound { } }//package assets_sfx.sfx.towers
Section 118
//TowerSell (assets_sfx.sfx.towers.TowerSell) package assets_sfx.sfx.towers { import flash.media.*; public dynamic class TowerSell extends Sound { } }//package assets_sfx.sfx.towers
Section 119
//TowerUpgrade (assets_sfx.sfx.towers.TowerUpgrade) package assets_sfx.sfx.towers { import flash.media.*; public dynamic class TowerUpgrade extends Sound { } }//package assets_sfx.sfx.towers
Section 120
//BlasterFire (assets_sfx.sfx.weapons.BlasterFire) package assets_sfx.sfx.weapons { import flash.media.*; public dynamic class BlasterFire extends Sound { } }//package assets_sfx.sfx.weapons
Section 121
//LaserFire (assets_sfx.sfx.weapons.LaserFire) package assets_sfx.sfx.weapons { import flash.media.*; public dynamic class LaserFire extends Sound { } }//package assets_sfx.sfx.weapons
Section 122
//LightningFire (assets_sfx.sfx.weapons.LightningFire) package assets_sfx.sfx.weapons { import flash.media.*; public dynamic class LightningFire extends Sound { } }//package assets_sfx.sfx.weapons
Section 123
//RocketExplosion (assets_sfx.sfx.weapons.RocketExplosion) package assets_sfx.sfx.weapons { import flash.media.*; public dynamic class RocketExplosion extends Sound { } }//package assets_sfx.sfx.weapons
Section 124
//RocketFire (assets_sfx.sfx.weapons.RocketFire) package assets_sfx.sfx.weapons { import flash.media.*; public dynamic class RocketFire extends Sound { } }//package assets_sfx.sfx.weapons
Section 125
//SlowdownFire (assets_sfx.sfx.weapons.SlowdownFire) package assets_sfx.sfx.weapons { import flash.media.*; public dynamic class SlowdownFire extends Sound { } }//package assets_sfx.sfx.weapons
Section 126
//browserBg (assets_ui.pages.characterBrowser.browserBg) package assets_ui.pages.characterBrowser { import flash.display.*; public dynamic class browserBg extends MovieClip { public var cyclopsOff:MovieClip; public var drdoomOff:MovieClip; public var msmarvelOff:MovieClip; public var molemanOff:MovieClip; public var ironmanOn:MovieClip; public var thorOn:MovieClip; public var thorOff:MovieClip; public var spidermanOff:MovieClip; public var spidermanOn:MovieClip; public var modokOn:MovieClip; public var molemanOn:MovieClip; public var msmarvelOn:MovieClip; public var modokOff:MovieClip; public var cyclopsOn:MovieClip; public var drdoomOn:MovieClip; public var ironmanOff:MovieClip; public var bgPanel:MovieClip; } }//package assets_ui.pages.characterBrowser
Section 127
//CyclopsPage (assets_ui.pages.characters.CyclopsPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class CyclopsPage extends MovieClip { } }//package assets_ui.pages.characters
Section 128
//DrdoomPage (assets_ui.pages.characters.DrdoomPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class DrdoomPage extends MovieClip { } }//package assets_ui.pages.characters
Section 129
//IronmanPage (assets_ui.pages.characters.IronmanPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class IronmanPage extends MovieClip { } }//package assets_ui.pages.characters
Section 130
//ModokPage (assets_ui.pages.characters.ModokPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class ModokPage extends MovieClip { } }//package assets_ui.pages.characters
Section 131
//MolemanPage (assets_ui.pages.characters.MolemanPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class MolemanPage extends MovieClip { } }//package assets_ui.pages.characters
Section 132
//MsmarvelPage (assets_ui.pages.characters.MsmarvelPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class MsmarvelPage extends MovieClip { } }//package assets_ui.pages.characters
Section 133
//SpidermanPage (assets_ui.pages.characters.SpidermanPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class SpidermanPage extends MovieClip { } }//package assets_ui.pages.characters
Section 134
//ThorPage (assets_ui.pages.characters.ThorPage) package assets_ui.pages.characters { import flash.display.*; public dynamic class ThorPage extends MovieClip { } }//package assets_ui.pages.characters
Section 135
//CyclopsPage (assets_ui.pages.help.defenders.CyclopsPage) package assets_ui.pages.help.defenders { import flash.display.*; public dynamic class CyclopsPage extends MovieClip { } }//package assets_ui.pages.help.defenders
Section 136
//IronmanPage (assets_ui.pages.help.defenders.IronmanPage) package assets_ui.pages.help.defenders { import flash.display.*; public dynamic class IronmanPage extends MovieClip { } }//package assets_ui.pages.help.defenders
Section 137
//MsmarvelPage (assets_ui.pages.help.defenders.MsmarvelPage) package assets_ui.pages.help.defenders { import flash.display.*; public dynamic class MsmarvelPage extends MovieClip { } }//package assets_ui.pages.help.defenders
Section 138
//SpidermanPage (assets_ui.pages.help.defenders.SpidermanPage) package assets_ui.pages.help.defenders { import flash.display.*; public dynamic class SpidermanPage extends MovieClip { } }//package assets_ui.pages.help.defenders
Section 139
//ThorPage (assets_ui.pages.help.defenders.ThorPage) package assets_ui.pages.help.defenders { import flash.display.*; public dynamic class ThorPage extends MovieClip { } }//package assets_ui.pages.help.defenders
Section 140
//HelpPage1 (assets_ui.pages.help.HelpPage1) package assets_ui.pages.help { import flash.display.*; public dynamic class HelpPage1 extends MovieClip { } }//package assets_ui.pages.help
Section 141
//HelpPage2 (assets_ui.pages.help.HelpPage2) package assets_ui.pages.help { import flash.display.*; public dynamic class HelpPage2 extends MovieClip { public var spidermanOn:MovieClip; public var msmarvelOff:MovieClip; public var msmarvelOn:MovieClip; public var ironmanOn:MovieClip; public var cyclopsOn:MovieClip; public var thorOn:MovieClip; public var spidermanOff:MovieClip; public var cyclopsOff:MovieClip; public var ironmanOff:MovieClip; public var thorOff:MovieClip; } }//package assets_ui.pages.help
Section 142
//HelpPage3 (assets_ui.pages.help.HelpPage3) package assets_ui.pages.help { import flash.display.*; public dynamic class HelpPage3 extends MovieClip { } }//package assets_ui.pages.help
Section 143
//HelpPage4 (assets_ui.pages.help.HelpPage4) package assets_ui.pages.help { import flash.display.*; public dynamic class HelpPage4 extends MovieClip { } }//package assets_ui.pages.help
Section 144
//HelpPage5 (assets_ui.pages.help.HelpPage5) package assets_ui.pages.help { import flash.display.*; public dynamic class HelpPage5 extends MovieClip { } }//package assets_ui.pages.help
Section 145
//browserBg (assets_ui.pages.helpBrowser.browserBg) package assets_ui.pages.helpBrowser { import flash.display.*; public dynamic class browserBg extends MovieClip { public var arrowRightOn:MovieClip; public var arrowLeftOn:MovieClip; public var arrowRightOff:MovieClip; public var arrowLeftOff:MovieClip; } }//package assets_ui.pages.helpBrowser
Section 146
//CharactersUI (assets_ui.pages.CharactersUI) package assets_ui.pages { import flash.display.*; public dynamic class CharactersUI extends MovieClip { } }//package assets_ui.pages
Section 147
//CreditsUI (assets_ui.pages.CreditsUI) package assets_ui.pages { import flash.display.*; import flash.text.*; public dynamic class CreditsUI extends MovieClip { public var version:TextField; public function CreditsUI(){ addFrameScript(27, frame28); } function frame28(){ stop(); } } }//package assets_ui.pages
Section 148
//HelpUI (assets_ui.pages.HelpUI) package assets_ui.pages { import flash.display.*; public dynamic class HelpUI extends MovieClip { } }//package assets_ui.pages
Section 149
//IntroVideoUI (assets_ui.pages.IntroVideoUI) package assets_ui.pages { import flash.display.*; public dynamic class IntroVideoUI extends MovieClip { public var skipGlowBtn:MovieClip; public var videoWindow:MovieClip; public var skipBtn:MovieClip; } }//package assets_ui.pages
Section 150
//MedalsUI (assets_ui.pages.MedalsUI) package assets_ui.pages { import flash.display.*; public dynamic class MedalsUI extends MovieClip { public var lockDrdoom:MovieClip; public var baseHighScore:MovieClip; public var lockMasterDefender:MovieClip; public var baseModok:MovieClip; public var baseMoleman:MovieClip; public var lockConstructor:MovieClip; public var baseDefender:MovieClip; public var baseMasterDefender:MovieClip; public var lockGoldTower:MovieClip; public var baseGameAddict:MovieClip; public var lockHighScore:MovieClip; public var baseDrdoom:MovieClip; public var baseConstructor:MovieClip; public var lockDefender:MovieClip; public var lockMoleman:MovieClip; public var lockGameAddict:MovieClip; public var lockModok:MovieClip; public var baseMillionaire:MovieClip; public var lockMillionaire:MovieClip; public var baseGoldTower:MovieClip; } }//package assets_ui.pages
Section 151
//TitleUI (assets_ui.pages.TitleUI) package assets_ui.pages { import flash.display.*; public dynamic class TitleUI extends MovieClip { public function TitleUI(){ addFrameScript(0, frame1, 45, frame46); } function frame1(){ stop(); } function frame46(){ stop(); } } }//package assets_ui.pages
Section 152
//HudBtnCredits (assets_ui.HudBtnCredits) package assets_ui { import flash.display.*; public dynamic class HudBtnCredits extends MovieClip { } }//package assets_ui
Section 153
//HudBtnMarvelKids (assets_ui.HudBtnMarvelKids) package assets_ui { import flash.display.*; public dynamic class HudBtnMarvelKids extends MovieClip { } }//package assets_ui
Section 154
//HudBtnSHS (assets_ui.HudBtnSHS) package assets_ui { import flash.display.*; public dynamic class HudBtnSHS extends MovieClip { } }//package assets_ui
Section 155
//HudSoundControls (assets_ui.HudSoundControls) package assets_ui { import flash.display.*; public dynamic class HudSoundControls extends MovieClip { public var soundSlider:MovieClip; public var soundButton:SimpleButton; public var musicSlider:MovieClip; public var musicButton:SimpleButton; } }//package assets_ui
Section 156
//HudUI (assets_ui.HudUI) package assets_ui { import flash.display.*; public dynamic class HudUI extends MovieClip { public var MenuHeader:MovieClip; public var top:MovieClip; } }//package assets_ui
Section 157
//HudUIButtons (assets_ui.HudUIButtons) package assets_ui { import flash.display.*; public dynamic class HudUIButtons extends MovieClip { public var ButtonMore:MovieClip; public var BaseMulti:MovieClip; public var BaseHelp:MovieClip; public var ButtonMedals:MovieClip; public var InGame:MovieClip; public var ButtonCharacters:MovieClip; public var BaseMore:MovieClip; public var ButtonShare:MovieClip; public var ButtonStart:MovieClip; public var BaseStart:MovieClip; public var ButtonHelp:MovieClip; public var BaseCharacters:MovieClip; } }//package assets_ui
Section 158
//Preloader (assets_ui.Preloader) package assets_ui { import flash.display.*; public dynamic class Preloader extends MovieClip { public var bar:MovieClip; } }//package assets_ui
Section 159
//PreloaderBackgroundUI (assets_ui.PreloaderBackgroundUI) package assets_ui { import flash.display.*; public dynamic class PreloaderBackgroundUI extends MovieClip { public var Advertisement:MovieClip; } }//package assets_ui
Section 160
//characterBrowserBgPanel_15 (assets_ui_fla.characterBrowserBgPanel_15) package assets_ui_fla { import flash.display.*; public dynamic class characterBrowserBgPanel_15 extends MovieClip { public function characterBrowserBgPanel_15(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_ui_fla
Section 161
//HudUI_107 (assets_ui_fla.HudUI_107) package assets_ui_fla { import flash.display.*; public dynamic class HudUI_107 extends MovieClip { public function HudUI_107(){ addFrameScript(0, frame1); } function frame1(){ stop(); } } }//package assets_ui_fla
Section 162
//scanLines_126 (assets_ui_fla.scanLines_126) package assets_ui_fla { import flash.display.*; public dynamic class scanLines_126 extends MovieClip { public function scanLines_126(){ addFrameScript(0, frame1); } function frame1(){ this.mouseEnabled = (this.mouseChildren = false); } } }//package assets_ui_fla
Section 163
//soundSlider_47 (assets_ui_fla.soundSlider_47) package assets_ui_fla { import flash.display.*; public dynamic class soundSlider_47 extends MovieClip { public function soundSlider_47(){ addFrameScript(0, frame1, 7, frame8, 15, frame16); } function frame16(){ stop(); trace("Should Stop Here (on)"); } function frame8(){ stop(); trace("Should Stop Here (off)"); } function frame1(){ stop(); } } }//package assets_ui_fla
Section 164
//AdEvent (com.doubleclick.dartshell.ad.events.AdEvent) package com.doubleclick.dartshell.ad.events { import flash.events.*; public class AdEvent extends Event { private var context:Object;// = null public static const CUSTOM_EVENT:String = "customEvent"; public static const COLLAPSED:String = "collapsed"; public static const EXPANDED:String = "expanded"; public static const EXIT:String = "exit"; public function AdEvent(_arg1:String, _arg2:Object=null){ super(_arg1); this.context = _arg2; } public function getContext():Object{ return (context); } override public function clone():Event{ return (new AdEvent(type, context)); } } }//package com.doubleclick.dartshell.ad.events
Section 165
//AdLoadedEvent (com.doubleclick.dartshell.ad.events.AdLoadedEvent) package com.doubleclick.dartshell.ad.events { import flash.events.*; import com.doubleclick.dartshell.ad.*; public class AdLoadedEvent extends Event { private var ad:Ad;// = null protected var context:Object;// = null public function AdLoadedEvent(_arg1:String, _arg2:Ad, _arg3:Object=null){ super(_arg1); this.ad = _arg2; this.context = _arg3; } public function getAd():Ad{ return (ad); } public function getContext():Object{ return (context); } override public function clone():Event{ return (new AdLoadedEvent(type, ad, context)); } } }//package com.doubleclick.dartshell.ad.events
Section 166
//FlashAsset (com.doubleclick.dartshell.ad.flash_in_flash.FlashAsset) package com.doubleclick.dartshell.ad.flash_in_flash { import flash.events.*; import flash.display.*; public interface FlashAsset extends IEventDispatcher { function getActionscriptVersion():String; function hide():void; function load():void; function display(_arg1:DisplayObjectContainer=null):void; function getOffsets():Object; function getDisplay():DisplayObject; function isMainAsset():Boolean; function getType():String; function set y(_arg1:Number):void; function getExpandedHeight():Number; function set x(_arg1:Number):void; function get x():Number; function get y():Number; function getHeight():Number; function getExpandedWidth():Number; function getWidth():Number; } }//package com.doubleclick.dartshell.ad.flash_in_flash
Section 167
//FlashAssetLoadedEvent (com.doubleclick.dartshell.ad.flash_in_flash.FlashAssetLoadedEvent) package com.doubleclick.dartshell.ad.flash_in_flash { import flash.events.*; public class FlashAssetLoadedEvent extends Event { private var asset:FlashAsset;// = null public static const TYPE:String = "flashAssetLoaded"; public function FlashAssetLoadedEvent(_arg1:FlashAsset){ super(TYPE); this.asset = _arg1; } public function getAsset():FlashAsset{ return (asset); } override public function clone():Event{ return (new FlashAssetLoadedEvent(asset)); } } }//package com.doubleclick.dartshell.ad.flash_in_flash
Section 168
//FlashInFlashAd (com.doubleclick.dartshell.ad.flash_in_flash.FlashInFlashAd) package com.doubleclick.dartshell.ad.flash_in_flash { import flash.display.*; import com.doubleclick.dartshell.ad.*; public interface FlashInFlashAd extends Ad { function loadAssets():void; function hide():void; function getAdId():String; function unload():void; function isBlockingAssetsLoad():Boolean; function display(_arg1:DisplayObjectContainer=null):void; function getMetaDataKeyValues():Object; function getAdPublishFlashVersion():String; function getSurveyURL():String; } }//package com.doubleclick.dartshell.ad.flash_in_flash
Section 169
//FlashInFlashAdLoadedEvent (com.doubleclick.dartshell.ad.flash_in_flash.FlashInFlashAdLoadedEvent) package com.doubleclick.dartshell.ad.flash_in_flash { import flash.events.*; import com.doubleclick.dartshell.ad.events.*; public class FlashInFlashAdLoadedEvent extends AdLoadedEvent { public static const TYPE:String = "flashInFlashAdLoaded"; public function FlashInFlashAdLoadedEvent(_arg1:FlashInFlashAd, _arg2:Object=null){ super(TYPE, _arg1, _arg2); } public function getFlashInFlashAd():FlashInFlashAd{ return ((getAd() as FlashInFlashAd)); } override public function clone():Event{ return (new FlashInFlashAdLoadedEvent(getFlashInFlashAd(), context)); } } }//package com.doubleclick.dartshell.ad.flash_in_flash
Section 170
//Ad (com.doubleclick.dartshell.ad.Ad) package com.doubleclick.dartshell.ad { import flash.events.*; public interface Ad extends IEventDispatcher { function isVASTWrapperAd():Boolean; function isDartInStreamAd():Boolean; function isInStreamAd():Boolean; function getAdType():String; function isVideoAd():Boolean; function getXMLAdResponse():XML; function isFlashInFlashAd():Boolean; function isVASTAd():Boolean; function isCustomAd():Boolean; } }//package com.doubleclick.dartshell.ad
Section 171
//DartShellErrorEvent (com.doubleclick.dartshell.errors.events.DartShellErrorEvent) package com.doubleclick.dartshell.errors.events { import flash.events.*; import com.doubleclick.dartshell.errors.*; public class DartShellErrorEvent extends ErrorEvent { private var error:DartShellError; private var context:Object;// = null public static const TYPE:String = "dartShellError"; public function DartShellErrorEvent(_arg1:DartShellError, _arg2:Object=null){ super(TYPE); this.error = _arg1; this.context = _arg2; this.text = _arg1.message; if (_arg1.getCause()){ this.text = (this.text + (" caused by \n" + _arg1.getCause())); }; } public function getError():DartShellError{ return (this.error); } public function getContext():Object{ return (context); } override public function clone():Event{ return (new DartShellErrorEvent(getError(), getContext())); } } }//package com.doubleclick.dartshell.errors.events
Section 172
//DartShellError (com.doubleclick.dartshell.errors.DartShellError) package com.doubleclick.dartshell.errors { public class DartShellError extends Error { private var cause:String;// = null public function DartShellError(_arg1:Object){ super(_arg1.message, _arg1.id); this.name = "DartShellError"; } public function getCause():String{ return (cause); } public function setCause(_arg1:String):void{ this.cause = _arg1; } } }//package com.doubleclick.dartshell.errors
Section 173
//DartShellLoadedEvent (com.doubleclick.dartshell.events.DartShellLoadedEvent) package com.doubleclick.dartshell.events { import flash.events.*; public class DartShellLoadedEvent extends Event { private var dartShell:DartShell; public static const TYPE:String = "dartShellLoaded"; public function DartShellLoadedEvent(_arg1:DartShell){ super(TYPE); this.dartShell = _arg1; } override public function clone():Event{ return (new DartShellLoadedEvent(getDartShell())); } public function getDartShell():DartShell{ return (dartShell); } } }//package com.doubleclick.dartshell.events
Section 174
//MemoryCrypto (com.electrotank.util.MemoryCrypto) package com.electrotank.util { import com.meychi.ascrypt3.*; public class MemoryCrypto { private static var crypto:TEA = null; private static var INCREMENT:int = 0; private static var initialized:Boolean = false; private static var key:String = null; private static var MULTIPLY:int = 2; private static var DECREMENT:int = 1; private static var dataHolder:Object = null; private static var DIVIDE:int = 3; public static function incrementValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, INCREMENT)); } public static function getValue(_arg1:String):Number{ initIfNeeded(); var _local2:Number = 0; if (!isValueSet(_arg1)){ setValue(_arg1, _local2); } else { _local2 = new Number(crypto.decrypt(dataHolder[_arg1], key)); }; return (_local2); } private static function processValue(_arg1:String, _arg2:Number, _arg3:int):Number{ initIfNeeded(); var _local4:Number = getValue(_arg1); switch (_arg3){ case INCREMENT: _local4 = (_local4 + _arg2); break; case DECREMENT: _local4 = (_local4 - _arg2); break; case MULTIPLY: _local4 = (_local4 * _arg2); break; case DIVIDE: _local4 = (_local4 / _arg2); break; }; setValue(_arg1, _local4); return (_local4); } public static function reset():void{ initialized = false; initIfNeeded(); } public static function decrementValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, DECREMENT)); } private static function initIfNeeded():void{ var _local1:Number; var _local2:String; var _local3:Number; var _local4:String; if (!initialized){ _local1 = Math.random(); _local2 = new String(_local1); _local2 = _local2.substr(2, (_local2.length - 2)); _local3 = Math.random(); _local4 = new String(_local3); _local4 = _local4.substr(2, (_local4.length - 2)); key = (_local2 + _local4); crypto = new TEA(); dataHolder = new Object(); initialized = true; }; } public static function multiplyValue(_arg1:String, _arg2:Number):Number{ return (processValue(_arg1, _arg2, MULTIPLY)); } public static function setValue(_arg1:String, _arg2:Number):Number{ initIfNeeded(); dataHolder[_arg1] = crypto.encrypt(_arg2.toString(), key); return (_arg2); } public static function divideValue(_arg1:String, _arg2:Number):Number{ if (_arg2 == 0){ throw (new Error("Amount can't be zero when dividing!")); }; return (processValue(_arg1, _arg2, DIVIDE)); } public static function isValueSet(_arg1:String):Boolean{ initIfNeeded(); var _local2:Boolean; if (dataHolder[_arg1] != null){ _local2 = true; }; return (_local2); } } }//package com.electrotank.util
Section 175
//Raster (com.foxaweb.utils.Raster) package com.foxaweb.utils { import flash.display.*; import flash.geom.*; public class Raster { public static function aaCircle(_arg1:BitmapData, _arg2:Number, _arg3:Number, _arg4:int, _arg5:Number):void{ var _local6:int; var _local7:int; var _local8:int; var _local10:Number; _local6 = _arg4; _local7 = 0; var _local9:Number = 0; var _local11:Function = Math.sqrt; var _local12:Function = Math.ceil; _arg1.setPixel((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel((_arg2 - _local6), (_arg3 + _local7), _arg5); _arg1.setPixel((_arg2 + _local7), (_arg3 + _local6), _arg5); _arg1.setPixel((_arg2 + _local7), (_arg3 - _local6), _arg5); while (_local6 > (_local7 + 1)) { _local7++; _local10 = (_local12(_local11(((_arg4 * _arg4) - (_local7 * _local7)))) - _local11(((_arg4 * _arg4) - (_local7 * _local7)))); if (_local10 < _local9){ _local6--; }; drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 + _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 + _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 + _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 + _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local6), (_arg3 - _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 + _local6) - 1), (_arg3 - _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local6), (_arg3 - _local7), (1 - _local10), _arg5); drawAlphaPixel(_arg1, ((_arg2 - _local6) + 1), (_arg3 - _local7), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 + _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 + _local6) - 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 + _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 + _local6) - 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), (_arg3 - _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 + _local7), ((_arg3 - _local6) + 1), _local10, _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), (_arg3 - _local6), (1 - _local10), _arg5); drawAlphaPixel(_arg1, (_arg2 - _local7), ((_arg3 - _local6) + 1), _local10, _arg5); _local9 = _local10; }; } public static function cubicBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:int, _arg9:int, _arg10:Number, _arg11:int=5):void{ var _local14:int; var _local15:int; var _local18:Number; var _local19:Number; var _local20:Number; var _local21:Number; var _local22:Number; var _local23:Number; var _local12:Number = _arg2; var _local13:Number = _arg3; var _local16:Number = 0; var _local17:Number = (1 / _arg11); var _local24:int; while (++_local24 <= _arg11) { _local18 = (_local17 * _local24); _local19 = ((_local17 * _local24) * _local18); _local20 = (_local19 * _local18); _local21 = (1 - _local18); _local22 = ((1 - _local18) * _local21); _local23 = (_local22 * _local21); _local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)); _local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)); _local16 = (_local16 + Math.sqrt((((_local14 - _local12) * (_local14 - _local12)) + ((_local15 - _local13) * (_local15 - _local13))))); _local12 = _local14; _local13 = _local15; }; var _local25:int = Math.floor(_local16); _local17 = (1 / _local25); var _local26:int = _arg2; var _local27:int = _arg3; _local24 = -1; while (++_local24 <= _local25) { _local18 = (_local17 * _local24); _local19 = ((_local17 * _local24) * _local18); _local20 = (_local19 * _local18); _local21 = (1 - _local18); _local22 = ((1 - _local18) * _local21); _local23 = (_local22 * _local21); _local14 = ((((_local23 * _arg2) + (((3 * _local18) * _local22) * _arg4)) + (((3 * _arg6) * _local19) * _local21)) + (_arg8 * _local20)); _local15 = ((((_local23 * _arg3) + (((3 * _local18) * _local22) * _arg5)) + (((3 * _arg7) * _local19) * _local21)) + (_arg9 * _local20)); line(_arg1, _local26, _local27, _local14, _local15, _arg10); _local26 = _local14; _local27 = _local15; }; } private static function checkLine(_arg1:Object, _arg2:int, _arg3:int, _arg4:BitmapData, _arg5:int, _arg6:Rectangle):void{ if (_arg1[_arg3]){ if (_arg1[_arg3] > _arg2){ _arg6.width = (_arg1[_arg3] - _arg2); _arg6.x = _arg2; _arg6.y = _arg3; _arg4.fillRect(_arg6, _arg5); } else { _arg6.width = (_arg2 - _arg1[_arg3]); _arg6.x = _arg1[_arg3]; _arg6.y = _arg3; _arg4.fillRect(_arg6, _arg5); }; } else { _arg1[_arg3] = _arg2; }; } public static function line(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ var _local7:int; var _local8:int; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; _local13 = _arg2; _local14 = _arg3; _local7 = (_arg4 - _arg2); _local8 = (_arg5 - _arg3); _local10 = ((_local7)>0) ? 1 : -1; _local11 = ((_local8)>0) ? 1 : -1; _local7 = Math.abs(_local7); _local8 = Math.abs(_local8); _arg1.setPixel32(_local13, _local14, _arg6); if (_local7 > _local8){ _local12 = (_local7 / 2); _local9 = 1; while (_local9 <= _local7) { _local13 = (_local13 + _local10); _local12 = (_local12 + _local8); if (_local12 >= _local7){ _local12 = (_local12 - _local7); _local14 = (_local14 + _local11); }; _arg1.setPixel32(_local13, _local14, _arg6); _local9++; }; } else { _local12 = (_local8 / 2); _local9 = 1; while (_local9 <= _local8) { _local14 = (_local14 + _local11); _local12 = (_local12 + _local7); if (_local12 >= _local8){ _local12 = (_local12 - _local8); _local13 = (_local13 + _local10); }; _arg1.setPixel32(_local13, _local14, _arg6); _local9++; }; }; } public static function quadBezier(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number, _arg9:int=3):void{ var _local12:int; var _local13:int; var _local16:Number; var _local17:Number; var _local18:Number; var _local19:Number; var _local10:Number = _arg2; var _local11:Number = _arg3; var _local14:Number = 0; var _local15:Number = (1 / _arg9); var _local20:int; while (++_local20 <= _arg9) { _local16 = (_local15 * _local20); _local17 = ((_local15 * _local20) * _local16); _local18 = (1 - _local16); _local19 = ((1 - _local16) * _local18); _local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)); _local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)); _local14 = (_local14 + Math.sqrt((((_local12 - _local10) * (_local12 - _local10)) + ((_local13 - _local11) * (_local13 - _local11))))); _local10 = _local12; _local11 = _local13; }; var _local21:int = Math.floor(_local14); _local15 = (1 / _local21); var _local22:int = _arg2; var _local23:int = _arg3; _local20 = -1; while (++_local20 <= _local21) { _local16 = (_local15 * _local20); _local17 = ((_local15 * _local20) * _local16); _local18 = (1 - _local16); _local19 = ((1 - _local16) * _local18); _local12 = (((_local19 * _arg2) + (((2 * _local16) * _local18) * _arg4)) + (_local17 * _arg6)); _local13 = (((_local19 * _arg3) + (((2 * _local16) * _local18) * _arg5)) + (_local17 * _arg7)); line(_arg1, _local22, _local23, _local12, _local13, _arg8); _local22 = _local12; _local23 = _local13; }; } public static function circle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:Number):void{ var _local6:int; var _local7:int; var _local8:int; _local6 = 0; _local7 = _arg4; _local8 = (1 - _arg4); _arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5); while (_local7 > _local6) { if (_local8 < 0){ _local8 = (_local8 + ((2 * _local6) + 3)); } else { _local8 = (_local8 + ((2 * (_local6 - _local7)) + 5)); _local7--; }; _local6++; _arg1.setPixel32((_arg2 + _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 - _local6), (_arg3 + _local7), _arg5); _arg1.setPixel32((_arg2 + _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local6), (_arg3 - _local7), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 + _local6), _arg5); _arg1.setPixel32((_arg2 - _local7), (_arg3 - _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 - _local6), _arg5); _arg1.setPixel32((_arg2 + _local7), (_arg3 + _local6), _arg5); }; } public static function triangle(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{ line(_arg1, _arg2, _arg3, _arg4, _arg5, _arg8); line(_arg1, _arg4, _arg5, _arg6, _arg7, _arg8); line(_arg1, _arg6, _arg7, _arg2, _arg3, _arg8); } public static function filledTri(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:int, _arg8:Number):void{ var _local9:Object = {}; lineTri(_local9, _arg1, _arg2, _arg3, _arg4, _arg5, _arg8); lineTri(_local9, _arg1, _arg4, _arg5, _arg6, _arg7, _arg8); lineTri(_local9, _arg1, _arg6, _arg7, _arg2, _arg3, _arg8); } public static function aaLine(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:int, _arg5:int, _arg6:Number):void{ var _local8:int; var _local17:Number; var _local7 = (Math.abs((_arg5 - _arg3)) > Math.abs((_arg4 - _arg2))); if (_local7){ _local8 = _arg2; _arg2 = _arg3; _arg3 = _local8; _local8 = _arg4; _arg4 = _arg5; _arg5 = _local8; }; if (_arg2 > _arg4){ _local8 = _arg2; _arg2 = _arg4; _arg4 = _local8; _local8 = _arg3; _arg3 = _arg5; _arg5 = _local8; }; var _local9:int = (_arg4 - _arg2); var _local10:int = (_arg5 - _arg3); var _local11:Number = (_local10 / _local9); var _local12:int = _arg2; var _local13:Number = (_arg3 + (_local11 * (_local12 - _arg2))); var _local14:Number = (1 - ((_arg2 + 0.5) % 1)); var _local15:int = _local12; var _local16:int = Math.floor(_local13); _local17 = ((1 - (_local13 % 1)) * _local14); if (_local7){ }; _local17 = ((_local13 % 1) * _local14); if (_local7){ }; var _local18:Number = (_local13 + _local11); _local12 = _arg4; _local13 = (_arg5 + (_local11 * (_local12 - _arg4))); _local14 = ((_arg4 + 0.5) % 1); var _local19:int = _local12; var _local20:int = Math.floor(_local13); _local17 = ((1 - (_local13 % 1)) * _local14); if (_local7){ drawAlphaPixel(_arg1, _local20, _local19, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local19, _local20, _local17, _arg6); }; _local17 = ((_local13 % 1) * _local14); if (_local7){ drawAlphaPixel(_arg1, (_local20 + 1), _local19, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local19, (_local20 + 1), _local17, _arg6); }; var _local21:int = _local15; while (_local21++ < _local19) { _local17 = (1 - (_local18 % 1)); if (_local7){ drawAlphaPixel(_arg1, _local18, _local21, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local21, _local18, _local17, _arg6); }; _local17 = (_local18 % 1); if (_local7){ drawAlphaPixel(_arg1, (_local18 + 1), _local21, _local17, _arg6); } else { drawAlphaPixel(_arg1, _local21, (_local18 + 1), _local17, _arg6); }; _local18 = (_local18 + _local11); }; } private static function drawAlphaPixel(_arg1:BitmapData, _arg2:int, _arg3:int, _arg4:Number, _arg5:Number):void{ var _local6:uint = _arg1.getPixel32(_arg2, _arg3); var _local7:uint = ((_local6 & 0xFF0000) >> 16); var _local8:uint = ((_local6 & 0xFF00) >> 8); var _local9:uint = (_local6 & 0xFF); var _local10:uint = ((_arg5 & 0xFF0000) >> 16); var _local11:uint = ((_arg5 & 0xFF00) >> 8); var _local12:uint = (_arg5 & 0xFF); var _local13:Number = 0xFF; var _local14:Number = ((_local10 * _arg4) + (_local7 * (1 - _arg4))); var _local15:Number = ((_local11 * _arg4) + (_local8 * (1 - _arg4))); var _local16:Number = ((_local12 * _arg4) + (_local9 * (1 - _arg4))); var _local17:uint = ((((_local13 << 24) + (_local14 << 16)) + (_local15 << 8)) + _local16); _arg1.setPixel32(_arg2, _arg3, _local17); } private static function lineTri(_arg1:Object, _arg2:BitmapData, _arg3:int, _arg4:int, _arg5:int, _arg6:int, _arg7:Number):void{ var _local9:int; var _local8 = (((_arg6 - _arg4) * (_arg6 - _arg4)) > ((_arg5 - _arg3) * (_arg5 - _arg3))); if (_local8){ _local9 = _arg3; _arg3 = _arg4; _arg4 = _local9; _local9 = _arg5; _arg5 = _arg6; _arg6 = _local9; }; if (_arg3 > _arg5){ _arg3 = (_arg3 ^ _arg5); _arg5 = (_arg5 ^ _arg3); _arg3 = (_arg3 ^ _arg5); _arg4 = (_arg4 ^ _arg6); _arg6 = (_arg6 ^ _arg4); _arg4 = (_arg4 ^ _arg6); }; var _local10:int = (_arg5 - _arg3); var _local11:int = Math.abs((_arg6 - _arg4)); var _local12:int; var _local13:int = _arg4; var _local14:int = ((_arg4 < _arg6)) ? 1 : -1; var _local15:int = _arg3; var _local16:int = (_arg5 - (_local10 >> 1)); var _local17:int = _arg5; var _local18:int = _arg6; var _local19:Rectangle = new Rectangle(); var _local20:int; _local19.x = 0; _local19.y = 0; _local19.width = 0; _local19.height = 1; while (_local15++ <= _local16) { if (_local8){ checkLine(_arg1, _local13, _local15, _arg2, _arg7, _local19); if (((!((_local17 == _arg5))) && (!((_local17 == _local16))))){ checkLine(_arg1, _local18, (_local17 + 1), _arg2, _arg7, _local19); }; }; _local12 = (_local12 + _local11); if ((_local12 << 1) >= _local10){ if (!_local8){ checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19); if (_local17 != _local16){ checkLine(_arg1, (_local17 + 1), _local18, _arg2, _arg7, _local19); }; }; _local20 = 0; _local13 = (_local13 + _local14); _local18 = (_local18 - _local14); _local12 = (_local12 - _local10); }; _local20++; _local17--; }; if (!_local8){ checkLine(_arg1, ((_local15 - _local20) + 1), _local13, _arg2, _arg7, _local19); }; } } }//package com.foxaweb.utils
Section 176
//CampaignInfo (com.google.analytics.campaign.CampaignInfo) package com.google.analytics.campaign { import com.google.analytics.utils.*; public class CampaignInfo { private var _new:Boolean; private var _empty:Boolean; public function CampaignInfo(_arg1:Boolean=true, _arg2:Boolean=false){ _empty = _arg1; _new = _arg2; } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } public function isNew():Boolean{ return (_new); } public function get utmcn():String{ return ("1"); } public function isEmpty():Boolean{ return (_empty); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (((!(isEmpty())) && (isNew()))){ _local1.utmcn = utmcn; }; if (((!(isEmpty())) && (!(isNew())))){ _local1.utmcr = utmcr; }; return (_local1); } public function get utmcr():String{ return ("1"); } } }//package com.google.analytics.campaign
Section 177
//CampaignKey (com.google.analytics.campaign.CampaignKey) package com.google.analytics.campaign { public class CampaignKey { public var UCMD:String;// = "utm_medium" public var UCID:String;// = "utm_id" public var UCTR:String;// = "utm_term" public var UCSR:String;// = "utm_source" public var UCNO:String;// = "utm_nooverride" public var UCCN:String;// = "utm_campaign" public var UGCLID:String;// = "gclid" public var UCCT:String;// = "utm_content" } }//package com.google.analytics.campaign
Section 178
//CampaignManager (com.google.analytics.campaign.CampaignManager) package com.google.analytics.campaign { import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; public class CampaignManager { private var _config:Configuration; private var _domainHash:Number; private var _debug:DebugConfiguration; private var _timeStamp:Number; private var _referrer:String; private var _buffer:Buffer; public static const trackingDelimiter:String = "|"; public function CampaignManager(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Number, _arg5:String, _arg6:Number){ _config = _arg1; _debug = _arg2; _buffer = _arg3; _domainHash = _arg4; _referrer = _arg5; _timeStamp = _arg6; } public function getCampaignInformation(_arg1:String, _arg2:Boolean):CampaignInfo{ var _local4:CampaignTracker; var _local8:CampaignTracker; var _local9:int; var _local3:CampaignInfo = new CampaignInfo(); var _local5:Boolean; var _local6:Boolean; var _local7:int; if (((_config.allowLinker) && (_buffer.isGenuine()))){ if (!_buffer.hasUTMZ()){ return (_local3); }; }; _local4 = getTrackerFromSearchString(_arg1); if (isValid(_local4)){ _local6 = hasNoOverride(_arg1); if (((_local6) && (!(_buffer.hasUTMZ())))){ return (_local3); }; }; if (!isValid(_local4)){ _local4 = getOrganicCampaign(); if (((!(_buffer.hasUTMZ())) && (isIgnoredKeyword(_local4)))){ return (_local3); }; }; if (((!(isValid(_local4))) && (_arg2))){ _local4 = getReferrerCampaign(); if (((!(_buffer.hasUTMZ())) && (isIgnoredReferral(_local4)))){ return (_local3); }; }; if (!isValid(_local4)){ if (((!(_buffer.hasUTMZ())) && (_arg2))){ _local4 = getDirectCampaign(); }; }; if (!isValid(_local4)){ return (_local3); }; if (((_buffer.hasUTMZ()) && (!(_buffer.utmz.isEmpty())))){ _local8 = new CampaignTracker(); _local8.fromTrackerString(_buffer.utmz.campaignTracking); _local5 = (_local8.toTrackerString() == _local4.toTrackerString()); _local7 = _buffer.utmz.responseCount; }; if (((!(_local5)) || (_arg2))){ _local9 = _buffer.utma.sessionCount; _local7++; if (_local9 == 0){ _local9 = 1; }; _buffer.utmz.domainHash = _domainHash; _buffer.utmz.campaignCreation = _timeStamp; _buffer.utmz.campaignSessions = _local9; _buffer.utmz.responseCount = _local7; _buffer.utmz.campaignTracking = _local4.toTrackerString(); _debug.info(_buffer.utmz.toString(), VisualDebugMode.geek); _local3 = new CampaignInfo(false, true); } else { _local3 = new CampaignInfo(false, false); }; return (_local3); } public function hasNoOverride(_arg1:String):Boolean{ var _local2:CampaignKey = _config.campaignKey; if (_arg1 == ""){ return (false); }; var _local3:Variables = new Variables(_arg1); var _local4 = ""; if (_local3.hasOwnProperty(_local2.UCNO)){ _local4 = _local3[_local2.UCNO]; switch (_local4){ case "1": return (true); case "": case "0": default: return (false); }; }; return (false); } public function getTrackerFromSearchString(_arg1:String):CampaignTracker{ var _local2:CampaignTracker = getOrganicCampaign(); var _local3:CampaignTracker = new CampaignTracker(); var _local4:CampaignKey = _config.campaignKey; if (_arg1 == ""){ return (_local3); }; var _local5:Variables = new Variables(_arg1); if (_local5.hasOwnProperty(_local4.UCID)){ _local3.id = _local5[_local4.UCID]; }; if (_local5.hasOwnProperty(_local4.UCSR)){ _local3.source = _local5[_local4.UCSR]; }; if (_local5.hasOwnProperty(_local4.UGCLID)){ _local3.clickId = _local5[_local4.UGCLID]; }; if (_local5.hasOwnProperty(_local4.UCCN)){ _local3.name = _local5[_local4.UCCN]; } else { _local3.name = "(not set)"; }; if (_local5.hasOwnProperty(_local4.UCMD)){ _local3.medium = _local5[_local4.UCMD]; } else { _local3.medium = "(not set)"; }; if (_local5.hasOwnProperty(_local4.UCTR)){ _local3.term = _local5[_local4.UCTR]; } else { if (((_local2) && (!((_local2.term == ""))))){ _local3.term = _local2.term; }; }; if (_local5.hasOwnProperty(_local4.UCCT)){ _local3.content = _local5[_local4.UCCT]; }; return (_local3); } public function getOrganicCampaign():CampaignTracker{ var _local1:CampaignTracker; var _local4:Array; var _local5:OrganicReferrer; var _local6:String; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; var _local2:URL = new URL(_referrer); var _local3 = ""; if (_local2.hostName != ""){ if (_local2.hostName.indexOf(".") > -1){ _local4 = _local2.hostName.split("."); switch (_local4.length){ case 2: _local3 = _local4[0]; break; case 3: _local3 = _local4[1]; break; }; }; }; if (_config.organic.match(_local3)){ _local5 = _config.organic.getReferrerByName(_local3); _local6 = _config.organic.getKeywordValue(_local5, _local2.search); _local1 = new CampaignTracker(); _local1.source = _local5.engine; _local1.name = "(organic)"; _local1.medium = "organic"; _local1.term = _local6; }; return (_local1); } public function getDirectCampaign():CampaignTracker{ var _local1:CampaignTracker = new CampaignTracker(); _local1.source = "(direct)"; _local1.name = "(direct)"; _local1.medium = "(none)"; return (_local1); } public function isIgnoredKeyword(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "organic")))){ return (_config.organic.isIgnoredKeyword(_arg1.term)); }; return (false); } public function isIgnoredReferral(_arg1:CampaignTracker):Boolean{ if (((_arg1) && ((_arg1.medium == "referral")))){ return (_config.organic.isIgnoredReferral(_arg1.source)); }; return (false); } public function isValid(_arg1:CampaignTracker):Boolean{ if (((_arg1) && (_arg1.isValid()))){ return (true); }; return (false); } public function getReferrerCampaign():CampaignTracker{ var _local1:CampaignTracker; if (((isInvalidReferrer(_referrer)) || (isFromGoogleCSE(_referrer, _config)))){ return (_local1); }; var _local2:URL = new URL(_referrer); var _local3:String = _local2.hostName; var _local4:String = _local2.path; if (_local3.indexOf("www.") == 0){ _local3 = _local3.substr(4); }; _local1 = new CampaignTracker(); _local1.source = _local3; _local1.name = "(referral)"; _local1.medium = "referral"; _local1.content = _local4; return (_local1); } public static function isInvalidReferrer(_arg1:String):Boolean{ var _local2:URL; if ((((((_arg1 == "")) || ((_arg1 == "-")))) || ((_arg1 == "0")))){ return (true); }; if (_arg1.indexOf("://") > -1){ _local2 = new URL(_arg1); if ((((_local2.protocol == Protocols.file)) || ((_local2.protocol == Protocols.none)))){ return (true); }; }; return (false); } public static function isFromGoogleCSE(_arg1:String, _arg2:Configuration):Boolean{ var _local3:URL = new URL(_arg1); if (_local3.hostName.indexOf(_arg2.google) > -1){ if (_local3.search.indexOf((_arg2.googleSearchParam + "=")) > -1){ if (_local3.path == ("/" + _arg2.googleCsePath)){ return (true); }; }; }; return (false); } } }//package com.google.analytics.campaign
Section 179
//CampaignTracker (com.google.analytics.campaign.CampaignTracker) package com.google.analytics.campaign { import com.google.analytics.utils.*; public class CampaignTracker { public var content:String; public var source:String; public var clickId:String; public var name:String; public var term:String; public var medium:String; public var id:String; public function CampaignTracker(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:String="", _arg5:String="", _arg6:String="", _arg7:String=""){ this.id = _arg1; this.source = _arg2; this.clickId = _arg3; this.name = _arg4; this.medium = _arg5; this.term = _arg6; this.content = _arg7; } public function isValid():Boolean{ if (((((!((id == ""))) || (!((source == ""))))) || (!((clickId == ""))))){ return (true); }; return (false); } public function toTrackerString():String{ var _local1:Array = []; _addIfNotEmpty(_local1, "utmcid=", id); _addIfNotEmpty(_local1, "utmcsr=", source); _addIfNotEmpty(_local1, "utmgclid=", clickId); _addIfNotEmpty(_local1, "utmccn=", name); _addIfNotEmpty(_local1, "utmcmd=", medium); _addIfNotEmpty(_local1, "utmctr=", term); _addIfNotEmpty(_local1, "utmcct=", content); return (_local1.join(CampaignManager.trackingDelimiter)); } private function _addIfNotEmpty(_arg1:Array, _arg2:String, _arg3:String):void{ if (_arg3 != ""){ _arg3 = _arg3.split("+").join("%20"); _arg3 = _arg3.split(" ").join("%20"); _arg1.push((_arg2 + _arg3)); }; } public function fromTrackerString(_arg1:String):void{ var _local2:String = _arg1.split(CampaignManager.trackingDelimiter).join("&"); var _local3:Variables = new Variables(_local2); if (_local3.hasOwnProperty("utmcid")){ this.id = _local3["utmcid"]; }; if (_local3.hasOwnProperty("utmcsr")){ this.source = _local3["utmcsr"]; }; if (_local3.hasOwnProperty("utmccn")){ this.name = _local3["utmccn"]; }; if (_local3.hasOwnProperty("utmcmd")){ this.medium = _local3["utmcmd"]; }; if (_local3.hasOwnProperty("utmctr")){ this.term = _local3["utmctr"]; }; if (_local3.hasOwnProperty("utmcct")){ this.content = _local3["utmcct"]; }; if (_local3.hasOwnProperty("utmgclid")){ this.clickId = _local3["utmgclid"]; }; } } }//package com.google.analytics.campaign
Section 180
//BrowserInfo (com.google.analytics.core.BrowserInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.utils.*; public class BrowserInfo { private var _config:Configuration; private var _info:Environment; public function BrowserInfo(_arg1:Configuration, _arg2:Environment){ _config = _arg1; _info = _arg2; } public function get utmul():String{ return (_info.language.toLowerCase()); } public function get utmje():String{ return ("0"); } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } public function get utmsr():String{ return (((_info.screenWidth + "x") + _info.screenHeight)); } public function get utmfl():String{ var _local1:Version; if (_config.detectFlash){ _local1 = _info.flashVersion; return (((((_local1.major + ".") + _local1.minor) + " r") + _local1.build)); }; return ("-"); } public function get utmcs():String{ return (_info.languageEncoding); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.utmcs = utmcs; _local1.utmsr = utmsr; _local1.utmsc = utmsc; _local1.utmul = utmul; _local1.utmje = utmje; _local1.utmfl = utmfl; return (_local1); } public function get utmsc():String{ return ((_info.screenColorDepth + "-bit")); } } }//package com.google.analytics.core
Section 181
//Buffer (com.google.analytics.core.Buffer) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.net.*; import com.google.analytics.data.*; public dynamic class Buffer { private var _SO:SharedObject; private var _data:Object; private var _OBJ:Object; private var _utmb:UTMB; private var _utmc:UTMC; private var _utma:UTMA; private var _debug:DebugConfiguration; private var _utmk:UTMK; private var _config:Configuration; private var _utmv:UTMV; private var _utmx:UTMX; private var _utmz:UTMZ; private var _volatile:Boolean; public function Buffer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Boolean=false, _arg4:Object=null){ var _local5:String; super(); _config = _arg1; _debug = _arg2; _data = _arg4; _volatile = _arg3; if (_volatile){ _OBJ = new Object(); if (_data){ for (_local5 in _data) { _OBJ[_local5] = _data[_local5]; }; }; }; } public function save():void{ var flushStatus:String; if (!isVolatile()){ flushStatus = null; try { flushStatus = _SO.flush(); } catch(e:Error) { _debug.warning("Error...Could not write SharedObject to disk"); }; switch (flushStatus){ case SharedObjectFlushStatus.PENDING: _debug.info("Requesting permission to save object..."); _SO.addEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus); break; case SharedObjectFlushStatus.FLUSHED: _debug.info("Value flushed to disk."); break; }; }; } public function get utmv():UTMV{ if (!hasUTMV()){ _createUMTV(); }; return (_utmv); } public function get utmx():UTMX{ if (!hasUTMX()){ _createUMTX(); }; return (_utmx); } public function get utmz():UTMZ{ if (!hasUTMZ()){ _createUMTZ(); }; return (_utmz); } public function hasUTMA():Boolean{ if (_utma){ return (true); }; return (false); } public function hasUTMB():Boolean{ if (_utmb){ return (true); }; return (false); } public function hasUTMC():Boolean{ if (_utmc){ return (true); }; return (false); } public function clearCookies():void{ utma.reset(); utmb.reset(); utmc.reset(); utmz.reset(); utmv.reset(); utmk.reset(); } public function resetCurrentSession():void{ _clearUTMB(); _clearUTMC(); save(); } public function hasUTMK():Boolean{ if (_utmk){ return (true); }; return (false); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ var _local3:String = toLinkerParams(); var _local4:String = _arg1; var _local5:Array = _arg1.split("#"); if (_local3){ if (_arg2){ if (1 >= _local5.length){ _local4 = (_local4 + ("#" + _local3)); } else { _local4 = (_local4 + ("&" + _local3)); }; } else { if (1 >= _local5.length){ if (_arg1.indexOf("?") > -1){ _local4 = (_local4 + "&"); } else { _local4 = (_local4 + "?"); }; _local4 = (_local4 + _local3); } else { _local4 = _local5[0]; if (_arg1.indexOf("?") > -1){ _local4 = (_local4 + "&"); } else { _local4 = (_local4 + "?"); }; _local4 = (_local4 + ((_local3 + "#") + _local5[1])); }; }; }; return (_local4); } public function generateCookiesHash():Number{ var _local1 = ""; _local1 = (_local1 + utma.valueOf()); _local1 = (_local1 + utmb.valueOf()); _local1 = (_local1 + utmc.valueOf()); _local1 = (_local1 + utmx.valueOf()); _local1 = (_local1 + utmz.valueOf()); _local1 = (_local1 + utmv.valueOf()); return (Utils.generateHash(_local1)); } private function _createUMTA():void{ _utma = new UTMA(); _utma.proxy = this; } private function _createUMTB():void{ _utmb = new UTMB(); _utmb.proxy = this; } private function _createUMTC():void{ _utmc = new UTMC(); } public function hasUTMV():Boolean{ if (_utmv){ return (true); }; return (false); } private function _createUMTK():void{ _utmk = new UTMK(); _utmk.proxy = this; } public function hasUTMX():Boolean{ if (_utmx){ return (true); }; return (false); } public function hasUTMZ():Boolean{ if (_utmz){ return (true); }; return (false); } private function _createUMTV():void{ _utmv = new UTMV(); _utmv.proxy = this; } private function _createUMTX():void{ _utmx = new UTMX(); _utmx.proxy = this; } private function _createUMTZ():void{ _utmz = new UTMZ(); _utmz.proxy = this; } public function updateUTMA(_arg1:Number):void{ if (_debug.verbose){ _debug.info((("updateUTMA( " + _arg1) + " )"), VisualDebugMode.advanced); }; if (!utma.isEmpty()){ if (isNaN(utma.sessionCount)){ utma.sessionCount = 1; } else { utma.sessionCount = (utma.sessionCount + 1); }; utma.lastTime = utma.currentTime; utma.currentTime = _arg1; }; } public function isGenuine():Boolean{ if (!hasUTMK()){ return (true); }; return ((utmk.hash == generateCookiesHash())); } private function _onFlushStatus(_arg1:NetStatusEvent):void{ _debug.info("User closed permission dialog..."); switch (_arg1.info.code){ case "SharedObject.Flush.Success": _debug.info("User granted permission -- value saved."); break; case "SharedObject.Flush.Failed": _debug.info("User denied permission -- value not saved."); break; }; _SO.removeEventListener(NetStatusEvent.NET_STATUS, _onFlushStatus); } public function toLinkerParams():String{ var _local1 = ""; _local1 = (_local1 + utma.toURLString()); _local1 = (_local1 + ("&" + utmb.toURLString())); _local1 = (_local1 + ("&" + utmc.toURLString())); _local1 = (_local1 + ("&" + utmx.toURLString())); _local1 = (_local1 + ("&" + utmz.toURLString())); _local1 = (_local1 + ("&" + utmv.toURLString())); _local1 = (_local1 + ("&__utmk=" + generateCookiesHash())); return (_local1); } private function _clearUTMA():void{ _utma = null; if (!isVolatile()){ _SO.data.utma = null; delete _SO.data.utma; }; } private function _clearUTMC():void{ _utmc = null; } private function _clearUTMB():void{ _utmb = null; if (!isVolatile()){ _SO.data.utmb = null; delete _SO.data.utmb; }; } public function update(_arg1:String, _arg2):void{ if (isVolatile()){ _OBJ[_arg1] = _arg2; } else { _SO.data[_arg1] = _arg2; }; } public function createSO():void{ var saveSO:Boolean; UTMZ.defaultTimespan = _config.conversionTimeout; UTMB.defaultTimespan = _config.sessionTimeout; if (!_volatile){ try { _SO = SharedObject.getLocal(_config.cookieName, _config.cookiePath); } catch(e:Error) { if (_debug.active){ _debug.warning(((("Shared Object " + _config.cookieName) + " failed to be set\nreason: ") + e.message)); }; }; saveSO = false; if (_SO.data.utma){ if (!hasUTMA()){ _createUMTA(); }; _utma.fromSharedObject(_SO.data.utma); if (_debug.verbose){ _debug.info(("found: " + _utma.toString(true)), VisualDebugMode.geek); }; if (_utma.isExpired()){ if (_debug.verbose){ _debug.warning("UTMA has expired", VisualDebugMode.advanced); }; _clearUTMA(); saveSO = true; }; }; if (_SO.data.utmb){ if (!hasUTMB()){ _createUMTB(); }; _utmb.fromSharedObject(_SO.data.utmb); if (_debug.verbose){ _debug.info(("found: " + _utmb.toString(true)), VisualDebugMode.geek); }; if (_utmb.isExpired()){ if (_debug.verbose){ _debug.warning("UTMB has expired", VisualDebugMode.advanced); }; _clearUTMB(); saveSO = true; }; }; if (_SO.data.utmc){ delete _SO.data.utmc; saveSO = true; }; if (_SO.data.utmk){ if (!hasUTMK()){ _createUMTK(); }; _utmk.fromSharedObject(_SO.data.utmk); if (_debug.verbose){ _debug.info(("found: " + _utmk.toString()), VisualDebugMode.geek); }; }; if (!hasUTMX()){ _createUMTX(); }; if (_SO.data.utmv){ if (!hasUTMV()){ _createUMTV(); }; _utmv.fromSharedObject(_SO.data.utmv); if (_debug.verbose){ _debug.info(("found: " + _utmv.toString(true)), VisualDebugMode.geek); }; if (_utmv.isExpired()){ if (_debug.verbose){ _debug.warning("UTMV has expired", VisualDebugMode.advanced); }; _clearUTMV(); saveSO = true; }; }; if (_SO.data.utmz){ if (!hasUTMZ()){ _createUMTZ(); }; _utmz.fromSharedObject(_SO.data.utmz); if (_debug.verbose){ _debug.info(("found: " + _utmz.toString(true)), VisualDebugMode.geek); }; if (_utmz.isExpired()){ if (_debug.verbose){ _debug.warning("UTMZ has expired", VisualDebugMode.advanced); }; _clearUTMZ(); saveSO = true; }; }; if (saveSO){ save(); }; }; } private function _clearUTMZ():void{ _utmz = null; if (!isVolatile()){ _SO.data.utmz = null; delete _SO.data.utmz; }; } private function _clearUTMV():void{ _utmv = null; if (!isVolatile()){ _SO.data.utmv = null; delete _SO.data.utmv; }; } public function isVolatile():Boolean{ return (_volatile); } public function get utma():UTMA{ if (!hasUTMA()){ _createUMTA(); }; return (_utma); } public function get utmb():UTMB{ if (!hasUTMB()){ _createUMTB(); }; return (_utmb); } public function get utmc():UTMC{ if (!hasUTMC()){ _createUMTC(); }; return (_utmc); } public function get utmk():UTMK{ if (!hasUTMK()){ _createUMTK(); }; return (_utmk); } } }//package com.google.analytics.core
Section 182
//DocumentInfo (com.google.analytics.core.DocumentInfo) package com.google.analytics.core { import com.google.analytics.v4.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; public class DocumentInfo { private var _pageURL:String; private var _utmr:String; private var _config:Configuration; private var _adSense:AdSenseGlobals; private var _info:Environment; public function DocumentInfo(_arg1:Configuration, _arg2:Environment, _arg3:String, _arg4:String=null, _arg5:AdSenseGlobals=null){ _config = _arg1; _info = _arg2; _utmr = _arg3; _pageURL = _arg4; _adSense = _arg5; } public function get utmr():String{ if (!_utmr){ return ("-"); }; return (_utmr); } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } private function _renderPageURL(_arg1:String=""):String{ var _local2:String = _info.locationPath; var _local3:String = _info.locationSearch; if (((!(_arg1)) || ((_arg1 == "")))){ _arg1 = (_local2 + unescape(_local3)); if (_arg1 == ""){ _arg1 = "/"; }; }; return (_arg1); } public function get utmp():String{ return (_renderPageURL(_pageURL)); } public function get utmhid():String{ return (String(_generateHitId())); } private function _generateHitId():Number{ var _local1:Number; if (((_adSense.hid) && (!((_adSense.hid == ""))))){ _local1 = Number(_adSense.hid); } else { _local1 = Math.round((Math.random() * 2147483647)); _adSense.hid = String(_local1); }; return (_local1); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (((_config.detectTitle) && (!((utmdt == ""))))){ _local1.utmdt = utmdt; }; _local1.utmhid = utmhid; _local1.utmr = utmr; _local1.utmp = utmp; return (_local1); } public function get utmdt():String{ return (_info.documentTitle); } } }//package com.google.analytics.core
Section 183
//Domain (com.google.analytics.core.Domain) package com.google.analytics.core { import com.google.analytics.debug.*; public class Domain { private var _mode:DomainNameMode; private var _debug:DebugConfiguration; private var _name:String; public function Domain(_arg1:DomainNameMode=null, _arg2:String="", _arg3:DebugConfiguration=null){ _debug = _arg3; if (_arg1 == null){ _arg1 = DomainNameMode.auto; }; _mode = _arg1; if (_arg1 == DomainNameMode.custom){ this.name = _arg2; } else { _name = _arg2; }; } public function get mode():DomainNameMode{ return (_mode); } public function set mode(_arg1:DomainNameMode):void{ _mode = _arg1; if (_mode == DomainNameMode.none){ _name = ""; }; } public function get name():String{ return (_name); } public function set name(_arg1:String):void{ if (((!((_arg1.charAt(0) == "."))) && (_debug))){ _debug.warning(("missing leading period \".\", cookie will only be accessible on " + _arg1), VisualDebugMode.geek); }; _name = _arg1; } } }//package com.google.analytics.core
Section 184
//DomainNameMode (com.google.analytics.core.DomainNameMode) package com.google.analytics.core { public class DomainNameMode { private var _value:int; private var _name:String; public static const custom:DomainNameMode = new DomainNameMode(2, "custom"); ; public static const none:DomainNameMode = new DomainNameMode(0, "none"); ; public static const auto:DomainNameMode = new DomainNameMode(1, "auto"); ; public function DomainNameMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.core
Section 185
//Ecommerce (com.google.analytics.core.Ecommerce) package com.google.analytics.core { import com.google.analytics.debug.*; import com.google.analytics.ecommerce.*; public class Ecommerce { private var _debug:DebugConfiguration; private var _trans:Array; public function Ecommerce(_arg1:DebugConfiguration){ this._debug = _arg1; _trans = new Array(); } public function getTransLength():Number{ return (_trans.length); } public function getTransFromArray(_arg1:Number):Transaction{ return (_trans[_arg1]); } public function addTransaction(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String):Transaction{ var _local9:Transaction; _local9 = getTransaction(_arg1); if (_local9 == null){ _local9 = new Transaction(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); _trans.push(_local9); } else { _local9.affiliation = _arg2; _local9.total = _arg3; _local9.tax = _arg4; _local9.shipping = _arg5; _local9.city = _arg6; _local9.state = _arg7; _local9.country = _arg8; }; return (_local9); } public function getTransaction(_arg1:String):Transaction{ var _local2:Number; _local2 = 0; while (_local2 < _trans.length) { if (_trans[_local2].id == _arg1){ return (_trans[_local2]); }; _local2++; }; return (null); } } }//package com.google.analytics.core
Section 186
//EventInfo (com.google.analytics.core.EventInfo) package com.google.analytics.core { import com.google.analytics.utils.*; import com.google.analytics.data.*; public class EventInfo { private var _ext10:X10; private var _isEventHit:Boolean; private var _x10:X10; public function EventInfo(_arg1:Boolean, _arg2:X10, _arg3:X10=null){ _isEventHit = _arg1; _x10 = _arg2; _ext10 = _arg3; } public function toURLString():String{ var _local1:Variables = toVariables(); return (_local1.toString()); } public function get utmt():String{ return ("event"); } public function get utme():String{ return (_x10.renderMergedUrlString(_ext10)); } public function toVariables():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; if (_isEventHit){ _local1.utmt = utmt; }; _local1.utme = utme; return (_local1); } } }//package com.google.analytics.core
Section 187
//EventTracker (com.google.analytics.core.EventTracker) package com.google.analytics.core { import com.google.analytics.v4.*; public class EventTracker { private var _parent:GoogleAnalyticsAPI; public var name:String; public function EventTracker(_arg1:String, _arg2:GoogleAnalyticsAPI){ this.name = _arg1; _parent = _arg2; } public function trackEvent(_arg1:String, _arg2:String=null, _arg3:Number=NaN):Boolean{ return (_parent.trackEvent(name, _arg1, _arg2, _arg3)); } } }//package com.google.analytics.core
Section 188
//ga_internal (com.google.analytics.core.ga_internal) package com.google.analytics.core { public namespace ga_internal; }//package com.google.analytics.core
Section 189
//GIFRequest (com.google.analytics.core.GIFRequest) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.display.*; import flash.net.*; import com.google.analytics.utils.*; import flash.system.*; public class GIFRequest { private var _info:Environment; private var _count:int; private var _utmac:String; private var _alertcount:int; private var _debug:DebugConfiguration; private var _lastRequest:URLRequest; private var _buffer:Buffer; private var _config:Configuration; private var _requests:Array; public function GIFRequest(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:Buffer, _arg4:Environment){ _config = _arg1; _debug = _arg2; _buffer = _arg3; _info = _arg4; _count = 0; _alertcount = 0; _requests = []; } public function get utmn():String{ return ((Utils.generate32bitRandom() as String)); } public function onIOError(_arg1:IOErrorEvent):void{ var _local2:String = _lastRequest.url; var _local3:String = String((_requests.length - 1)); var _local4 = (("Gif Request #" + _local3) + " failed"); if (_debug.GIFRequests){ if (!_debug.verbose){ if (_local2.indexOf("?") > -1){ _local2 = _local2.split("?")[0]; }; _local2 = _shortenURL(_local2); }; if (int(_debug.mode) > int(VisualDebugMode.basic)){ _local4 = (_local4 + ((" \"" + _local2) + "\" does not exists or is unreachable")); }; _debug.failure(_local4); } else { _debug.warning(_local4); }; _removeListeners(_arg1.target); } public function send(_arg1:String, _arg2:Variables=null, _arg3:Boolean=false, _arg4:Boolean=false):void{ var _local5:String; var _local6:URLRequest; var _local7:URLRequest; _utmac = _arg1; if (!_arg2){ _arg2 = new Variables(); }; _arg2.URIencode = false; _arg2.pre = ["utmwv", "utmn", "utmhn", "utmt", "utme", "utmcs", "utmsr", "utmsc", "utmul", "utmje", "utmfl", "utmdt", "utmhid", "utmr", "utmp"]; _arg2.post = ["utmcc"]; if (_debug.verbose){ _debug.info(((("tracking: " + _buffer.utmb.trackCount) + "/") + _config.trackingLimitPerSession), VisualDebugMode.geek); }; if ((((_buffer.utmb.trackCount < _config.trackingLimitPerSession)) || (_arg3))){ if (_arg4){ updateToken(); }; if (((((_arg3) || (!(_arg4)))) || ((_buffer.utmb.token >= 1)))){ if (((!(_arg3)) && (_arg4))){ _buffer.utmb.token = (_buffer.utmb.token - 1); }; _buffer.utmb.trackCount = (_buffer.utmb.trackCount + 1); if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); }; _arg2.utmwv = utmwv; _arg2.utmn = Utils.generate32bitRandom(); if (_info.domainName != ""){ _arg2.utmhn = _info.domainName; }; if (_config.sampleRate < 1){ _arg2.utmsp = (_config.sampleRate * 100); }; if ((((_config.serverMode == ServerOperationMode.local)) || ((_config.serverMode == ServerOperationMode.both)))){ _local5 = _info.locationSWFPath; if (_local5.lastIndexOf("/") > 0){ _local5 = _local5.substring(0, _local5.lastIndexOf("/")); }; _local6 = new URLRequest(); if (_config.localGIFpath.indexOf("http") == 0){ _local6.url = _config.localGIFpath; } else { _local6.url = (_local5 + _config.localGIFpath); }; _local6.url = (_local6.url + ("?" + _arg2.toString())); if (((_debug.active) && (_debug.GIFRequests))){ _debugSend(_local6); } else { sendRequest(_local6); }; }; if ((((_config.serverMode == ServerOperationMode.remote)) || ((_config.serverMode == ServerOperationMode.both)))){ _local7 = new URLRequest(); if (_info.protocol == Protocols.HTTPS){ _local7.url = _config.secureRemoteGIFpath; } else { if (_info.protocol == Protocols.HTTP){ _local7.url = _config.remoteGIFpath; } else { _local7.url = _config.remoteGIFpath; }; }; _arg2.utmac = utmac; _arg2.utmcc = encodeURIComponent(utmcc); _local7.url = (_local7.url + ("?" + _arg2.toString())); if (((_debug.active) && (_debug.GIFRequests))){ _debugSend(_local7); } else { sendRequest(_local7); }; }; }; }; } public function onSecurityError(_arg1:SecurityErrorEvent):void{ if (_debug.GIFRequests){ _debug.failure(_arg1.text); }; } public function get utmsp():String{ return (((_config.sampleRate * 100) as String)); } public function get utmcc():String{ var _local1:Array = []; if (_buffer.hasUTMA()){ _local1.push((_buffer.utma.toURLString() + ";")); }; if (_buffer.hasUTMZ()){ _local1.push((_buffer.utmz.toURLString() + ";")); }; if (_buffer.hasUTMV()){ _local1.push((_buffer.utmv.toURLString() + ";")); }; return (_local1.join("+")); } public function get utmac():String{ return (_utmac); } public function get utmwv():String{ return (_config.version); } public function sendRequest(_arg1:URLRequest):void{ var request = _arg1; var loader:Loader = new Loader(); loader.name = String(_count++); var context:LoaderContext = new LoaderContext(false); loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onIOError); loader.contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); _lastRequest = request; _requests[loader.name] = new RequestObject(request); try { loader.load(request, context); } catch(e:Error) { _debug.failure("\"Loader.load()\" could not instanciate Gif Request"); }; } private function _removeListeners(_arg1:Object):void{ _arg1.removeEventListener(IOErrorEvent.IO_ERROR, onIOError); _arg1.removeEventListener(Event.COMPLETE, onComplete); } public function updateToken():void{ var _local2:Number; var _local1:Number = new Date().getTime(); _local2 = ((_local1 - _buffer.utmb.lastTime) * (_config.tokenRate / 1000)); if (_debug.verbose){ _debug.info(("tokenDelta: " + _local2), VisualDebugMode.geek); }; if (_local2 >= 1){ _buffer.utmb.token = Math.min(Math.floor((_buffer.utmb.token + _local2)), _config.bucketCapacity); _buffer.utmb.lastTime = _local1; if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); }; }; } public function get utmhn():String{ return (_info.domainName); } private function _shortenURL(_arg1:String):String{ var _local2:Array; if (_arg1.length > 60){ _local2 = _arg1.split("/"); while (_arg1.length > 60) { _local2.shift(); _arg1 = ("../" + _local2.join("/")); }; }; return (_arg1); } private function _debugSend(_arg1:URLRequest):void{ var _local3:String; var _local2 = ""; switch (_debug.mode){ case VisualDebugMode.geek: _local2 = ((("Gif Request #" + _alertcount) + ":\n") + _arg1.url); break; case VisualDebugMode.advanced: _local3 = _arg1.url; if (_local3.indexOf("?") > -1){ _local3 = _local3.split("?")[0]; }; _local3 = _shortenURL(_local3); _local2 = (((("Send Gif Request #" + _alertcount) + ":\n") + _local3) + " ?"); break; case VisualDebugMode.basic: default: _local2 = (((("Send " + _config.serverMode.toString()) + " Gif Request #") + _alertcount) + " ?"); }; _debug.alertGifRequest(_local2, _arg1, this); _alertcount++; } public function onComplete(_arg1:Event):void{ var _local2:String = _arg1.target.loader.name; _requests[_local2].complete(); var _local3 = (("Gif Request #" + _local2) + " sent"); var _local4:String = _requests[_local2].request.url; if (_debug.GIFRequests){ if (!_debug.verbose){ if (_local4.indexOf("?") > -1){ _local4 = _local4.split("?")[0]; }; _local4 = _shortenURL(_local4); }; if (int(_debug.mode) > int(VisualDebugMode.basic)){ _local3 = (_local3 + ((" to \"" + _local4) + "\"")); }; _debug.success(_local3); } else { _debug.info(_local3); }; _removeListeners(_arg1.target); } } }//package com.google.analytics.core
Section 190
//IdleTimer (com.google.analytics.core.IdleTimer) package com.google.analytics.core { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.display.*; import flash.utils.*; public class IdleTimer { private var _stage:Stage; private var _loop:Timer; private var _lastMove:int; private var _inactivity:Number; private var _debug:DebugConfiguration; private var _session:Timer; private var _buffer:Buffer; public function IdleTimer(_arg1:Configuration, _arg2:DebugConfiguration, _arg3:DisplayObject, _arg4:Buffer){ var _local5:Number = _arg1.idleLoop; var _local6:Number = _arg1.idleTimeout; var _local7:Number = _arg1.sessionTimeout; _loop = new Timer((_local5 * 1000)); _session = new Timer((_local7 * 1000), 1); _debug = _arg2; _stage = _arg3.stage; _buffer = _arg4; _lastMove = getTimer(); _inactivity = (_local6 * 1000); _loop.addEventListener(TimerEvent.TIMER, checkForIdle); _session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession); _stage.addEventListener(MouseEvent.MOUSE_MOVE, onMouseMove); _debug.info(((((("delay: " + _local5) + "sec , inactivity: ") + _local6) + "sec, sessionTimeout: ") + _local7), VisualDebugMode.geek); _loop.start(); } private function onMouseMove(_arg1:MouseEvent):void{ _lastMove = getTimer(); if (_session.running){ _debug.info("session timer reset", VisualDebugMode.geek); _session.reset(); }; } public function endSession(_arg1:TimerEvent):void{ _session.removeEventListener(TimerEvent.TIMER_COMPLETE, endSession); _debug.info("session timer end session", VisualDebugMode.geek); _session.reset(); _buffer.resetCurrentSession(); _debug.info(_buffer.utmb.toString(), VisualDebugMode.geek); _debug.info(_buffer.utmc.toString(), VisualDebugMode.geek); _session.addEventListener(TimerEvent.TIMER_COMPLETE, endSession); } public function checkForIdle(_arg1:TimerEvent):void{ var _local2:int = getTimer(); if ((_local2 - _lastMove) >= _inactivity){ if (!_session.running){ _debug.info("session timer start", VisualDebugMode.geek); _session.start(); }; }; } } }//package com.google.analytics.core
Section 191
//Organic (com.google.analytics.core.Organic) package com.google.analytics.core { import com.google.analytics.utils.*; public class Organic { private var _sourcesCache:Array; private var _sourcesEngine:Array; private var _ignoredKeywords:Array; private var _ignoredReferralsCache:Object; private var _ignoredReferrals:Array; private var _ignoredKeywordsCache:Object; private var _sources:Array; public static var throwErrors:Boolean = false; public function Organic(){ _sources = []; _sourcesCache = []; _sourcesEngine = []; _ignoredReferrals = []; _ignoredReferralsCache = {}; _ignoredKeywords = []; _ignoredKeywordsCache = {}; } public function isIgnoredKeyword(_arg1:String):Boolean{ if (_ignoredKeywordsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function getKeywordValue(_arg1:OrganicReferrer, _arg2:String):String{ var _local3:String = _arg1.keyword; return (getKeywordValueFromPath(_local3, _arg2)); } public function isIgnoredReferral(_arg1:String):Boolean{ if (_ignoredReferralsCache.hasOwnProperty(_arg1)){ return (true); }; return (false); } public function clear():void{ clearEngines(); clearIgnoredReferrals(); clearIgnoredKeywords(); } public function get count():int{ return (_sources.length); } public function get ignoredKeywordsCount():int{ return (_ignoredKeywords.length); } public function match(_arg1:String):Boolean{ if (_arg1 == ""){ return (false); }; _arg1 = _arg1.toLowerCase(); if (_sourcesEngine[_arg1] != undefined){ return (true); }; return (false); } public function clearIgnoredKeywords():void{ _ignoredKeywords = []; _ignoredKeywordsCache = {}; } public function addSource(_arg1:String, _arg2:String):void{ var _local3:OrganicReferrer = new OrganicReferrer(_arg1, _arg2); if (_sourcesCache[_local3.toString()] == undefined){ _sources.push(_local3); _sourcesCache[_local3.toString()] = (_sources.length - 1); if (_sourcesEngine[_local3.engine] == undefined){ _sourcesEngine[_local3.engine] = [(_sources.length - 1)]; } else { _sourcesEngine[_local3.engine].push((_sources.length - 1)); }; } else { if (throwErrors){ throw (new Error((_local3.toString() + " already exists, we don't add it."))); }; }; } public function clearEngines():void{ _sources = []; _sourcesCache = []; _sourcesEngine = []; } public function get ignoredReferralsCount():int{ return (_ignoredReferrals.length); } public function addIgnoredReferral(_arg1:String):void{ if (_ignoredReferralsCache[_arg1] == undefined){ _ignoredReferrals.push(_arg1); _ignoredReferralsCache[_arg1] = (_ignoredReferrals.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function clearIgnoredReferrals():void{ _ignoredReferrals = []; _ignoredReferralsCache = {}; } public function getReferrerByName(_arg1:String):OrganicReferrer{ var _local2:int; if (match(_arg1)){ _local2 = _sourcesEngine[_arg1][0]; return (_sources[_local2]); }; return (null); } public function addIgnoredKeyword(_arg1:String):void{ if (_ignoredKeywordsCache[_arg1] == undefined){ _ignoredKeywords.push(_arg1); _ignoredKeywordsCache[_arg1] = (_ignoredKeywords.length - 1); } else { if (throwErrors){ throw (new Error((("\"" + _arg1) + "\" already exists, we don't add it."))); }; }; } public function get sources():Array{ return (_sources); } public static function getKeywordValueFromPath(_arg1:String, _arg2:String):String{ var _local3:String; var _local4:Variables; if (_arg2.indexOf((_arg1 + "=")) > -1){ if (_arg2.charAt(0) == "?"){ _arg2 = _arg2.substr(1); }; _arg2 = _arg2.split("+").join("%20"); _local4 = new Variables(_arg2); _local3 = _local4[_arg1]; }; return (_local3); } } }//package com.google.analytics.core
Section 192
//OrganicReferrer (com.google.analytics.core.OrganicReferrer) package com.google.analytics.core { public class OrganicReferrer { private var _engine:String; private var _keyword:String; public function OrganicReferrer(_arg1:String, _arg2:String){ this.engine = _arg1; this.keyword = _arg2; } public function get keyword():String{ return (_keyword); } public function get engine():String{ return (_engine); } public function set engine(_arg1:String):void{ _engine = _arg1.toLowerCase(); } public function toString():String{ return (((engine + "?") + keyword)); } public function set keyword(_arg1:String):void{ _keyword = _arg1.toLowerCase(); } } }//package com.google.analytics.core
Section 193
//RequestObject (com.google.analytics.core.RequestObject) package com.google.analytics.core { import flash.utils.*; import flash.net.*; public class RequestObject { public var start:int; public var end:int; public var request:URLRequest; public function RequestObject(_arg1:URLRequest){ start = getTimer(); this.request = _arg1; } public function hasCompleted():Boolean{ return ((end > 0)); } public function toString():String{ var _local1:Array = []; _local1.push((("duration: " + duration) + "ms")); _local1.push(("url: " + request.url)); return ((("{ " + _local1.join(", ")) + " }")); } public function complete():void{ end = getTimer(); } public function get duration():int{ if (!hasCompleted()){ return (0); }; return ((end - start)); } } }//package com.google.analytics.core
Section 194
//ServerOperationMode (com.google.analytics.core.ServerOperationMode) package com.google.analytics.core { public class ServerOperationMode { private var _value:int; private var _name:String; public static const both:ServerOperationMode = new ServerOperationMode(2, "both"); ; public static const remote:ServerOperationMode = new ServerOperationMode(1, "remote"); ; public static const local:ServerOperationMode = new ServerOperationMode(0, "local"); ; public function ServerOperationMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.core
Section 195
//TrackerCache (com.google.analytics.core.TrackerCache) package com.google.analytics.core { import com.google.analytics.v4.*; import flash.errors.*; public class TrackerCache implements GoogleAnalyticsAPI { public var tracker:GoogleAnalyticsAPI; private var _ar:Array; public static var CACHE_THROW_ERROR:Boolean; public function TrackerCache(_arg1:GoogleAnalyticsAPI=null){ this.tracker = _arg1; _ar = []; } public function size():uint{ return (_ar.length); } public function flush():void{ var _local1:Object; var _local2:String; var _local3:Array; var _local4:int; var _local5:int; if (tracker == null){ return; }; if (size() > 0){ _local4 = _ar.length; while (_local5 < _local4) { _local1 = _ar.shift(); _local2 = (_local1.name as String); _local3 = (_local1.args as Array); if (((!((_local2 == null))) && ((_local2 in tracker)))){ (tracker[_local2] as Function).apply(tracker, _local3); }; _local5++; }; }; } public function enqueue(_arg1:String, ... _args):Boolean{ if (_arg1 == null){ return (false); }; _ar.push({name:_arg1, args:_args}); return (true); } public function link(_arg1:String, _arg2:Boolean=false):void{ enqueue("link", _arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ enqueue("addOrganic", _arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ enqueue("setAllowLinker", _arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ enqueue("trackEvent", _arg1, _arg2, _arg3, _arg4); return (true); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLinkerUrl' method for the moment.")); }; return (""); } public function getClientInfo():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getClientInfo' method for the moment.")); }; return (false); } public function trackTrans():void{ enqueue("trackTrans"); } public function trackPageview(_arg1:String=""):void{ enqueue("trackPageview", _arg1); } public function setClientInfo(_arg1:Boolean):void{ enqueue("setClientInfo", _arg1); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ enqueue("linkByPost", _arg1, _arg2); } public function setCookieTimeout(_arg1:int):void{ enqueue("setCookieTimeout", _arg1); } public function isEmpty():Boolean{ return ((_ar.length == 0)); } public function getDetectTitle():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectTitle' method for the moment.")); }; return (false); } public function resetSession():void{ enqueue("resetSession"); } public function setDetectFlash(_arg1:Boolean):void{ enqueue("setDetectFlash", _arg1); } public function clear():void{ _ar = []; } public function setCampNameKey(_arg1:String):void{ enqueue("setCampNameKey", _arg1); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ enqueue("addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function createEventTracker(_arg1:String):EventTracker{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'createEventTracker' method for the moment.")); }; return (null); } public function clearIgnoredOrganic():void{ enqueue("clearIgnoredOrganic"); } public function setVar(_arg1:String):void{ enqueue("setVar", _arg1); } public function setDomainName(_arg1:String):void{ enqueue("setDomainName", _arg1); } public function setCampSourceKey(_arg1:String):void{ enqueue("setCampSourceKey", _arg1); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'addTrans' method for the moment.")); }; } public function setCampContentKey(_arg1:String):void{ enqueue("setCampContentKey", _arg1); } public function setLocalServerMode():void{ enqueue("setLocalServerMode"); } public function getLocalGifPath():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getLocalGifPath' method for the moment.")); }; return (""); } public function setAllowAnchor(_arg1:Boolean):void{ enqueue("setAllowAnchor", _arg1); } public function clearIgnoredRef():void{ enqueue("clearIgnoredRef"); } public function setLocalGifPath(_arg1:String):void{ enqueue("setLocalGifPath", _arg1); } public function getVersion():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getVersion' method for the moment.")); }; return (""); } public function setCookiePath(_arg1:String):void{ enqueue("setCookiePath", _arg1); } public function setSampleRate(_arg1:Number):void{ enqueue("setSampleRate", _arg1); } public function setDetectTitle(_arg1:Boolean):void{ enqueue("setDetectTitle", _arg1); } public function setAllowHash(_arg1:Boolean):void{ enqueue("setAllowHash", _arg1); } public function addIgnoredOrganic(_arg1:String):void{ enqueue("addIgnoredOrganic", _arg1); } public function setCampNOKey(_arg1:String):void{ enqueue("setCampNOKey", _arg1); } public function getServiceMode():ServerOperationMode{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getServiceMode' method for the moment.")); }; return (null); } public function setLocalRemoteServerMode():void{ enqueue("setLocalRemoteServerMode"); } public function cookiePathCopy(_arg1:String):void{ enqueue("cookiePathCopy", _arg1); } public function getDetectFlash():Boolean{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getDetectFlash' method for the moment.")); }; return (false); } public function setCampaignTrack(_arg1:Boolean):void{ enqueue("setCampaignTrack", _arg1); } public function clearOrganic():void{ enqueue("clearOrganic"); } public function setCampTermKey(_arg1:String):void{ enqueue("setCampTermKey", _arg1); } public function addIgnoredRef(_arg1:String):void{ enqueue("addIgnoredRef", _arg1); } public function setCampMediumKey(_arg1:String):void{ enqueue("setCampMediumKey", _arg1); } public function setSessionTimeout(_arg1:int):void{ enqueue("setSessionTimeout", _arg1); } public function setRemoteServerMode():void{ enqueue("setRemoteServerMode"); } public function element(){ return (_ar[0]); } public function getAccount():String{ if (CACHE_THROW_ERROR){ throw (new IllegalOperationError("The tracker is not ready and you can use the 'getAccount' method for the moment.")); }; return (""); } } }//package com.google.analytics.core
Section 196
//TrackerMode (com.google.analytics.core.TrackerMode) package com.google.analytics.core { public class TrackerMode { public static const BRIDGE:String = "Bridge"; public static const AS3:String = "AS3"; } }//package com.google.analytics.core
Section 197
//Utils (com.google.analytics.core.Utils) package com.google.analytics.core { public class Utils { public static function trim(_arg1:String, _arg2:Boolean=false):String{ var _local5:int; var _local6:int; var _local7:int; if (_arg1 == ""){ return (""); }; var _local3:Array = [" ", "\n", "\r", "\t"]; var _local4:String = _arg1; if (_arg2){ _local5 = 0; while ((((_local5 < _local3.length)) && ((_local4.indexOf(_local3[_local5]) > -1)))) { _local4 = _local4.split(_local3[_local5]).join(""); _local5++; }; } else { _local6 = 0; while ((((_local6 < _local4.length)) && ((_local3.indexOf(_local4.charAt(_local6)) > -1)))) { _local6++; }; _local4 = _local4.substr(_local6); _local7 = (_local4.length - 1); while ((((_local7 >= 0)) && ((_local3.indexOf(_local4.charAt(_local7)) > -1)))) { _local7--; }; _local4 = _local4.substring(0, (_local7 + 1)); }; return (_local4); } public static function generateHash(_arg1:String):int{ var _local4:int; var _local5:int; var _local2 = 1; var _local3:int; if (((!((_arg1 == null))) && (!((_arg1 == ""))))){ _local2 = 0; _local4 = (_arg1.length - 1); while (_local4 >= 0) { _local5 = _arg1.charCodeAt(_local4); _local2 = ((((_local2 << 6) & 268435455) + _local5) + (_local5 << 14)); _local3 = (_local2 & 266338304); if (_local3 != 0){ _local2 = (_local2 ^ (_local3 >> 21)); }; _local4--; }; }; return (_local2); } public static function generate32bitRandom():int{ return (Math.round((Math.random() * 2147483647))); } public static function validateAccount(_arg1:String):Boolean{ var _local2:RegExp = /^UA-[0-9]*-[0-9]*$/; return (_local2.test(_arg1)); } } }//package com.google.analytics.core
Section 198
//Cookie (com.google.analytics.data.Cookie) package com.google.analytics.data { public interface Cookie { function fromSharedObject(_arg1:Object):void; function toURLString():String; function get creation():Date; function toSharedObject():Object; function isExpired():Boolean; function set creation(_arg1:Date):void; function set expiration(_arg1:Date):void; function get expiration():Date; } }//package com.google.analytics.data
Section 199
//UTMA (com.google.analytics.data.UTMA) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMA extends UTMCookie { private var _sessionId:Number; private var _domainHash:Number; private var _firstTime:Number; private var _currentTime:Number; private var _lastTime:Number; private var _sessionCount:Number; public function UTMA(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:Number=NaN, _arg6:Number=NaN){ super("utma", "__utma", ["domainHash", "sessionId", "firstTime", "lastTime", "currentTime", "sessionCount"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.sessionId = _arg2; this.firstTime = _arg3; this.lastTime = _arg4; this.currentTime = _arg5; this.sessionCount = _arg6; } public function get lastTime():Number{ return (_lastTime); } public function set lastTime(_arg1:Number):void{ _lastTime = _arg1; update(); } public function set currentTime(_arg1:Number):void{ _currentTime = _arg1; update(); } public function get sessionId():Number{ return (_sessionId); } public function get sessionCount():Number{ return (_sessionCount); } public function get firstTime():Number{ return (_firstTime); } public function get currentTime():Number{ return (_currentTime); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set sessionId(_arg1:Number):void{ _sessionId = _arg1; update(); } public function set sessionCount(_arg1:Number):void{ _sessionCount = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } public function set firstTime(_arg1:Number):void{ _firstTime = _arg1; update(); } } }//package com.google.analytics.data
Section 200
//UTMB (com.google.analytics.data.UTMB) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMB extends UTMCookie { private var _trackCount:Number; private var _lastTime:Number; private var _domainHash:Number; private var _token:Number; public static var defaultTimespan:Number = Timespan.thirtyminutes; public function UTMB(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN){ super("utmb", "__utmb", ["domainHash", "trackCount", "token", "lastTime"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.trackCount = _arg2; this.token = _arg3; this.lastTime = _arg4; } public function set token(_arg1:Number):void{ _token = _arg1; update(); } public function set trackCount(_arg1:Number):void{ _trackCount = _arg1; update(); } public function get lastTime():Number{ return (_lastTime); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set lastTime(_arg1:Number):void{ _lastTime = _arg1; update(); } public function get domainHash():Number{ return (_domainHash); } public function get token():Number{ return (_token); } public function get trackCount():Number{ return (_trackCount); } } }//package com.google.analytics.data
Section 201
//UTMC (com.google.analytics.data.UTMC) package com.google.analytics.data { public class UTMC extends UTMCookie { private var _domainHash:Number; public function UTMC(_arg1:Number=NaN){ super("utmc", "__utmc", ["domainHash"]); this.domainHash = _arg1; } public function get domainHash():Number{ return (_domainHash); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } } }//package com.google.analytics.data
Section 202
//UTMCookie (com.google.analytics.data.UTMCookie) package com.google.analytics.data { import com.google.analytics.core.*; public class UTMCookie implements Cookie { protected var inURL:String; protected var name:String; private var _creation:Date; private var _expiration:Date; public var proxy:Buffer; protected var fields:Array; private var _timespan:Number; public function UTMCookie(_arg1:String, _arg2:String, _arg3:Array, _arg4:Number=0){ this.name = _arg1; this.inURL = _arg2; this.fields = _arg3; _timestamp(_arg4); } public function isEmpty():Boolean{ var _local2:String; var _local1:int; var _local3:int; while (_local3 < fields.length) { _local2 = fields[_local3]; if ((((this[_local2] is Number)) && (isNaN(this[_local2])))){ _local1++; } else { if ((((this[_local2] is String)) && ((this[_local2] == "")))){ _local1++; }; }; _local3++; }; if (_local1 == fields.length){ return (true); }; return (false); } public function resetTimestamp(_arg1:Number=NaN):void{ if (!isNaN(_arg1)){ _timespan = _arg1; }; _creation = null; _expiration = null; _timestamp(_timespan); } protected function update():void{ resetTimestamp(); if (proxy){ proxy.update(name, toSharedObject()); }; } public function reset():void{ var _local1:String; var _local2:int; while (_local2 < fields.length) { _local1 = fields[_local2]; if ((this[_local1] is Number)){ this[_local1] = NaN; } else { if ((this[_local1] is String)){ this[_local1] = ""; }; }; _local2++; }; resetTimestamp(); update(); } public function fromSharedObject(_arg1:Object):void{ var _local2:String; var _local3:int = fields.length; var _local4:int; while (_local4 < _local3) { _local2 = fields[_local4]; if (_arg1[_local2]){ this[_local2] = _arg1[_local2]; }; _local4++; }; if (_arg1.creation){ this.creation = _arg1.creation; }; if (_arg1.expiration){ this.expiration = _arg1.expiration; }; } private function _timestamp(_arg1:Number):void{ creation = new Date(); _timespan = _arg1; if (_arg1 > 0){ expiration = new Date((creation.valueOf() + _arg1)); }; } public function isExpired():Boolean{ var _local1:Date = new Date(); var _local2:Number = (expiration.valueOf() - _local1.valueOf()); if (_local2 <= 0){ return (true); }; return (false); } public function set expiration(_arg1:Date):void{ _expiration = _arg1; } public function get creation():Date{ return (_creation); } public function valueOf():String{ var _local2:String; var _local3:*; var _local4:Array; var _local1:Array = []; var _local5 = ""; var _local6:int; while (_local6 < fields.length) { _local2 = fields[_local6]; _local3 = this[_local2]; if ((_local3 is String)){ if (_local3 == ""){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; } else { if ((_local3 is Number)){ if (_local3 == 0){ _local1.push(_local3); } else { if (isNaN(_local3)){ _local3 = "-"; _local1.push(_local3); } else { _local1.push(_local3); }; }; }; }; _local6++; }; if (isEmpty()){ return ("-"); }; return (("" + _local1.join("."))); } public function toURLString():String{ return (((inURL + "=") + valueOf())); } public function get expiration():Date{ if (_expiration){ return (_expiration); }; return (new Date((new Date().valueOf() + 1000))); } public function toSharedObject():Object{ var _local2:String; var _local3:*; var _local1:Object = {}; var _local4:int; for (;_local4 < fields.length;_local4++) { _local2 = fields[_local4]; _local3 = this[_local2]; if ((_local3 is String)){ _local1[_local2] = _local3; } else { if (_local3 == 0){ _local1[_local2] = _local3; } else { if (isNaN(_local3)){ continue; } else { _local1[_local2] = _local3; }; }; }; }; _local1.creation = creation; _local1.expiration = expiration; return (_local1); } public function toString(_arg1:Boolean=false):String{ var _local3:String; var _local4:*; var _local2:Array = []; var _local5:int = fields.length; var _local6:int; for (;_local6 < _local5;_local6++) { _local3 = fields[_local6]; _local4 = this[_local3]; if ((_local4 is String)){ _local2.push((((_local3 + ": \"") + _local4) + "\"")); } else { if (_local4 == 0){ _local2.push(((_local3 + ": ") + _local4)); } else { if (isNaN(_local4)){ continue; } else { _local2.push(((_local3 + ": ") + _local4)); }; }; }; }; var _local7 = (((name.toUpperCase() + " {") + _local2.join(", ")) + "}"); if (_arg1){ _local7 = (_local7 + (((" creation:" + creation) + ", expiration:") + expiration)); }; return (_local7); } public function set creation(_arg1:Date):void{ _creation = _arg1; } } }//package com.google.analytics.data
Section 203
//UTMK (com.google.analytics.data.UTMK) package com.google.analytics.data { public class UTMK extends UTMCookie { private var _hash:Number; public function UTMK(_arg1:Number=NaN){ super("utmk", "__utmk", ["hash"]); this.hash = _arg1; } public function set hash(_arg1:Number):void{ _hash = _arg1; update(); } public function get hash():Number{ return (_hash); } } }//package com.google.analytics.data
Section 204
//UTMV (com.google.analytics.data.UTMV) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMV extends UTMCookie { private var _domainHash:Number; private var _value:String; public function UTMV(_arg1:Number=NaN, _arg2:String=""){ super("utmv", "__utmv", ["domainHash", "value"], (Timespan.twoyears * 1000)); this.domainHash = _arg1; this.value = _arg2; } public function get value():String{ return (_value); } public function get domainHash():Number{ return (_domainHash); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set value(_arg1:String):void{ _value = _arg1; update(); } } }//package com.google.analytics.data
Section 205
//UTMX (com.google.analytics.data.UTMX) package com.google.analytics.data { public class UTMX extends UTMCookie { private var _value:String; public function UTMX(){ super("utmx", "__utmx", ["value"], 0); _value = "-"; } public function get value():String{ return (_value); } public function set value(_arg1:String):void{ _value = _arg1; } } }//package com.google.analytics.data
Section 206
//UTMZ (com.google.analytics.data.UTMZ) package com.google.analytics.data { import com.google.analytics.utils.*; public class UTMZ extends UTMCookie { private var _campaignTracking:String; private var _campaignCreation:Number; private var _responseCount:Number; private var _domainHash:Number; private var _campaignSessions:Number; public static var defaultTimespan:Number = Timespan.sixmonths; public function UTMZ(_arg1:Number=NaN, _arg2:Number=NaN, _arg3:Number=NaN, _arg4:Number=NaN, _arg5:String=""){ super("utmz", "__utmz", ["domainHash", "campaignCreation", "campaignSessions", "responseCount", "campaignTracking"], (defaultTimespan * 1000)); this.domainHash = _arg1; this.campaignCreation = _arg2; this.campaignSessions = _arg3; this.responseCount = _arg4; this.campaignTracking = _arg5; } public function set responseCount(_arg1:Number):void{ _responseCount = _arg1; update(); } public function set domainHash(_arg1:Number):void{ _domainHash = _arg1; update(); } public function set campaignCreation(_arg1:Number):void{ _campaignCreation = _arg1; update(); } public function get campaignTracking():String{ return (_campaignTracking); } public function get campaignSessions():Number{ return (_campaignSessions); } public function get domainHash():Number{ return (_domainHash); } public function get responseCount():Number{ return (_responseCount); } public function get campaignCreation():Number{ return (_campaignCreation); } public function set campaignSessions(_arg1:Number):void{ _campaignSessions = _arg1; update(); } public function set campaignTracking(_arg1:String):void{ _campaignTracking = _arg1; update(); } } }//package com.google.analytics.data
Section 207
//X10 (com.google.analytics.data.X10) package com.google.analytics.data { public class X10 { private var _delimEnd:String;// = ")" private var _minimum:int; private var _delimSet:String;// = "*" private var _escapeChar:String;// = "'" private var _delimBegin:String;// = "(" private var _delimNumValue:String;// = "!" private var _key:String;// = "k" private var _set:Array; private var _hasData:int; private var _escapeCharMap:Object; private var _projectData:Object; private var _value:String;// = "v" public function X10(){ _set = [_key, _value]; super(); _projectData = {}; _escapeCharMap = {}; _escapeCharMap[_escapeChar] = "'0"; _escapeCharMap[_delimEnd] = "'1"; _escapeCharMap[_delimSet] = "'2"; _escapeCharMap[_delimNumValue] = "'3"; _minimum = 1; } private function _setInternal(_arg1:Number, _arg2:String, _arg3:Number, _arg4:String):void{ if (!hasProject(_arg1)){ _projectData[_arg1] = {}; }; if (_projectData[_arg1][_arg2] == undefined){ _projectData[_arg1][_arg2] = []; }; _projectData[_arg1][_arg2][_arg3] = _arg4; _hasData = (_hasData + 1); } private function _renderProject(_arg1:Object):String{ var _local4:int; var _local5:Array; var _local2 = ""; var _local3:Boolean; var _local6:int = _set.length; _local4 = 0; while (_local4 < _local6) { _local5 = _arg1[_set[_local4]]; if (_local5){ if (_local3){ _local2 = (_local2 + _set[_local4]); }; _local2 = (_local2 + _renderDataType(_local5)); _local3 = false; } else { _local3 = true; }; _local4++; }; return (_local2); } public function hasProject(_arg1:Number):Boolean{ return (_projectData[_arg1]); } public function clearKey(_arg1:Number):void{ _clearInternal(_arg1, _key); } private function _renderDataType(_arg1:Array):String{ var _local3:String; var _local4:int; var _local2:Array = []; _local4 = 0; while (_local4 < _arg1.length) { if (_arg1[_local4] != undefined){ _local3 = ""; if (((!((_local4 == _minimum))) && ((_arg1[(_local4 - 1)] == undefined)))){ _local3 = (_local3 + _local4.toString()); _local3 = (_local3 + _delimNumValue); }; _local3 = (_local3 + _escapeExtensibleValue(_arg1[_local4])); _local2.push(_local3); }; _local4++; }; return (((_delimBegin + _local2.join(_delimSet)) + _delimEnd)); } public function getKey(_arg1:Number, _arg2:Number):String{ return ((_getInternal(_arg1, _key, _arg2) as String)); } public function hasData():Boolean{ return ((_hasData > 0)); } public function renderMergedUrlString(_arg1:X10=null):String{ var _local3:String; if (!_arg1){ return (renderUrlString()); }; var _local2:Array = [_arg1.renderUrlString()]; for (_local3 in _projectData) { if (((hasProject(Number(_local3))) && (!(_arg1.hasProject(Number(_local3)))))){ _local2.push((_local3 + _renderProject(_projectData[_local3]))); }; }; return (_local2.join("")); } public function setValue(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ if (((((!((Math.round(_arg3) == _arg3))) || (isNaN(_arg3)))) || ((_arg3 == Infinity)))){ return (false); }; _setInternal(_arg1, _value, _arg2, _arg3.toString()); return (true); } public function renderUrlString():String{ var _local2:String; var _local1:Array = []; for (_local2 in _projectData) { if (hasProject(Number(_local2))){ _local1.push((_local2 + _renderProject(_projectData[_local2]))); }; }; return (_local1.join("")); } private function _getInternal(_arg1:Number, _arg2:String, _arg3:Number):Object{ if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){ return (_projectData[_arg1][_arg2][_arg3]); }; return (undefined); } public function setKey(_arg1:Number, _arg2:Number, _arg3:String):Boolean{ _setInternal(_arg1, _key, _arg2, _arg3); return (true); } public function clearValue(_arg1:Number):void{ _clearInternal(_arg1, _value); } private function _clearInternal(_arg1:Number, _arg2:String):void{ var _local3:Boolean; var _local4:int; var _local5:int; if (((hasProject(_arg1)) && (!((_projectData[_arg1][_arg2] == undefined))))){ _projectData[_arg1][_arg2] = undefined; _local3 = true; _local5 = _set.length; _local4 = 0; while (_local4 < _local5) { if (_projectData[_arg1][_set[_local4]] != undefined){ _local3 = false; break; }; _local4++; }; if (_local3){ _projectData[_arg1] = undefined; _hasData = (_hasData - 1); }; }; } public function getValue(_arg1:Number, _arg2:Number){ var _local3:* = _getInternal(_arg1, _value, _arg2); if (_local3 == null){ return (null); }; return (Number(_local3)); } private function _escapeExtensibleValue(_arg1:String):String{ var _local3:int; var _local4:String; var _local5:String; var _local2 = ""; _local3 = 0; while (_local3 < _arg1.length) { _local4 = _arg1.charAt(_local3); _local5 = _escapeCharMap[_local4]; if (_local5){ _local2 = (_local2 + _local5); } else { _local2 = (_local2 + _local4); }; _local3++; }; return (_local2); } } }//package com.google.analytics.data
Section 208
//_Style (com.google.analytics.debug._Style) package com.google.analytics.debug { import flash.net.*; import flash.text.*; public class _Style { public var failureColor:uint; public var borderColor:uint; public var backgroundColor:uint; private var _sheet:StyleSheet; public var roundedCorner:uint; public var warningColor:uint; public var infoColor:uint; public var alertColor:uint; public var successColor:uint; private var _loader:URLLoader; private var _defaultSheet:String; public function _Style(){ _sheet = new StyleSheet(); _loader = new URLLoader(); _init(); } private function _parseSheet(_arg1:String):void{ _sheet.parseCSS(_arg1); } public function get sheet():StyleSheet{ return (_sheet); } private function _init():void{ _defaultSheet = ""; _defaultSheet = (_defaultSheet + "a{text-decoration: underline;}\n"); _defaultSheet = (_defaultSheet + ".uiLabel{color: #000000;font-family: Arial;font-size: 12;margin-left: 2;margin-right: 2;}\n"); _defaultSheet = (_defaultSheet + ".uiWarning{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlert{color: #ffffff;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiInfo{color: #000000;font-family: Arial;font-size: 14;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiSuccess{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiFailure{color: #ffffff;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlertAction{color: #ffffff;text-align: center;font-family: Arial;font-size: 12;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + ".uiAlertTitle{color: #ffffff;font-family: Arial;font-size: 16;font-weight: bold;margin-left: 6;margin-right: 6;}\n"); _defaultSheet = (_defaultSheet + "\n"); roundedCorner = 6; backgroundColor = 0xCCCCCC; borderColor = 0x555555; infoColor = 16777113; alertColor = 0xFFCC00; warningColor = 0xCC0000; successColor = 0xFF00; failureColor = 0xFF0000; _parseSheet(_defaultSheet); } } }//package com.google.analytics.debug
Section 209
//Alert (com.google.analytics.debug.Alert) package com.google.analytics.debug { import flash.events.*; public class Alert extends Label { public var autoClose:Boolean;// = true public var actionOnNextLine:Boolean;// = true private var _actions:Array; public function Alert(_arg1:String, _arg2:Array, _arg3:String="uiAlert", _arg4:uint=0, _arg5:Align=null, _arg6:Boolean=false, _arg7:Boolean=true){ if (_arg4 == 0){ _arg4 = Style.alertColor; }; if (_arg5 == null){ _arg5 = Align.center; }; super(_arg1, _arg3, _arg4, _arg5, _arg6); this.selectable = true; super.mouseChildren = true; this.buttonMode = true; this.mouseEnabled = true; this.useHandCursor = true; this.actionOnNextLine = _arg7; _actions = []; var _local8:int; while (_local8 < _arg2.length) { _arg2[_local8].container = this; _actions.push(_arg2[_local8]); _local8++; }; } private function _defineActions():void{ var _local3:AlertAction; var _local1 = ""; if (actionOnNextLine){ _local1 = (_local1 + "\n"); } else { _local1 = (_local1 + " |"); }; _local1 = (_local1 + " "); var _local2:Array = []; var _local4:int; while (_local4 < _actions.length) { _local3 = _actions[_local4]; _local2.push((((("<a href=\"event:" + _local3.activator) + "\">") + _local3.name) + "</a>")); _local4++; }; _local1 = (_local1 + _local2.join(" | ")); appendText(_local1, "uiAlertAction"); } protected function isValidAction(_arg1:String):Boolean{ var _local2:int; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (true); }; _local2++; }; return (false); } override protected function layout():void{ super.layout(); _defineActions(); } protected function getAction(_arg1:String):AlertAction{ var _local2:int; while (_local2 < _actions.length) { if (_arg1 == _actions[_local2].activator){ return (_actions[_local2]); }; _local2++; }; return (null); } protected function spaces(_arg1:int):String{ var _local2 = ""; var _local3 = " "; var _local4:int; while (_local4 < (_arg1 + 1)) { _local2 = (_local2 + _local3); _local4++; }; return (_local2); } override public function onLink(_arg1:TextEvent):void{ var _local2:AlertAction; if (isValidAction(_arg1.text)){ _local2 = getAction(_arg1.text); if (_local2){ _local2.execute(); }; }; if (autoClose){ close(); }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 210
//AlertAction (com.google.analytics.debug.AlertAction) package com.google.analytics.debug { public class AlertAction { public var container:Alert; private var _callback; public var activator:String; public var name:String; public function AlertAction(_arg1:String, _arg2:String, _arg3){ this.name = _arg1; this.activator = _arg2; _callback = _arg3; } public function execute():void{ if (_callback){ if ((_callback is Function)){ (_callback as Function)(); } else { if ((_callback is String)){ var _local1 = container; _local1[_callback](); }; }; }; } } }//package com.google.analytics.debug
Section 211
//Align (com.google.analytics.debug.Align) package com.google.analytics.debug { public class Align { private var _value:int; private var _name:String; public static const bottomRight:Align = new Align(18, "bottomRight"); ; public static const right:Align = new Align(16, "right"); ; public static const left:Align = new Align(32, "left"); ; public static const topRight:Align = new Align(17, "topRight"); ; public static const bottom:Align = new Align(2, "bottom"); ; public static const bottomLeft:Align = new Align(34, "bottomLeft"); ; public static const topLeft:Align = new Align(33, "topLeft"); ; public static const center:Align = new Align(0x0100, "center"); ; public static const none:Align = new Align(0, "none"); ; public static const top:Align = new Align(1, "top"); ; public function Align(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.debug
Section 212
//Background (com.google.analytics.debug.Background) package com.google.analytics.debug { import flash.display.*; public class Background { public static function drawRounded(_arg1, _arg2:Graphics, _arg3:uint=0, _arg4:uint=0):void{ var _local5:uint; var _local6:uint; var _local7:uint = Style.roundedCorner; if ((((_arg3 > 0)) && ((_arg4 > 0)))){ _local5 = _arg3; _local6 = _arg4; } else { _local5 = _arg1.width; _local6 = _arg1.height; }; if (((_arg1.stickToEdge) && (!((_arg1.alignement == Align.none))))){ switch (_arg1.alignement){ case Align.top: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, _local7); break; case Align.topLeft: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, 0, _local7); break; case Align.topRight: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, 0, _local7, 0); break; case Align.bottom: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, _local7, 0, 0); break; case Align.bottomLeft: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, 0); break; case Align.bottomRight: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, 0, 0); break; case Align.left: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, 0, _local7, 0, _local7); break; case Align.right: _arg2.drawRoundRectComplex(0, 0, _local5, _local6, _local7, 0, _local7, 0); break; case Align.center: _arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7); break; }; } else { _arg2.drawRoundRect(0, 0, _local5, _local6, _local7, _local7); }; } } }//package com.google.analytics.debug
Section 213
//Debug (com.google.analytics.debug.Debug) package com.google.analytics.debug { import flash.events.*; import flash.ui.*; public class Debug extends Label { private var _lines:Array; private var _preferredForcedWidth:uint;// = 540 private var _linediff:int;// = 0 public var maxLines:uint;// = 16 public static var count:uint; public function Debug(_arg1:uint=0, _arg2:Align=null, _arg3:Boolean=false){ if (_arg2 == null){ _arg2 = Align.bottom; }; super("", "uiLabel", _arg1, _arg2, _arg3); this.name = ("Debug" + count++); _lines = []; selectable = true; addEventListener(KeyboardEvent.KEY_DOWN, onKey); } public function writeBold(_arg1:String):void{ write(_arg1, true); } private function _getLinesToDisplay(_arg1:int=0):Array{ var _local2:Array; var _local3:uint; var _local4:uint; if ((_lines.length - 1) > maxLines){ if ((_linediff <= 0)){ _linediff = (_linediff + _arg1); } else { if ((((_linediff > 0)) && ((_arg1 < 0)))){ _linediff = (_linediff + _arg1); }; }; _local3 = ((_lines.length - maxLines) + _linediff); _local4 = (_local3 + maxLines); _local2 = _lines.slice(_local3, _local4); } else { _local2 = _lines; }; return (_local2); } private function onKey(_arg1:KeyboardEvent=null):void{ var _local2:Array; switch (_arg1.keyCode){ case Keyboard.DOWN: _local2 = _getLinesToDisplay(1); break; case Keyboard.UP: _local2 = _getLinesToDisplay(-1); break; default: _local2 = null; }; if (_local2 == null){ return; }; text = _local2.join("\n"); } override public function get forcedWidth():uint{ if (this.parent){ if (UISprite(this.parent).forcedWidth > _preferredForcedWidth){ return (_preferredForcedWidth); }; return (UISprite(this.parent).forcedWidth); //unresolved jump }; return (super.forcedWidth); } public function write(_arg1:String, _arg2:Boolean=false):void{ var _local3:Array; if (_arg1.indexOf("") > -1){ _local3 = _arg1.split("\n"); } else { _local3 = [_arg1]; }; var _local4 = ""; var _local5 = ""; if (_arg2){ _local4 = "<b>"; _local5 = "</b>"; }; var _local6:int; while (_local6 < _local3.length) { _lines.push(((_local4 + _local3[_local6]) + _local5)); _local6++; }; var _local7:Array = _getLinesToDisplay(); text = _local7.join("\n"); } public function close():void{ dispose(); } override protected function dispose():void{ removeEventListener(KeyboardEvent.KEY_DOWN, onKey); super.dispose(); } } }//package com.google.analytics.debug
Section 214
//DebugConfiguration (com.google.analytics.debug.DebugConfiguration) package com.google.analytics.debug { import com.google.analytics.core.*; import flash.utils.*; import flash.net.*; import flash.ui.*; public class DebugConfiguration { public var showHideKey:Number; private var _mode:VisualDebugMode; private var _verbose:Boolean;// = false public var destroyKey:Number; public var GIFRequests:Boolean;// = false public var showInfos:Boolean;// = true public var infoTimeout:Number;// = 1000 public var minimizedOnStart:Boolean;// = false private var _active:Boolean;// = false public var traceOutput:Boolean;// = false public var layout:ILayout; public var warningTimeout:Number;// = 1500 public var javascript:Boolean;// = false public var showWarnings:Boolean;// = true private var _visualInitialized:Boolean;// = false public function DebugConfiguration(){ _mode = VisualDebugMode.basic; showHideKey = Keyboard.SPACE; destroyKey = Keyboard.BACKSPACE; super(); } public function get verbose():Boolean{ return (_verbose); } public function set verbose(_arg1:Boolean):void{ _verbose = _arg1; } public function set mode(_arg1):void{ if ((_arg1 is String)){ switch (_arg1){ case "geek": _arg1 = VisualDebugMode.geek; break; case "advanced": _arg1 = VisualDebugMode.advanced; break; case "basic": default: _arg1 = VisualDebugMode.basic; }; }; _mode = _arg1; } public function success(_arg1:String):void{ if (layout){ layout.createSuccessAlert(_arg1); }; if (traceOutput){ trace((("[+] " + _arg1) + " !!")); }; } public function get active():Boolean{ return (_active); } private function _initializeVisual():void{ if (layout){ layout.init(); _visualInitialized = true; }; } private function _destroyVisual():void{ if (((layout) && (_visualInitialized))){ layout.destroy(); }; } public function warning(_arg1:String, _arg2:VisualDebugMode=null):void{ if (_filter(_arg2)){ return; }; if (((layout) && (showWarnings))){ layout.createWarning(_arg1); }; if (traceOutput){ trace((("## " + _arg1) + " ##")); }; } private function _filter(_arg1:VisualDebugMode=null):Boolean{ return (((_arg1) && ((int(_arg1) >= int(this.mode))))); } public function failure(_arg1:String):void{ if (layout){ layout.createFailureAlert(_arg1); }; if (traceOutput){ trace((("[-] " + _arg1) + " !!")); }; } public function get mode(){ return (_mode); } public function set active(_arg1:Boolean):void{ _active = _arg1; if (_active){ _initializeVisual(); } else { _destroyVisual(); }; } protected function trace(_arg1:String):void{ var _local7:Array; var _local8:int; var _local2:Array = []; var _local3 = ""; var _local4 = ""; if (this.mode == VisualDebugMode.geek){ _local3 = (getTimer() + " - "); _local4 = (new Array(_local3.length).join(" ") + " "); }; if (_arg1.indexOf("\n") > -1){ _local7 = _arg1.split("\n"); _local8 = 0; while (_local8 < _local7.length) { if (_local7[_local8] == ""){ } else { if (_local8 == 0){ _local2.push((_local3 + _local7[_local8])); } else { _local2.push((_local4 + _local7[_local8])); }; }; _local8++; }; } else { _local2.push((_local3 + _arg1)); }; var _local5:int = _local2.length; var _local6:int; while (_local6 < _local5) { trace(_local2[_local6]); _local6++; }; } public function alert(_arg1:String):void{ if (layout){ layout.createAlert(_arg1); }; if (traceOutput){ trace((("!! " + _arg1) + " !!")); }; } public function info(_arg1:String, _arg2:VisualDebugMode=null):void{ if (_filter(_arg2)){ return; }; if (((layout) && (showInfos))){ layout.createInfo(_arg1); }; if (traceOutput){ trace(_arg1); }; } public function alertGifRequest(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ if (layout){ layout.createGIFRequestAlert(_arg1, _arg2, _arg3); }; if (traceOutput){ trace(((">> " + _arg1) + " <<")); }; } } }//package com.google.analytics.debug
Section 215
//FailureAlert (com.google.analytics.debug.FailureAlert) package com.google.analytics.debug { public class FailureAlert extends Alert { public function FailureAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){ var _local4:Align = Align.bottomLeft; var _local5:Boolean; var _local6:Boolean; if (_arg1.verbose){ _arg2 = ((("<u><span class=\"uiAlertTitle\">Failure</span>" + spaces(18)) + "</u>\n\n") + _arg2); _local4 = Align.center; _local5 = false; _local6 = true; }; super(_arg2, _arg3, "uiFailure", Style.failureColor, _local4, _local5, _local6); } } }//package com.google.analytics.debug
Section 216
//GIFRequestAlert (com.google.analytics.debug.GIFRequestAlert) package com.google.analytics.debug { public class GIFRequestAlert extends Alert { public function GIFRequestAlert(_arg1:String, _arg2:Array){ super(_arg1, _arg2); } } }//package com.google.analytics.debug
Section 217
//ILayout (com.google.analytics.debug.ILayout) package com.google.analytics.debug { import com.google.analytics.core.*; import flash.display.*; import flash.net.*; public interface ILayout { function createAlert(_arg1:String):void; function addToStage(_arg1:DisplayObject):void; function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void; function createWarning(_arg1:String):void; function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void; function createInfo(_arg1:String):void; function createFailureAlert(_arg1:String):void; function addToPanel(_arg1:String, _arg2:DisplayObject):void; function init():void; function createSuccessAlert(_arg1:String):void; function createVisualDebug():void; function destroy():void; function bringToFront(_arg1:DisplayObject):void; function isAvailable():Boolean; } }//package com.google.analytics.debug
Section 218
//Info (com.google.analytics.debug.Info) package com.google.analytics.debug { import flash.events.*; import flash.utils.*; public class Info extends Label { private var _timer:Timer; public function Info(_arg1:String="", _arg2:uint=3000){ super(_arg1, "uiInfo", Style.infoColor, Align.top, true); if (_arg2 > 0){ _timer = new Timer(_arg2, 1); _timer.start(); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true); }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function onComplete(_arg1:TimerEvent):void{ close(); } } }//package com.google.analytics.debug
Section 219
//Label (com.google.analytics.debug.Label) package com.google.analytics.debug { import flash.events.*; import flash.display.*; import flash.text.*; public class Label extends UISprite { private var _color:uint; private var _background:Shape; private var _textField:TextField; public var stickToEdge:Boolean; private var _text:String; protected var selectable:Boolean; private var _tag:String; public static var count:uint = 0; public function Label(_arg1:String="", _arg2:String="uiLabel", _arg3:uint=0, _arg4:Align=null, _arg5:Boolean=false){ this.name = ("Label" + count++); selectable = false; _background = new Shape(); _textField = new TextField(); _text = _arg1; _tag = _arg2; if (_arg4 == null){ _arg4 = Align.none; }; this.alignement = _arg4; this.stickToEdge = _arg5; if (_arg3 == 0){ _arg3 = Style.backgroundColor; }; _color = _arg3; _textField.addEventListener(TextEvent.LINK, onLink); } public function get tag():String{ return (_tag); } private function _draw():void{ var _local1:Graphics = _background.graphics; _local1.clear(); _local1.beginFill(_color); var _local2:uint = _textField.width; var _local3:uint = _textField.height; if (forcedWidth > 0){ _local2 = forcedWidth; }; Background.drawRounded(this, _local1, _local2, _local3); _local1.endFill(); } public function get text():String{ return (_textField.text); } public function appendText(_arg1:String, _arg2:String=""):void{ if (_arg1 == ""){ return; }; if (_arg2 == ""){ _arg2 = tag; }; _textField.htmlText = (_textField.htmlText + (((("<span class=\"" + _arg2) + "\">") + _arg1) + "</span>")); _text = (_text + _arg1); _draw(); resize(); } public function set text(_arg1:String):void{ if (_arg1 == ""){ _arg1 = _text; }; _textField.htmlText = (((("<span class=\"" + tag) + "\">") + _arg1) + "</span>"); _text = _arg1; _draw(); resize(); } override protected function layout():void{ _textField.type = TextFieldType.DYNAMIC; _textField.autoSize = TextFieldAutoSize.LEFT; _textField.background = false; _textField.selectable = selectable; _textField.multiline = true; _textField.styleSheet = Style.sheet; this.text = _text; addChild(_background); addChild(_textField); } public function set tag(_arg1:String):void{ _tag = _arg1; text = ""; } public function onLink(_arg1:TextEvent):void{ } override protected function dispose():void{ _textField.removeEventListener(TextEvent.LINK, onLink); super.dispose(); } } }//package com.google.analytics.debug
Section 220
//Layout (com.google.analytics.debug.Layout) package com.google.analytics.debug { import flash.events.*; import com.google.analytics.core.*; import flash.display.*; import flash.net.*; import com.google.analytics.*; public class Layout implements ILayout { private var _display:DisplayObject; private var _infoQueue:Array; private var _maxCharPerLine:int;// = 85 private var _hasInfo:Boolean; private var _warningQueue:Array; private var _hasDebug:Boolean; private var _hasWarning:Boolean; private var _mainPanel:Panel; private var _GRAlertQueue:Array; private var _debug:DebugConfiguration; public var visualDebug:Debug; private var _hasGRAlert:Boolean; public function Layout(_arg1:DebugConfiguration, _arg2:DisplayObject){ _display = _arg2; _debug = _arg1; _hasWarning = false; _hasInfo = false; _hasDebug = false; _hasGRAlert = false; _warningQueue = []; _infoQueue = []; _GRAlertQueue = []; } private function onKey(_arg1:KeyboardEvent=null):void{ switch (_arg1.keyCode){ case _debug.showHideKey: _mainPanel.visible = !(_mainPanel.visible); break; case _debug.destroyKey: destroy(); break; }; } public function createWarning(_arg1:String):void{ if (((_hasWarning) || (!(isAvailable())))){ _warningQueue.push(_arg1); return; }; _arg1 = _filterMaxChars(_arg1); _hasWarning = true; var _local2:Warning = new Warning(_arg1, _debug.warningTimeout); addToPanel("analytics", _local2); _local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearWarning, false, 0, true); if (_hasDebug){ visualDebug.writeBold(_arg1); }; } public function bringToFront(_arg1:DisplayObject):void{ _display.stage.setChildIndex(_arg1, (_display.stage.numChildren - 1)); } public function createFailureAlert(_arg1:String):void{ var _local2:AlertAction; if (_debug.verbose){ _arg1 = _filterMaxChars(_arg1); _local2 = new AlertAction("Close", "close", "close"); } else { _local2 = new AlertAction("X", "close", "close"); }; var _local3:Alert = new FailureAlert(_debug, _arg1, [_local2]); addToPanel("analytics", _local3); if (_hasDebug){ if (_debug.verbose){ _arg1 = _arg1.split("\n").join(""); _arg1 = _filterMaxChars(_arg1, 66); }; visualDebug.writeBold(_arg1); }; } public function init():void{ var _local1 = 10; var _local2:uint = (_display.stage.stageWidth - (_local1 * 2)); var _local3:uint = (_display.stage.stageHeight - (_local1 * 2)); var _local4:Panel = new Panel("analytics", _local2, _local3); _local4.alignement = Align.top; _local4.stickToEdge = false; _local4.title = ("Google Analytics v" + GATracker.version); _mainPanel = _local4; addToStage(_local4); bringToFront(_local4); if (_debug.minimizedOnStart){ _mainPanel.onToggle(); }; createVisualDebug(); _display.stage.addEventListener(KeyboardEvent.KEY_DOWN, onKey, false, 0, true); } public function addToPanel(_arg1:String, _arg2:DisplayObject):void{ var _local4:Panel; var _local3:DisplayObject = _display.stage.getChildByName(_arg1); if (_local3){ _local4 = (_local3 as Panel); _local4.addData(_arg2); } else { trace((("panel \"" + _arg1) + "\" not found")); }; } private function _clearInfo(_arg1:Event):void{ _hasInfo = false; if (_infoQueue.length > 0){ createInfo(_infoQueue.shift()); }; } private function _filterMaxChars(_arg1:String, _arg2:int=0):String{ var _local6:String; var _local3 = "\n"; var _local4:Array = []; var _local5:Array = _arg1.split(_local3); if (_arg2 == 0){ _arg2 = _maxCharPerLine; }; var _local7:int; while (_local7 < _local5.length) { _local6 = _local5[_local7]; while (_local6.length > _arg2) { _local4.push(_local6.substr(0, _arg2)); _local6 = _local6.substring(_arg2); }; _local4.push(_local6); _local7++; }; return (_local4.join(_local3)); } private function _clearGRAlert(_arg1:Event):void{ _hasGRAlert = false; if (_GRAlertQueue.length > 0){ createGIFRequestAlert.apply(this, _GRAlertQueue.shift()); }; } public function createSuccessAlert(_arg1:String):void{ var _local2:AlertAction; if (_debug.verbose){ _arg1 = _filterMaxChars(_arg1); _local2 = new AlertAction("Close", "close", "close"); } else { _local2 = new AlertAction("X", "close", "close"); }; var _local3:Alert = new SuccessAlert(_debug, _arg1, [_local2]); addToPanel("analytics", _local3); if (_hasDebug){ if (_debug.verbose){ _arg1 = _arg1.split("\n").join(""); _arg1 = _filterMaxChars(_arg1, 66); }; visualDebug.writeBold(_arg1); }; } public function isAvailable():Boolean{ return (!((_display.stage == null))); } public function createAlert(_arg1:String):void{ _arg1 = _filterMaxChars(_arg1); var _local2:Alert = new Alert(_arg1, [new AlertAction("Close", "close", "close")]); addToPanel("analytics", _local2); if (_hasDebug){ visualDebug.writeBold(_arg1); }; } public function createInfo(_arg1:String):void{ if (((_hasInfo) || (!(isAvailable())))){ _infoQueue.push(_arg1); return; }; _arg1 = _filterMaxChars(_arg1); _hasInfo = true; var _local2:Info = new Info(_arg1, _debug.infoTimeout); addToPanel("analytics", _local2); _local2.addEventListener(Event.REMOVED_FROM_STAGE, _clearInfo, false, 0, true); if (_hasDebug){ visualDebug.write(_arg1); }; } public function createGIFRequestAlert(_arg1:String, _arg2:URLRequest, _arg3:GIFRequest):void{ var message = _arg1; var request = _arg2; var ref = _arg3; if (_hasGRAlert){ _GRAlertQueue.push([message, request, ref]); return; }; _hasGRAlert = true; var f:Function = function ():void{ ref.sendRequest(request); }; message = _filterMaxChars(message); var gra:GIFRequestAlert = new GIFRequestAlert(message, [new AlertAction("OK", "ok", f), new AlertAction("Cancel", "cancel", "close")]); addToPanel("analytics", gra); gra.addEventListener(Event.REMOVED_FROM_STAGE, _clearGRAlert, false, 0, true); if (_hasDebug){ if (_debug.verbose){ message = message.split("\n").join(""); message = _filterMaxChars(message, 66); }; visualDebug.write(message); }; } public function createVisualDebug():void{ if (!visualDebug){ visualDebug = new Debug(); visualDebug.alignement = Align.bottom; visualDebug.stickToEdge = true; addToPanel("analytics", visualDebug); _hasDebug = true; }; } public function addToStage(_arg1:DisplayObject):void{ _display.stage.addChild(_arg1); } private function _clearWarning(_arg1:Event):void{ _hasWarning = false; if (_warningQueue.length > 0){ createWarning(_warningQueue.shift()); }; } public function createPanel(_arg1:String, _arg2:uint, _arg3:uint):void{ var _local4:Panel = new Panel(_arg1, _arg2, _arg3); _local4.alignement = Align.center; _local4.stickToEdge = false; addToStage(_local4); bringToFront(_local4); } public function destroy():void{ _mainPanel.close(); _debug.layout = null; } } }//package com.google.analytics.debug
Section 221
//Margin (com.google.analytics.debug.Margin) package com.google.analytics.debug { public class Margin { public var top:int; public var left:int; public var bottom:int; public var right:int; public function Margin(_arg1:int=0, _arg2:int=0, _arg3:int=0, _arg4:int=0){ this.top = _arg1; this.bottom = _arg2; this.left = _arg3; this.right = _arg4; } } }//package com.google.analytics.debug
Section 222
//Panel (com.google.analytics.debug.Panel) package com.google.analytics.debug { import flash.events.*; import flash.display.*; public class Panel extends UISprite { private var _savedH:uint; private var _data:UISprite; private var _mask:Sprite; private var _background:Shape; private var _savedW:uint; private var _stickToEdge:Boolean; private var _border:Shape; private var _borderColor:uint; protected var baseAlpha:Number; private var _backgroundColor:uint; private var _title:Label; private var _colapsed:Boolean; private var _name:String; public function Panel(_arg1:String, _arg2:uint, _arg3:uint, _arg4:uint=0, _arg5:uint=0, _arg6:Number=0.3, _arg7:Align=null, _arg8:Boolean=false){ _name = _arg1; this.name = _arg1; this.mouseEnabled = false; _colapsed = false; forcedWidth = _arg2; forcedHeight = _arg3; this.baseAlpha = _arg6; _background = new Shape(); _data = new UISprite(); _data.forcedWidth = _arg2; _data.forcedHeight = _arg3; _data.mouseEnabled = false; _title = new Label(_arg1, "uiLabel", 0xFFFFFF, Align.topLeft, _arg8); _title.buttonMode = true; _title.margin.top = 0.6; _title.margin.left = 0.6; _title.addEventListener(MouseEvent.CLICK, onToggle); _title.mouseChildren = false; _border = new Shape(); _mask = new Sprite(); _mask.useHandCursor = false; _mask.mouseEnabled = false; _mask.mouseChildren = false; if (_arg7 == null){ _arg7 = Align.none; }; this.alignement = _arg7; this.stickToEdge = _arg8; if (_arg4 == 0){ _arg4 = Style.backgroundColor; }; _backgroundColor = _arg4; if (_arg5 == 0){ _arg5 = Style.borderColor; }; _borderColor = _arg5; } public function get stickToEdge():Boolean{ return (_stickToEdge); } public function onToggle(_arg1:MouseEvent=null):void{ if (_colapsed){ _data.visible = true; } else { _data.visible = false; }; _colapsed = !(_colapsed); _update(); resize(); } public function set stickToEdge(_arg1:Boolean):void{ _stickToEdge = _arg1; _title.stickToEdge = _arg1; } override protected function dispose():void{ _title.removeEventListener(MouseEvent.CLICK, onToggle); super.dispose(); } private function _draw():void{ var _local1:uint; var _local2:uint; if (((_savedW) && (_savedH))){ forcedWidth = _savedW; forcedHeight = _savedH; }; if (!_colapsed){ _local1 = forcedWidth; _local2 = forcedHeight; } else { _local1 = _title.width; _local2 = _title.height; _savedW = forcedWidth; _savedH = forcedHeight; forcedWidth = _local1; forcedHeight = _local2; }; var _local3:Graphics = _background.graphics; _local3.clear(); _local3.beginFill(_backgroundColor); Background.drawRounded(this, _local3, _local1, _local2); _local3.endFill(); var _local4:Graphics = _data.graphics; _local4.clear(); _local4.beginFill(_backgroundColor, 0); Background.drawRounded(this, _local4, _local1, _local2); _local4.endFill(); var _local5:Graphics = _border.graphics; _local5.clear(); _local5.lineStyle(0.1, _borderColor); Background.drawRounded(this, _local5, _local1, _local2); _local5.endFill(); var _local6:Graphics = _mask.graphics; _local6.clear(); _local6.beginFill(_backgroundColor); Background.drawRounded(this, _local6, (_local1 + 1), (_local2 + 1)); _local6.endFill(); } public function get title():String{ return (_title.text); } private function _update():void{ _draw(); if (baseAlpha < 1){ _background.alpha = baseAlpha; _border.alpha = baseAlpha; }; } public function addData(_arg1:DisplayObject):void{ _data.addChild(_arg1); } override protected function layout():void{ _update(); addChild(_background); addChild(_data); addChild(_title); addChild(_border); addChild(_mask); mask = _mask; } public function set title(_arg1:String):void{ _title.text = _arg1; } public function close():void{ dispose(); if (parent != null){ parent.removeChild(this); }; } } }//package com.google.analytics.debug
Section 223
//Style (com.google.analytics.debug.Style) package com.google.analytics.debug { public const Style:_Style = new _Style(); }//package com.google.analytics.debug
Section 224
//SuccessAlert (com.google.analytics.debug.SuccessAlert) package com.google.analytics.debug { public class SuccessAlert extends Alert { public function SuccessAlert(_arg1:DebugConfiguration, _arg2:String, _arg3:Array){ var _local4:Align = Align.bottomLeft; var _local5:Boolean; var _local6:Boolean; if (_arg1.verbose){ _arg2 = ((("<u><span class=\"uiAlertTitle\">Success</span>" + spaces(18)) + "</u>\n\n") + _arg2); _local4 = Align.center; _local5 = false; _local6 = true; }; super(_arg2, _arg3, "uiSuccess", Style.successColor, _local4, _local5, _local6); } } }//package com.google.analytics.debug
Section 225
//UISprite (com.google.analytics.debug.UISprite) package com.google.analytics.debug { import flash.events.*; import flash.display.*; public class UISprite extends Sprite { private var _forcedWidth:uint; public var margin:Margin; protected var alignTarget:DisplayObject; protected var listenResize:Boolean; public var alignement:Align; private var _forcedHeight:uint; public function UISprite(_arg1:DisplayObject=null){ listenResize = false; alignement = Align.none; this.alignTarget = _arg1; margin = new Margin(); addEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); addEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage); } public function get forcedHeight():uint{ if (_forcedHeight){ return (_forcedHeight); }; return (height); } private function _onAddedToStage(_arg1:Event):void{ layout(); resize(); } protected function dispose():void{ var _local1:DisplayObject; var _local2:int; while (_local2 < numChildren) { _local1 = getChildAt(_local2); if (_local1){ removeChild(_local1); }; _local2++; }; } public function set forcedHeight(_arg1:uint):void{ _forcedHeight = _arg1; } public function set forcedWidth(_arg1:uint):void{ _forcedWidth = _arg1; } protected function layout():void{ } public function get forcedWidth():uint{ if (_forcedWidth){ return (_forcedWidth); }; return (width); } public function alignTo(_arg1:Align, _arg2:DisplayObject=null):void{ var _local3:uint; var _local4:uint; var _local5:uint; var _local6:uint; var _local7:UISprite; if (_arg2 == null){ if ((parent is Stage)){ _arg2 = this.stage; } else { _arg2 = parent; }; }; if (_arg2 == this.stage){ if (this.stage == null){ return; }; _local3 = this.stage.stageHeight; _local4 = this.stage.stageWidth; _local5 = 0; _local6 = 0; } else { _local7 = (_arg2 as UISprite); if (_local7.forcedHeight){ _local3 = _local7.forcedHeight; } else { _local3 = _local7.height; }; if (_local7.forcedWidth){ _local4 = _local7.forcedWidth; } else { _local4 = _local7.width; }; _local5 = 0; _local6 = 0; }; switch (_arg1){ case Align.top: x = ((_local4 / 2) - (forcedWidth / 2)); y = (_local6 + margin.top); break; case Align.bottom: x = ((_local4 / 2) - (forcedWidth / 2)); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; case Align.left: x = (_local5 + margin.left); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.right: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.center: x = ((_local4 / 2) - (forcedWidth / 2)); y = ((_local3 / 2) - (forcedHeight / 2)); break; case Align.topLeft: x = (_local5 + margin.left); y = (_local6 + margin.top); break; case Align.topRight: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = (_local6 + margin.top); break; case Align.bottomLeft: x = (_local5 + margin.left); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; case Align.bottomRight: x = (((_local5 + _local4) - forcedWidth) - margin.right); y = (((_local6 + _local3) - forcedHeight) - margin.bottom); break; }; if (((!(listenResize)) && (!((_arg1 == Align.none))))){ _arg2.addEventListener(Event.RESIZE, onResize, false, 0, true); listenResize = true; }; this.alignement = _arg1; this.alignTarget = _arg2; } private function _onRemovedFromStage(_arg1:Event):void{ removeEventListener(Event.ADDED_TO_STAGE, _onAddedToStage); removeEventListener(Event.REMOVED_FROM_STAGE, _onRemovedFromStage); dispose(); } public function resize():void{ if (alignement != Align.none){ alignTo(alignement, alignTarget); }; } protected function onResize(_arg1:Event):void{ resize(); } } }//package com.google.analytics.debug
Section 226
//Warning (com.google.analytics.debug.Warning) package com.google.analytics.debug { import flash.events.*; import flash.utils.*; public class Warning extends Label { private var _timer:Timer; public function Warning(_arg1:String="", _arg2:uint=3000){ super(_arg1, "uiWarning", Style.warningColor, Align.top, false); margin.top = 32; if (_arg2 > 0){ _timer = new Timer(_arg2, 1); _timer.start(); _timer.addEventListener(TimerEvent.TIMER_COMPLETE, onComplete, false, 0, true); }; } public function close():void{ if (parent != null){ parent.removeChild(this); }; } override public function onLink(_arg1:TextEvent):void{ switch (_arg1.text){ case "hide": close(); break; }; } public function onComplete(_arg1:TimerEvent):void{ close(); } } }//package com.google.analytics.debug
Section 227
//VisualDebugMode (com.google.analytics.debug.VisualDebugMode) package com.google.analytics.debug { public class VisualDebugMode { private var _value:int; private var _name:String; public static const advanced:VisualDebugMode = new VisualDebugMode(1, "advanced"); ; public static const geek:VisualDebugMode = new VisualDebugMode(2, "geek"); ; public static const basic:VisualDebugMode = new VisualDebugMode(0, "basic"); ; public function VisualDebugMode(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.debug
Section 228
//Item (com.google.analytics.ecommerce.Item) package com.google.analytics.ecommerce { import com.google.analytics.utils.*; public class Item { private var _price:String; private var _id:String; private var _sku:String; private var _category:String; private var _quantity:String; private var _name:String; public function Item(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String){ this._id = _arg1; this._sku = _arg2; this._name = _arg3; this._category = _arg4; this._price = _arg5; this._quantity = _arg6; } public function set sku(_arg1:String):void{ _sku = _arg1; } public function get price():String{ return (_price); } public function get name():String{ return (_name); } public function get quantity():String{ return (_quantity); } public function set name(_arg1:String):void{ _name = _arg1; } public function set price(_arg1:String):void{ _price = _arg1; } public function get id():String{ return (_id); } public function get sku():String{ return (_sku); } public function set quantity(_arg1:String):void{ _quantity = _arg1; } public function toGifParams():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.post = ["utmt", "utmtid", "utmipc", "utmipn", "utmiva", "utmipr", "utmiqt"]; _local1.utmt = "item"; _local1.utmtid = _id; _local1.utmipc = _sku; _local1.utmipn = _name; _local1.utmiva = _category; _local1.utmipr = _price; _local1.utmiqt = _quantity; return (_local1); } public function set id(_arg1:String):void{ _id = _arg1; } public function set category(_arg1:String):void{ _category = _arg1; } public function get category():String{ return (_category); } } }//package com.google.analytics.ecommerce
Section 229
//Transaction (com.google.analytics.ecommerce.Transaction) package com.google.analytics.ecommerce { import com.google.analytics.utils.*; public class Transaction { private var _items:Array; private var _total:String; private var _vars:Variables; private var _shipping:String; private var _city:String; private var _state:String; private var _country:String; private var _tax:String; private var _affiliation:String; private var _id:String; public function Transaction(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String, _arg6:String, _arg7:String, _arg8:String){ this._id = _arg1; this._affiliation = _arg2; this._total = _arg3; this._tax = _arg4; this._shipping = _arg5; this._city = _arg6; this._state = _arg7; this._country = _arg8; _items = new Array(); } public function get total():String{ return (_total); } public function getItemFromArray(_arg1:Number):Item{ return (_items[_arg1]); } public function set total(_arg1:String):void{ _total = _arg1; } public function getItem(_arg1:String):Item{ var _local2:Number; _local2 = 0; while (_local2 < _items.length) { if (_items[_local2].sku == _arg1){ return (_items[_local2]); }; _local2++; }; return (null); } public function getItemsLength():Number{ return (_items.length); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:String):void{ var _local6:Item; _local6 = getItem(_arg1); if (_local6 == null){ _local6 = new Item(_id, _arg1, _arg2, _arg3, _arg4, _arg5); _items.push(_local6); } else { _local6.name = _arg2; _local6.category = _arg3; _local6.price = _arg4; _local6.quantity = _arg5; }; } public function set shipping(_arg1:String):void{ _shipping = _arg1; } public function get country():String{ return (_country); } public function get state():String{ return (_state); } public function set tax(_arg1:String):void{ _tax = _arg1; } public function set affiliation(_arg1:String):void{ _affiliation = _arg1; } public function set state(_arg1:String):void{ _state = _arg1; } public function get id():String{ return (_id); } public function get tax():String{ return (_tax); } public function toGifParams():Variables{ var _local1:Variables = new Variables(); _local1.URIencode = true; _local1.utmt = "tran"; _local1.utmtid = id; _local1.utmtst = affiliation; _local1.utmtto = total; _local1.utmttx = tax; _local1.utmtsp = shipping; _local1.utmtci = city; _local1.utmtrg = state; _local1.utmtco = country; _local1.post = ["utmtid", "utmtst", "utmtto", "utmttx", "utmtsp", "utmtci", "utmtrg", "utmtco"]; return (_local1); } public function get affiliation():String{ return (_affiliation); } public function get city():String{ return (_city); } public function get shipping():String{ return (_shipping); } public function set id(_arg1:String):void{ _id = _arg1; } public function set city(_arg1:String):void{ _city = _arg1; } public function set country(_arg1:String):void{ _country = _arg1; } } }//package com.google.analytics.ecommerce
Section 230
//AnalyticsEvent (com.google.analytics.events.AnalyticsEvent) package com.google.analytics.events { import flash.events.*; import com.google.analytics.*; public class AnalyticsEvent extends Event { public var tracker:AnalyticsTracker; public static const READY:String = "ready"; public function AnalyticsEvent(_arg1:String, _arg2:AnalyticsTracker, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.tracker = _arg2; } override public function clone():Event{ return (new AnalyticsEvent(type, tracker, bubbles, cancelable)); } } }//package com.google.analytics.events
Section 231
//AdSenseGlobals (com.google.analytics.external.AdSenseGlobals) package com.google.analytics.external { import com.google.analytics.debug.*; public class AdSenseGlobals extends JavascriptProxy { private var _gaGlobalVerified:Boolean;// = false public static var gaGlobal_js:XML = <script> <![CDATA[ function() { try { gaGlobal } catch(e) { gaGlobal = {} ; } } ]]> </script> ; public function AdSenseGlobals(_arg1:DebugConfiguration){ super(_arg1); } public function set vid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.vid", _arg1); } public function get hid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.hid")); } public function set hid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.hid", _arg1); } public function get dh():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.dh")); } public function get sid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.sid")); } public function get vid():String{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal.vid")); } private function _verify():void{ if (!_gaGlobalVerified){ executeBlock(gaGlobal_js); _gaGlobalVerified = true; }; } public function set sid(_arg1:String):void{ if (!isAvailable()){ return; }; _verify(); setProperty("gaGlobal.sid", _arg1); } public function get gaGlobal():Object{ if (!isAvailable()){ return (null); }; _verify(); return (getProperty("gaGlobal")); } } }//package com.google.analytics.external
Section 232
//HTMLDOM (com.google.analytics.external.HTMLDOM) package com.google.analytics.external { import com.google.analytics.debug.*; public class HTMLDOM extends JavascriptProxy { private var _referrer:String; private var _language:String; private var _host:String; private var _pathname:String; private var _location:String; private var _search:String; private var _characterSet:String; private var _title:String; private var _protocol:String; private var _colorDepth:String; public static var cache_properties_js:XML = <script> <![CDATA[ function() { var obj = {}; obj.host = document.location.host; obj.language = navigator.language ? navigator.language : navigator.browserLanguage; obj.characterSet = document.characterSet ? document.characterSet : document.charset; obj.colorDepth = window.screen.colorDepth; obj.location = document.location.toString(); obj.pathname = document.location.pathname; obj.protocol = document.location.protocol; obj.search = document.location.search; obj.referrer = document.referrer; obj.title = document.title; return obj; } ]]> </script> ; public function HTMLDOM(_arg1:DebugConfiguration){ super(_arg1); } public function get search():String{ if (_search){ return (_search); }; if (!isAvailable()){ return (null); }; _search = getProperty("document.location.search"); return (_search); } public function get location():String{ if (_location){ return (_location); }; if (!isAvailable()){ return (null); }; _location = getPropertyString("document.location"); return (_location); } public function get pathname():String{ if (_pathname){ return (_pathname); }; if (!isAvailable()){ return (null); }; _pathname = getProperty("document.location.pathname"); return (_pathname); } public function cacheProperties():void{ if (!isAvailable()){ return; }; var _local1:Object = call(cache_properties_js); if (_local1){ _host = _local1.host; _language = _local1.language; _characterSet = _local1.characterSet; _colorDepth = _local1.colorDepth; _location = _local1.location; _pathname = _local1.pathname; _protocol = _local1.protocol; _search = _local1.search; _referrer = _local1.referrer; _title = _local1.title; }; } public function get language():String{ if (_language){ return (_language); }; if (!isAvailable()){ return (null); }; var _local1:String = getProperty("navigator.language"); if (_local1 == null){ _local1 = getProperty("navigator.browserLanguage"); }; _language = _local1; return (_language); } public function get colorDepth():String{ if (_colorDepth){ return (_colorDepth); }; if (!isAvailable()){ return (null); }; _colorDepth = getProperty("window.screen.colorDepth"); return (_colorDepth); } public function get referrer():String{ if (_referrer){ return (_referrer); }; if (!isAvailable()){ return (null); }; _referrer = getProperty("document.referrer"); return (_referrer); } public function get protocol():String{ if (_protocol){ return (_protocol); }; if (!isAvailable()){ return (null); }; _protocol = getProperty("document.location.protocol"); return (_protocol); } public function get host():String{ if (_host){ return (_host); }; if (!isAvailable()){ return (null); }; _host = getProperty("document.location.host"); return (_host); } public function get characterSet():String{ if (_characterSet){ return (_characterSet); }; if (!isAvailable()){ return (null); }; var _local1:String = getProperty("document.characterSet"); if (_local1 == null){ _local1 = getProperty("document.charset"); }; _characterSet = _local1; return (_characterSet); } public function get title():String{ if (_title){ return (_title); }; if (!isAvailable()){ return (null); }; _title = getProperty("document.title"); return (_title); } } }//package com.google.analytics.external
Section 233
//JavascriptProxy (com.google.analytics.external.JavascriptProxy) package com.google.analytics.external { import com.google.analytics.debug.*; import flash.system.*; import flash.external.*; public class JavascriptProxy { private var _notAvailableWarning:Boolean;// = true private var _debug:DebugConfiguration; public static var setProperty_js:XML = <script> <![CDATA[ function( path , value ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } target[ prop ] = value ; } ]]> </script> ; public static var hasProperty_js:XML = <script> <![CDATA[ function( path ) { var paths; if( path.indexOf(".") > 0 ) { paths = path.split("."); } else { paths = [path]; } var target = window ; var len = paths.length ; for( var i = 0 ; i < len ; i++ ) { target = target[ paths[i] ] ; } if( target ) { return true; } else { return false; } } ]]> </script> ; public static var setPropertyRef_js:XML = <script> <![CDATA[ function( path , target ) { var paths; var prop; if( path.indexOf(".") > 0 ) { paths = path.split("."); prop = paths.pop() ; } else { paths = []; prop = path; } alert( "paths:"+paths.length+", prop:"+prop ); var targets; var name; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } alert( "targets:"+targets.length+", name:"+name ); var root = window; var len = paths.length; for( var i = 0 ; i < len ; i++ ) { root = root[ paths[i] ] ; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } root[ prop ] = ref[name] ; } ]]> </script> ; public function JavascriptProxy(_arg1:DebugConfiguration){ _debug = _arg1; } public function getProperty(_arg1:String){ return (call((_arg1 + ".valueOf"))); } public function hasProperty(_arg1:String):Boolean{ return (call(hasProperty_js, _arg1)); } public function setProperty(_arg1:String, _arg2):void{ call(setProperty_js, _arg1, _arg2); } public function executeBlock(_arg1:String):void{ var data = _arg1; if (isAvailable()){ try { ExternalInterface.call(data); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; } public function getPropertyString(_arg1:String):String{ return (call((_arg1 + ".toString"))); } public function setPropertyByReference(_arg1:String, _arg2:String):void{ call(setPropertyRef_js, _arg1, _arg2); } public function call(_arg1:String, ... _args){ var output:String; var functionName = _arg1; var args = _args; if (isAvailable()){ try { if (((_debug.javascript) && (_debug.verbose))){ output = ""; output = ("Flash->JS: " + functionName); output = (output + "( "); if (args.length > 0){ output = (output + args.join(",")); }; output = (output + " )"); _debug.info(output); }; args.unshift(functionName); return (ExternalInterface.call.apply(ExternalInterface, args)); } catch(e:SecurityError) { if (_debug.javascript){ _debug.warning("ExternalInterface is not allowed.\nEnsure that allowScriptAccess is set to \"always\" in the Flash embed HTML."); }; } catch(e:Error) { if (_debug.javascript){ _debug.warning(("ExternalInterface failed to make the call\nreason: " + e.message)); }; }; }; return (null); } public function isAvailable():Boolean{ var _local1:Boolean = ExternalInterface.available; if (((_local1) && ((Capabilities.playerType == "External")))){ _local1 = false; }; if (((((!(_local1)) && (_debug.javascript))) && (_notAvailableWarning))){ _debug.warning("ExternalInterface is not available."); _notAvailableWarning = false; }; return (_local1); } } }//package com.google.analytics.external
Section 234
//Environment (com.google.analytics.utils.Environment) package com.google.analytics.utils { import com.google.analytics.debug.*; import com.google.analytics.external.*; import flash.system.*; public class Environment { private var _dom:HTMLDOM; private var _appName:String; private var _debug:DebugConfiguration; private var _appVersion:Version; private var _url:String; private var _protocol:Protocols; private var _userAgent:UserAgent; public function Environment(_arg1:String="", _arg2:String="", _arg3:String="", _arg4:DebugConfiguration=null, _arg5:HTMLDOM=null){ var _local6:Version; super(); if (_arg2 == ""){ if (isAIR()){ _arg2 = "AIR"; } else { _arg2 = "Flash"; }; }; if (_arg3 == ""){ _local6 = flashVersion; } else { _local6 = Version.fromString(_arg3); }; _url = _arg1; _appName = _arg2; _appVersion = _local6; _debug = _arg4; _dom = _arg5; } public function isAIR():Boolean{ return ((((playerType == "Desktop")) && ((Security.sandboxType.toString() == "application")))); } public function get screenWidth():Number{ return (Capabilities.screenResolutionX); } public function get playerType():String{ return (Capabilities.playerType); } public function get locationSearch():String{ var _local1:String = _dom.search; if (_local1){ return (_local1); }; return (""); } public function get protocol():Protocols{ if (!_protocol){ _findProtocol(); }; return (_protocol); } public function get flashVersion():Version{ var _local1:Version = Version.fromString(Capabilities.version.split(" ")[1], ","); return (_local1); } public function get userAgent():UserAgent{ if (!_userAgent){ _userAgent = new UserAgent(this, appName, appVersion.toString(4)); }; return (_userAgent); } public function get languageEncoding():String{ var _local1:String; if (System.useCodePage){ _local1 = _dom.characterSet; if (_local1){ return (_local1); }; return ("-"); }; return ("UTF-8"); } public function get appName():String{ return (_appName); } public function get screenColorDepth():String{ var _local1:String; switch (Capabilities.screenColor){ case "bw": _local1 = "1"; break; case "gray": _local1 = "2"; break; case "color": default: _local1 = "24"; }; var _local2:String = _dom.colorDepth; if (_local2){ _local1 = _local2; }; return (_local1); } private function _findProtocol():void{ var _local4:String; var _local5:String; var _local1:Protocols = Protocols.none; if (_url != ""){ _local4 = _url.toLowerCase(); _local5 = _local4.substr(0, 5); switch (_local5){ case "file:": _local1 = Protocols.file; break; case "http:": _local1 = Protocols.HTTP; break; case "https": if (_local4.charAt(5) == ":"){ _local1 = Protocols.HTTPS; }; break; default: _protocol = Protocols.none; }; }; var _local2:String = _dom.protocol; var _local3:String = (_local1.toString() + ":").toLowerCase(); if (((((_local2) && (!((_local2 == _local3))))) && (_debug))){ _debug.warning(((("Protocol mismatch: SWF=" + _local3) + ", DOM=") + _local2)); }; _protocol = _local1; } public function get locationSWFPath():String{ return (_url); } public function get platform():String{ var _local1:String = Capabilities.manufacturer; return (_local1.split("Adobe ")[1]); } public function get operatingSystem():String{ return (Capabilities.os); } public function set appName(_arg1:String):void{ _appName = _arg1; userAgent.applicationProduct = _arg1; } function set url(_arg1:String):void{ _url = _arg1; } public function get referrer():String{ var _local1:String = _dom.referrer; if (_local1){ return (_local1); }; if (protocol == Protocols.file){ return ("localhost"); }; return (""); } public function isInHTML():Boolean{ return ((Capabilities.playerType == "PlugIn")); } public function get language():String{ var _local1:String = _dom.language; var _local2:String = Capabilities.language; if (_local1){ if ((((_local1.length > _local2.length)) && ((_local1.substr(0, _local2.length) == _local2)))){ _local2 = _local1; }; }; return (_local2); } public function get domainName():String{ var _local1:String; var _local2:String; var _local3:int; if ((((protocol == Protocols.HTTP)) || ((protocol == Protocols.HTTPS)))){ _local1 = _url.toLowerCase(); if (protocol == Protocols.HTTP){ _local2 = _local1.split("http://").join(""); } else { if (protocol == Protocols.HTTPS){ _local2 = _local1.split("https://").join(""); }; }; _local3 = _local2.indexOf("/"); if (_local3 > -1){ _local2 = _local2.substring(0, _local3); }; return (_local2); }; if (protocol == Protocols.file){ return ("localhost"); }; return (""); } public function set userAgent(_arg1:UserAgent):void{ _userAgent = _arg1; } public function set appVersion(_arg1:Version):void{ _appVersion = _arg1; userAgent.applicationVersion = _arg1.toString(4); } public function get screenHeight():Number{ return (Capabilities.screenResolutionY); } public function get locationPath():String{ var _local1:String = _dom.pathname; if (_local1){ return (_local1); }; return (""); } public function get documentTitle():String{ var _local1:String = _dom.title; if (_local1){ return (_local1); }; return (""); } public function get appVersion():Version{ return (_appVersion); } } }//package com.google.analytics.utils
Section 235
//Protocols (com.google.analytics.utils.Protocols) package com.google.analytics.utils { public class Protocols { private var _value:int; private var _name:String; public static const none:Protocols = new Protocols(0, "none"); ; public static const HTTPS:Protocols = new Protocols(3, "HTTPS"); ; public static const file:Protocols = new Protocols(1, "file"); ; public static const HTTP:Protocols = new Protocols(2, "HTTP"); ; public function Protocols(_arg1:int=0, _arg2:String=""){ _value = _arg1; _name = _arg2; } public function valueOf():int{ return (_value); } public function toString():String{ return (_name); } } }//package com.google.analytics.utils
Section 236
//Timespan (com.google.analytics.utils.Timespan) package com.google.analytics.utils { public class Timespan { public static var sixmonths:Number = 15768000; public static var twoyears:Number = 63072000; public static var thirtyminutes:Number = 1800; } }//package com.google.analytics.utils
Section 237
//URL (com.google.analytics.utils.URL) package com.google.analytics.utils { public class URL { private var _url:String; public function URL(_arg1:String=""){ _url = _arg1.toLowerCase(); } public function get domain():String{ var _local1:Array; if (((!((hostName == ""))) && ((hostName.indexOf(".") > -1)))){ _local1 = hostName.split("."); switch (_local1.length){ case 2: return (hostName); case 3: if (_local1[1] == "co"){ return (hostName); }; _local1.shift(); return (_local1.join(".")); case 4: _local1.shift(); return (_local1.join(".")); }; }; return (""); } public function get path():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf(hostName) == 0){ _local1 = _local1.substr(hostName.length); }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[0]; }; if (_local1.charAt(0) != "/"){ _local1 = ("/" + _local1); }; return (_local1); } public function get protocol():Protocols{ var _local1:String = _url.split("://")[0]; switch (_local1){ case "file": return (Protocols.file); case "http": return (Protocols.HTTP); case "https": return (Protocols.HTTPS); default: return (Protocols.none); }; } public function get hostName():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf("/") > -1){ _local1 = _local1.split("/")[0]; }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[0]; }; if ((((protocol == Protocols.file)) || ((protocol == Protocols.none)))){ return (""); }; return (_local1); } public function get subDomain():String{ if (((!((domain == ""))) && (!((domain == hostName))))){ return (hostName.split(("." + domain)).join("")); }; return (""); } public function get search():String{ var _local1:String = _url; if (_local1.indexOf("://") > -1){ _local1 = _local1.split("://")[1]; }; if (_local1.indexOf(hostName) == 0){ _local1 = _local1.substr(hostName.length); }; if (_local1.indexOf("?") > -1){ _local1 = _local1.split("?")[1]; } else { _local1 = ""; }; return (_local1); } } }//package com.google.analytics.utils
Section 238
//UserAgent (com.google.analytics.utils.UserAgent) package com.google.analytics.utils { import com.google.analytics.core.*; import flash.system.*; public class UserAgent { private var _localInfo:Environment; private var _applicationProduct:String; private var _version:Version; public static var minimal:Boolean = false; public function UserAgent(_arg1:Environment, _arg2:String="", _arg3:String=""){ _localInfo = _arg1; applicationProduct = _arg2; _version = Version.fromString(_arg3); } public function get tamarinProductToken():String{ if (UserAgent.minimal){ return (""); }; if (System.vmVersion){ return (("Tamarin/" + Utils.trim(System.vmVersion, true))); }; return (""); } public function get applicationVersion():String{ return (_version.toString(2)); } public function get vendorProductToken():String{ var _local1 = ""; if (_localInfo.isAIR()){ _local1 = (_local1 + "AIR"); } else { _local1 = (_local1 + "FlashPlayer"); }; _local1 = (_local1 + "/"); _local1 = (_local1 + _version.toString(3)); return (_local1); } public function toString():String{ var _local1 = ""; _local1 = (_local1 + applicationProductToken); if (applicationComment != ""){ _local1 = (_local1 + (" " + applicationComment)); }; if (tamarinProductToken != ""){ _local1 = (_local1 + (" " + tamarinProductToken)); }; if (vendorProductToken != ""){ _local1 = (_local1 + (" " + vendorProductToken)); }; return (_local1); } public function get applicationComment():String{ var _local1:Array = []; _local1.push(_localInfo.platform); _local1.push(_localInfo.playerType); if (!UserAgent.minimal){ _local1.push(_localInfo.operatingSystem); _local1.push(_localInfo.language); }; if (Capabilities.isDebugger){ _local1.push("DEBUG"); }; if (_local1.length > 0){ return ((("(" + _local1.join("; ")) + ")")); }; return (""); } public function set applicationVersion(_arg1:String):void{ _version = Version.fromString(_arg1); } public function get applicationProductToken():String{ var _local1:String = applicationProduct; if (applicationVersion != ""){ _local1 = (_local1 + ("/" + applicationVersion)); }; return (_local1); } public function set applicationProduct(_arg1:String):void{ _applicationProduct = _arg1; } public function get applicationProduct():String{ return (_applicationProduct); } } }//package com.google.analytics.utils
Section 239
//Variables (com.google.analytics.utils.Variables) package com.google.analytics.utils { import flash.net.*; public dynamic class Variables { public var post:Array; public var URIencode:Boolean; public var pre:Array; public var sort:Boolean;// = true public function Variables(_arg1:String=null, _arg2:Array=null, _arg3:Array=null){ pre = []; post = []; super(); if (_arg1){ decode(_arg1); }; if (_arg2){ this.pre = _arg2; }; if (_arg3){ this.post = _arg3; }; } private function _join(_arg1:Variables):void{ var _local2:String; if (!_arg1){ return; }; for (_local2 in _arg1) { this[_local2] = _arg1[_local2]; }; } public function join(... _args):void{ var _local2:int = _args.length; var _local3:int; while (_local3 < _local2) { if (!(_args[_local3] is Variables)){ } else { _join(_args[_local3]); }; _local3++; }; } public function toString():String{ var _local2:String; var _local3:String; var _local4:String; var _local5:int; var _local6:int; var _local7:String; var _local8:String; var _local1:Array = []; for (_local3 in this) { _local2 = this[_local3]; if (URIencode){ _local2 = encodeURI(_local2); }; _local1.push(((_local3 + "=") + _local2)); }; if (sort){ _local1.sort(); }; if (pre.length > 0){ pre.reverse(); _local5 = 0; while (_local5 < pre.length) { _local7 = pre[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local7) == 0){ _local1.unshift(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; pre.reverse(); }; if (post.length > 0){ _local5 = 0; while (_local5 < post.length) { _local8 = post[_local5]; _local6 = 0; while (_local6 < _local1.length) { _local4 = _local1[_local6]; if (_local4.indexOf(_local8) == 0){ _local1.push(_local1.splice(_local6, 1)[0]); }; _local6++; }; _local5++; }; }; return (_local1.join("&")); } public function decode(_arg1:String):void{ var _local2:Array; var _local3:String; var _local4:String; var _local5:String; var _local6:Array; if (_arg1 == ""){ return; }; if (_arg1.charAt(0) == "?"){ _arg1 = _arg1.substr(1, _arg1.length); }; if (_arg1.indexOf("&") > -1){ _local2 = _arg1.split("&"); } else { _local2 = [_arg1]; }; var _local7:int; while (_local7 < _local2.length) { _local3 = _local2[_local7]; if (_local3.indexOf("=") > -1){ _local6 = _local3.split("="); _local4 = _local6[0]; _local5 = decodeURI(_local6[1]); this[_local4] = _local5; }; _local7++; }; } public function toURLVariables():URLVariables{ var _local2:String; var _local1:URLVariables = new URLVariables(); for (_local2 in this) { _local1[_local2] = this[_local2]; }; return (_local1); } } }//package com.google.analytics.utils
Section 240
//Version (com.google.analytics.utils.Version) package com.google.analytics.utils { public class Version { private var _revision:uint; private var _maxBuild:uint;// = 0xFF private var _maxMinor:uint;// = 15 private var _maxMajor:uint;// = 15 private var _separator:String;// = "." private var _maxRevision:uint;// = 0xFFFF private var _build:uint; private var _major:uint; private var _minor:uint; public function Version(_arg1:uint=0, _arg2:uint=0, _arg3:uint=0, _arg4:uint=0){ var _local5:Version; super(); if ((((((((_arg1 > _maxMajor)) && ((_arg2 == 0)))) && ((_arg3 == 0)))) && ((_arg4 == 0)))){ _local5 = Version.fromNumber(_arg1); _arg1 = _local5.major; _arg2 = _local5.minor; _arg3 = _local5.build; _arg4 = _local5.revision; }; this.major = _arg1; this.minor = _arg2; this.build = _arg3; this.revision = _arg4; } public function toString(_arg1:int=0):String{ var _local2:Array; if ((((_arg1 <= 0)) || ((_arg1 > 4)))){ _arg1 = getFields(); }; switch (_arg1){ case 1: _local2 = [major]; break; case 2: _local2 = [major, minor]; break; case 3: _local2 = [major, minor, build]; break; case 4: default: _local2 = [major, minor, build, revision]; }; return (_local2.join(_separator)); } public function set revision(_arg1:uint):void{ _revision = Math.min(_arg1, _maxRevision); } public function get revision():uint{ return (_revision); } public function set build(_arg1:uint):void{ _build = Math.min(_arg1, _maxBuild); } public function set minor(_arg1:uint):void{ _minor = Math.min(_arg1, _maxMinor); } public function get build():uint{ return (_build); } public function set major(_arg1:uint):void{ _major = Math.min(_arg1, _maxMajor); } public function get minor():uint{ return (_minor); } private function getFields():int{ var _local1 = 4; if (revision == 0){ _local1--; }; if ((((_local1 == 3)) && ((build == 0)))){ _local1--; }; if ((((_local1 == 2)) && ((minor == 0)))){ _local1--; }; return (_local1); } public function valueOf():uint{ return (((((major << 28) | (minor << 24)) | (build << 16)) | revision)); } public function get major():uint{ return (_major); } public function equals(_arg1):Boolean{ if (!(_arg1 is Version)){ return (false); }; if ((((((((_arg1.major == major)) && ((_arg1.minor == minor)))) && ((_arg1.build == build)))) && ((_arg1.revision == revision)))){ return (true); }; return (false); } public static function fromString(_arg1:String="", _arg2:String="."):Version{ var _local4:Array; var _local3:Version = new (Version); if ((((_arg1 == "")) || ((_arg1 == null)))){ return (_local3); }; if (_arg1.indexOf(_arg2) > -1){ _local4 = _arg1.split(_arg2); _local3.major = parseInt(_local4[0]); _local3.minor = parseInt(_local4[1]); _local3.build = parseInt(_local4[2]); _local3.revision = parseInt(_local4[3]); } else { _local3.major = parseInt(_arg1); }; return (_local3); } public static function fromNumber(_arg1:Number=0):Version{ var _local2:Version = new (Version); if (((((((((((isNaN(_arg1)) || ((_arg1 == 0)))) || ((_arg1 < 0)))) || ((_arg1 == Number.MAX_VALUE)))) || ((_arg1 == Number.POSITIVE_INFINITY)))) || ((_arg1 == Number.NEGATIVE_INFINITY)))){ return (_local2); }; _local2.major = (_arg1 >>> 28); _local2.minor = ((_arg1 & 251658240) >>> 24); _local2.build = ((_arg1 & 0xFF0000) >>> 16); _local2.revision = (_arg1 & 0xFFFF); return (_local2); } } }//package com.google.analytics.utils
Section 241
//Bridge (com.google.analytics.v4.Bridge) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.external.*; public class Bridge implements GoogleAnalyticsAPI { private var _debug:DebugConfiguration; private var _proxy:JavascriptProxy; private var _jsContainer:String;// = "_GATracker" private var _hasGATracker:Boolean;// = false private var _account:String; private static var _linkTrackingObject_js:XML = <script> <![CDATA[ function( container , target ) { var targets ; var name ; if( target.indexOf(".") > 0 ) { targets = target.split("."); name = targets.pop(); } else { targets = []; name = target; } var ref = window; var depth = targets.length; for( var j = 0 ; j < depth ; j++ ) { ref = ref[ targets[j] ] ; } window[container][target] = ref[name] ; } ]]> </script> ; private static var _createTrackingObject_js:XML = <script> <![CDATA[ function( acct ) { _GATracker[acct] = _gat._getTracker(acct); } ]]> </script> ; private static var _injectTrackingObject_js:XML = <script> <![CDATA[ function() { try { _GATracker } catch(e) { _GATracker = {}; } } ]]> </script> ; private static var _checkGAJS_js:XML = <script> <![CDATA[ function() { if( _gat && _gat._getTracker ) { return true; } return false; } ]]> </script> ; private static var _checkValidTrackingObject_js:XML = <script> <![CDATA[ function(acct) { if( _GATracker[acct] && (_GATracker[acct]._getAccount) ) { return true ; } else { return false; } } ]]> </script> ; public function Bridge(_arg1:String, _arg2:DebugConfiguration, _arg3:JavascriptProxy){ var _local4:String; var _local5:String; var _local6:String; super(); _account = _arg1; _debug = _arg2; _proxy = _arg3; if (!_checkGAJS()){ _local4 = ""; _local4 = (_local4 + "ga.js not found, be sure to check if\n"); _local4 = (_local4 + "<script src=\"http://www.google-analytics.com/ga.js\"></script>\n"); _local4 = (_local4 + "is included in the HTML."); _debug.warning(_local4); throw (new Error(_local4)); }; if (!_hasGATracker){ if (((_debug.javascript) && (_debug.verbose))){ _local5 = ""; _local5 = (_local5 + "The Google Analytics tracking code was not found on the container page\n"); _local5 = (_local5 + "we create it"); _debug.info(_local5, VisualDebugMode.advanced); }; _injectTrackingObject(); }; if (Utils.validateAccount(_arg1)){ _createTrackingObject(_arg1); } else { if (_checkTrackingObject(_arg1)){ _linkTrackingObject(_arg1); } else { _local6 = ""; _local6 = (_local6 + (("JS Object \"" + _arg1) + "\" doesn't exist in DOM\n")); _local6 = (_local6 + "Bridge object not created."); _debug.warning(_local6); throw (new Error(_local6)); }; }; } public function link(_arg1:String, _arg2:Boolean=false):void{ _debug.info((((("link( " + _arg1) + ", ") + _arg2) + " )")); _call("_link", _arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ _debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); _call("_addOrganic", _arg1); } public function setAllowLinker(_arg1:Boolean):void{ _debug.info((("setAllowLinker( " + _arg1) + " )")); _call("_setAllowLinker", _arg1); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ _debug.info((((("getLinkerUrl(" + _arg1) + ", ") + _arg2) + ")")); return (_call("_getLinkerUrl", _arg1, _arg2)); } private function _linkTrackingObject(_arg1:String):void{ _proxy.call(_linkTrackingObject_js, _jsContainer, _arg1); } public function setClientInfo(_arg1:Boolean):void{ _debug.info((("setClientInfo( " + _arg1) + " )")); _call("_setClientInfo", _arg1); } public function trackTrans():void{ _debug.info("trackTrans()"); _call("_trackTrans"); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ var _local5 = 2; if (((_arg3) && (!((_arg3 == ""))))){ _local5 = 3; }; if ((((_local5 == 3)) && (!(isNaN(_arg4))))){ _local5 = 4; }; switch (_local5){ case 4: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2, _arg3, _arg4)); case 3: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2, _arg3)); case 2: default: _debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )")); return (_call("_trackEvent", _arg1, _arg2)); }; } public function setCookieTimeout(_arg1:int):void{ _debug.info((("setCookieTimeout( " + _arg1) + " )")); _call("_setCookieTimeout", _arg1); } public function trackPageview(_arg1:String=""):void{ _debug.info((("trackPageview( " + _arg1) + " )")); _call("_trackPageview", _arg1); } private function _checkValidTrackingObject(_arg1:String):Boolean{ return (_proxy.call(_checkValidTrackingObject_js, _arg1)); } private function _checkGAJS():Boolean{ return (_proxy.call(_checkGAJS_js)); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _debug.warning((((("linkByPost( " + _arg1) + ", ") + _arg2) + " ) not implemented")); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_call("_getClientInfo")); } private function _call(_arg1:String, ... _args){ _args.unshift(((((("window." + _jsContainer) + "[\"") + _account) + "\"].") + _arg1)); return (_proxy.call.apply(_proxy, _args)); } public function hasGAJS():Boolean{ return (_checkGAJS()); } private function _checkTrackingObject(_arg1:String):Boolean{ var _local2:Boolean = _proxy.hasProperty(_arg1); var _local3:Boolean = _proxy.hasProperty((_arg1 + "._getAccount")); return (((_local2) && (_local3))); } public function resetSession():void{ _debug.warning("resetSession() not implemented"); } public function getDetectTitle():Boolean{ _debug.info("getDetectTitle()"); return (_call("_getDetectTitle")); } public function setCampNameKey(_arg1:String):void{ _debug.info((("setCampNameKey( " + _arg1) + " )")); _call("_setCampNameKey", _arg1); } public function setDetectFlash(_arg1:Boolean):void{ _debug.info((("setDetectFlash( " + _arg1) + " )")); _call("_setDetectFlash", _arg1); } public function createEventTracker(_arg1:String):EventTracker{ _debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )")); _call("_addItem", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } public function clearIgnoredOrganic():void{ _debug.info("clearIgnoredOrganic()"); _call("_clearIgnoreOrganic"); } public function setVar(_arg1:String):void{ _debug.info((("setVar( " + _arg1) + " )")); _call("_setVar", _arg1); } public function setDomainName(_arg1:String):void{ _debug.info((("setDomainName( " + _arg1) + " )")); _call("_setDomainName", _arg1); } public function hasTrackingAccount(_arg1:String):Boolean{ if (Utils.validateAccount(_arg1)){ return (_checkValidTrackingObject(_arg1)); }; return (_checkTrackingObject(_arg1)); } public function setCampSourceKey(_arg1:String):void{ _debug.info((("setCampSourceKey( " + _arg1) + " )")); _call("_setCampSourceKey", _arg1); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ _debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " )")); _call("_addTrans", _arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setCampContentKey(_arg1:String):void{ _debug.info((("setCampContentKey( " + _arg1) + " )")); _call("_setCampContentKey", _arg1); } public function setLocalServerMode():void{ _debug.info("setLocalServerMode()"); _call("_setLocalServerMode"); } public function getLocalGifPath():String{ _debug.info("getLocalGifPath()"); return (_call("_getLocalGifPath")); } public function clearIgnoredRef():void{ _debug.info("clearIgnoredRef()"); _call("_clearIgnoreRef"); } public function setAllowAnchor(_arg1:Boolean):void{ _debug.info((("setAllowAnchor( " + _arg1) + " )")); _call("_setAllowAnchor", _arg1); } public function setLocalGifPath(_arg1:String):void{ _debug.info((("setLocalGifPath( " + _arg1) + " )")); _call("_setLocalGifPath", _arg1); } public function getVersion():String{ _debug.info("getVersion()"); return (_call("_getVersion")); } private function _injectTrackingObject():void{ _proxy.executeBlock(_injectTrackingObject_js); _hasGATracker = true; } public function setCookiePath(_arg1:String):void{ _debug.info((("setCookiePath( " + _arg1) + " )")); _call("_setCookiePath", _arg1); } public function setSampleRate(_arg1:Number):void{ _debug.info((("setSampleRate( " + _arg1) + " )")); _call("_setSampleRate", _arg1); } public function setAllowHash(_arg1:Boolean):void{ _debug.info((("setAllowHash( " + _arg1) + " )")); _call("_setAllowHash", _arg1); } public function addIgnoredOrganic(_arg1:String):void{ _debug.info((("addIgnoredOrganic( " + _arg1) + " )")); _call("_addIgnoredOrganic", _arg1); } public function setCampNOKey(_arg1:String):void{ _debug.info((("setCampNOKey( " + _arg1) + " )")); _call("_setCampNOKey", _arg1); } public function cookiePathCopy(_arg1:String):void{ _debug.info((("cookiePathCopy( " + _arg1) + " )")); _call("_cookiePathCopy", _arg1); } public function setLocalRemoteServerMode():void{ _debug.info("setLocalRemoteServerMode()"); _call("_setLocalRemoteServerMode"); } public function getServiceMode():ServerOperationMode{ _debug.info("getServiceMode()"); return (_call("_getServiceMode")); } public function setDetectTitle(_arg1:Boolean):void{ _debug.info((("setDetectTitle( " + _arg1) + " )")); _call("_setDetectTitle", _arg1); } private function _createTrackingObject(_arg1:String):void{ _proxy.call(_createTrackingObject_js, _arg1); } public function setCampaignTrack(_arg1:Boolean):void{ _debug.info((("setCampaignTrack( " + _arg1) + " )")); _call("_setCampaignTrack", _arg1); } public function clearOrganic():void{ _debug.info("clearOrganic()"); _call("_clearOrganic"); } public function setCampTermKey(_arg1:String):void{ _debug.info((("setCampTermKey( " + _arg1) + " )")); _call("_setCampTermKey", _arg1); } public function getDetectFlash():Boolean{ _debug.info("getDetectFlash()"); return (_call("_getDetectFlash")); } public function setCampMediumKey(_arg1:String):void{ _debug.info((("setCampMediumKey( " + _arg1) + " )")); _call("_setCampMediumKey", _arg1); } public function addIgnoredRef(_arg1:String):void{ _debug.info((("addIgnoredRef( " + _arg1) + " )")); _call("_addIgnoredRef", _arg1); } public function setSessionTimeout(_arg1:int):void{ _debug.info((("setSessionTimeout( " + _arg1) + " )")); _call("_setSessionTimeout", _arg1); } public function setRemoteServerMode():void{ _debug.info("setRemoteServerMode()"); _call("_setRemoteServerMode"); } public function getAccount():String{ _debug.info("getAccount()"); return (_call("_getAccount")); } } }//package com.google.analytics.v4
Section 242
//Configuration (com.google.analytics.v4.Configuration) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import com.google.analytics.utils.*; import com.google.analytics.campaign.*; public class Configuration { public var serverMode:ServerOperationMode; public var detectFlash:Boolean;// = true public var hasSiteOverlay:Boolean;// = false public var allowLocalTracking:Boolean;// = true public var secureRemoteGIFpath:String;// = "https://ssl.google-analytics.com/__utm.gif" private var _version:String;// = "4.3as" public var allowDomainHash:Boolean;// = true public var detectClientInfo:Boolean;// = true public var idleLoop:Number;// = 30 public var isTrackOutboundSubdomains:Boolean;// = false public var cookiePath:String;// = "/" public var transactionFieldDelim:String;// = "|" private var _organic:Organic; private var _cookieName:String;// = "analytics" public var campaignKey:CampaignKey; public var google:String;// = "google" public var googleCsePath:String;// = "cse" public var bucketCapacity:Number;// = 10 private var _sampleRate:Number;// = 1 public var remoteGIFpath:String;// = "http://www.google-analytics.com/__utm.gif" public var googleSearchParam:String;// = "q" public var allowLinker:Boolean;// = false public var maxOutboundLinkExamined:Number;// = 1000 private var _debug:DebugConfiguration; public var allowAnchor:Boolean;// = false private var _domain:Domain; private var _trackingLimitPerSession:int;// = 500 public var tokenCliff:int;// = 10 public var sessionTimeout:Number; public var idleTimeout:Number;// = 60 public var campaignTracking:Boolean;// = true public var domainName:String;// = "" public var detectTitle:Boolean;// = true public var tokenRate:Number;// = 0.2 public var conversionTimeout:Number; public var localGIFpath:String;// = "/__utm.gif" public function Configuration(_arg1:DebugConfiguration=null){ _organic = new Organic(); conversionTimeout = Timespan.sixmonths; sessionTimeout = Timespan.thirtyminutes; campaignKey = new CampaignKey(); serverMode = ServerOperationMode.remote; super(); _debug = _arg1; _domain = new Domain(DomainNameMode.auto, "", _debug); serverMode = ServerOperationMode.remote; _initOrganicSources(); } public function get organic():Organic{ return (_organic); } public function get cookieName():String{ return (_cookieName); } public function get trackingLimitPerSession():int{ return (_trackingLimitPerSession); } private function _initOrganicSources():void{ addOrganicSource(google, googleSearchParam); addOrganicSource("yahoo", "p"); addOrganicSource("msn", "q"); addOrganicSource("aol", "query"); addOrganicSource("aol", "encquery"); addOrganicSource("lycos", "query"); addOrganicSource("ask", "q"); addOrganicSource("altavista", "q"); addOrganicSource("netscape", "query"); addOrganicSource("cnn", "query"); addOrganicSource("looksmart", "qt"); addOrganicSource("about", "terms"); addOrganicSource("mamma", "query"); addOrganicSource("alltheweb", "q"); addOrganicSource("gigablast", "q"); addOrganicSource("voila", "rdata"); addOrganicSource("virgilio", "qs"); addOrganicSource("live", "q"); addOrganicSource("baidu", "wd"); addOrganicSource("alice", "qs"); addOrganicSource("yandex", "text"); addOrganicSource("najdi", "q"); addOrganicSource("aol", "q"); addOrganicSource("club-internet", "q"); addOrganicSource("mama", "query"); addOrganicSource("seznam", "q"); addOrganicSource("search", "q"); addOrganicSource("wp", "szukaj"); addOrganicSource("onet", "qt"); addOrganicSource("netsprint", "q"); addOrganicSource("google.interia", "q"); addOrganicSource("szukacz", "q"); addOrganicSource("yam", "k"); addOrganicSource("pchome", "q"); addOrganicSource("kvasir", "searchExpr"); addOrganicSource("sesam", "q"); addOrganicSource("ozu", "q"); addOrganicSource("terra", "query"); addOrganicSource("nostrum", "query"); addOrganicSource("mynet", "q"); addOrganicSource("ekolay", "q"); addOrganicSource("search.ilse", "search_for"); } public function get sampleRate():Number{ return (_sampleRate); } public function addOrganicSource(_arg1:String, _arg2:String):void{ var engine = _arg1; var keyword = _arg2; try { _organic.addSource(engine, keyword); } catch(e:Error) { if (((_debug) && (_debug.active))){ _debug.warning(e.message); }; }; } public function get domain():Domain{ return (_domain); } public function set sampleRate(_arg1:Number):void{ if (_arg1 <= 0){ _arg1 = 0.1; }; if (_arg1 > 1){ _arg1 = 1; }; _arg1 = Number(_arg1.toFixed(2)); _sampleRate = _arg1; } public function get version():String{ return (_version); } } }//package com.google.analytics.v4
Section 243
//GoogleAnalyticsAPI (com.google.analytics.v4.GoogleAnalyticsAPI) package com.google.analytics.v4 { import com.google.analytics.core.*; public interface GoogleAnalyticsAPI { function setCampSourceKey(_arg1:String):void; function setDetectTitle(_arg1:Boolean):void; function setLocalRemoteServerMode():void; function resetSession():void; function setLocalServerMode():void; function setCampContentKey(_arg1:String):void; function addOrganic(_arg1:String, _arg2:String):void; function setDetectFlash(_arg1:Boolean):void; function setAllowLinker(_arg1:Boolean):void; function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean; function setCampTermKey(_arg1:String):void; function setCampNameKey(_arg1:String):void; function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String; function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void; function clearIgnoredRef():void; function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void; function getDetectFlash():Boolean; function setCampaignTrack(_arg1:Boolean):void; function createEventTracker(_arg1:String):EventTracker; function setCookieTimeout(_arg1:int):void; function setAllowAnchor(_arg1:Boolean):void; function trackTrans():void; function clearOrganic():void; function trackPageview(_arg1:String=""):void; function setLocalGifPath(_arg1:String):void; function getVersion():String; function getLocalGifPath():String; function getServiceMode():ServerOperationMode; function setVar(_arg1:String):void; function clearIgnoredOrganic():void; function setCampMediumKey(_arg1:String):void; function addIgnoredRef(_arg1:String):void; function setClientInfo(_arg1:Boolean):void; function setCookiePath(_arg1:String):void; function setSampleRate(_arg1:Number):void; function setSessionTimeout(_arg1:int):void; function setRemoteServerMode():void; function setDomainName(_arg1:String):void; function addIgnoredOrganic(_arg1:String):void; function setAllowHash(_arg1:Boolean):void; function getAccount():String; function linkByPost(_arg1:Object, _arg2:Boolean=false):void; function link(_arg1:String, _arg2:Boolean=false):void; function setCampNOKey(_arg1:String):void; function getClientInfo():Boolean; function cookiePathCopy(_arg1:String):void; function getDetectTitle():Boolean; } }//package com.google.analytics.v4
Section 244
//Tracker (com.google.analytics.v4.Tracker) package com.google.analytics.v4 { import com.google.analytics.core.*; import com.google.analytics.debug.*; import flash.net.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; import com.google.analytics.data.*; import com.google.analytics.ecommerce.*; import com.google.analytics.campaign.*; public class Tracker implements GoogleAnalyticsAPI { private const EVENT_TRACKER_LABEL_KEY_NUM:int = 3; private const EVENT_TRACKER_VALUE_VALUE_NUM:int = 1; private const EVENT_TRACKER_PROJECT_ID:int = 5; private const EVENT_TRACKER_OBJECT_NAME_KEY_NUM:int = 1; private const EVENT_TRACKER_TYPE_KEY_NUM:int = 2; private var _adSense:AdSenseGlobals; private var _eventTracker:X10; private var _noSessionInformation:Boolean;// = false private var _browserInfo:BrowserInfo; private var _debug:DebugConfiguration; private var _isNewVisitor:Boolean;// = false private var _buffer:Buffer; private var _config:Configuration; private var _x10Module:X10; private var _campaign:CampaignManager; private var _formatedReferrer:String; private var _timeStamp:Number; private var _info:Environment; private var _domainHash:Number; private var _campaignInfo:CampaignInfo; private var _gifRequest:GIFRequest; private var _hasInitData:Boolean;// = false private var _ecom:Ecommerce; private var _account:String; public function Tracker(_arg1:String, _arg2:Configuration, _arg3:DebugConfiguration, _arg4:Environment, _arg5:Buffer, _arg6:GIFRequest, _arg7:AdSenseGlobals, _arg8:Ecommerce){ var _local9:String; super(); _account = _arg1; _config = _arg2; _debug = _arg3; _info = _arg4; _buffer = _arg5; _gifRequest = _arg6; _adSense = _arg7; _ecom = _arg8; if (!Utils.validateAccount(_arg1)){ _local9 = (("Account \"" + _arg1) + "\" is not valid."); _debug.warning(_local9); throw (new Error(_local9)); }; } private function _doTracking():Boolean{ if (((((!((_info.protocol == Protocols.file))) && (!((_info.protocol == Protocols.none))))) && (_isNotGoogleSearch()))){ return (true); }; if (_config.allowLocalTracking){ return (true); }; return (false); } public function addOrganic(_arg1:String, _arg2:String):void{ _debug.info((("addOrganic( " + [_arg1, _arg2].join(", ")) + " )")); _config.organic.addSource(_arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ _config.allowLinker = _arg1; _debug.info((("setAllowLinker( " + _config.allowLinker) + " )")); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ _initData(); _debug.info((((("getLinkerUrl( " + _arg1) + ", ") + _arg2.toString()) + " )")); return (_buffer.getLinkerUrl(_arg1, _arg2)); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ _initData(); var _local5:Boolean; var _local6 = 2; if (((!((_arg1 == ""))) && (!((_arg2 == ""))))){ _eventTracker.clearKey(EVENT_TRACKER_PROJECT_ID); _eventTracker.clearValue(EVENT_TRACKER_PROJECT_ID); _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_OBJECT_NAME_KEY_NUM, _arg1); _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_TYPE_KEY_NUM, _arg2); if (((_arg3) && (!((_arg3 == ""))))){ _local5 = _eventTracker.setKey(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_LABEL_KEY_NUM, _arg3); _local6 = 3; if (!isNaN(_arg4)){ _local5 = _eventTracker.setValue(EVENT_TRACKER_PROJECT_ID, EVENT_TRACKER_VALUE_VALUE_NUM, _arg4); _local6 = 4; }; }; if (_local5){ _debug.info(((("valid event tracking call\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek); _sendXEvent(_eventTracker); }; } else { _debug.warning(((("event tracking call is not valid, failed!\ncategory: " + _arg1) + "\naction: ") + _arg2), VisualDebugMode.geek); _local5 = false; }; switch (_local6){ case 4: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3, _arg4].join(", ")) + " )")); break; case 3: _debug.info((("trackEvent( " + [_arg1, _arg2, _arg3].join(", ")) + " )")); break; case 2: default: _debug.info((("trackEvent( " + [_arg1, _arg2].join(", ")) + " )")); }; return (_local5); } public function trackPageview(_arg1:String=""):void{ _debug.info((("trackPageview( " + _arg1) + " )")); if (_doTracking()){ _initData(); _trackMetrics(_arg1); _noSessionInformation = false; } else { _debug.warning((("trackPageview( " + _arg1) + " ) failed")); }; } public function setCookieTimeout(_arg1:int):void{ _config.conversionTimeout = _arg1; _debug.info((("setCookieTimeout( " + _config.conversionTimeout) + " )")); } public function trackTrans():void{ var _local1:Number; var _local2:Number; var _local4:Transaction; _initData(); var _local3:Array = new Array(); if (_takeSample()){ _local1 = 0; while (_local1 < _ecom.getTransLength()) { _local4 = _ecom.getTransFromArray(_local1); _local3.push(_local4.toGifParams()); _local2 = 0; while (_local2 < _local4.getItemsLength()) { _local3.push(_local4.getItemFromArray(_local2).toGifParams()); _local2++; }; _local1++; }; _local1 = 0; while (_local1 < _local3.length) { _gifRequest.send(_account, _local3[_local1]); _local1++; }; }; } public function setClientInfo(_arg1:Boolean):void{ _config.detectClientInfo = _arg1; _debug.info((("setClientInfo( " + _config.detectClientInfo) + " )")); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _debug.warning("linkByPost not implemented in AS3 mode"); } private function _initData():void{ var _local1:String; var _local2:String; if (!_hasInitData){ _updateDomainName(); _domainHash = _getDomainHash(); _timeStamp = Math.round((new Date().getTime() / 1000)); if (_debug.verbose){ _local1 = ""; _local1 = (_local1 + "_initData 0"); _local1 = (_local1 + ("\ndomain name: " + _config.domainName)); _local1 = (_local1 + ("\ndomain hash: " + _domainHash)); _local1 = (_local1 + (((("\ntimestamp: " + _timeStamp) + " (") + new Date((_timeStamp * 1000))) + ")")); _debug.info(_local1, VisualDebugMode.geek); }; }; if (_doTracking()){ _handleCookie(); }; if (!_hasInitData){ if (_doTracking()){ _formatedReferrer = _formatReferrer(); _browserInfo = new BrowserInfo(_config, _info); _debug.info(("browserInfo: " + _browserInfo.toURLString()), VisualDebugMode.advanced); if (_config.campaignTracking){ _campaign = new CampaignManager(_config, _debug, _buffer, _domainHash, _formatedReferrer, _timeStamp); _campaignInfo = _campaign.getCampaignInformation(_info.locationSearch, _noSessionInformation); _debug.info(("campaignInfo: " + _campaignInfo.toURLString()), VisualDebugMode.advanced); _debug.info(("Search: " + _info.locationSearch)); _debug.info(("CampaignTrackig: " + _buffer.utmz.campaignTracking)); }; }; _x10Module = new X10(); _eventTracker = new X10(); _hasInitData = true; }; if (_config.hasSiteOverlay){ _debug.warning("Site Overlay is not supported"); }; if (_debug.verbose){ _local2 = ""; _local2 = (_local2 + "_initData (misc)"); _local2 = (_local2 + ("\nflash version: " + _info.flashVersion.toString(4))); _local2 = (_local2 + ("\nprotocol: " + _info.protocol)); _local2 = (_local2 + (("\ndefault domain name (auto): \"" + _info.domainName) + "\"")); _local2 = (_local2 + ("\nlanguage: " + _info.language)); _local2 = (_local2 + ("\ndomain hash: " + _getDomainHash())); _local2 = (_local2 + ("\nuser-agent: " + _info.userAgent)); _debug.info(_local2, VisualDebugMode.geek); }; } public function getDetectTitle():Boolean{ _debug.info("getDetectTitle()"); return (_config.detectTitle); } public function resetSession():void{ _debug.info("resetSession()"); _buffer.resetCurrentSession(); } public function getClientInfo():Boolean{ _debug.info("getClientInfo()"); return (_config.detectClientInfo); } private function _sendXEvent(_arg1:X10=null):void{ var _local2:Variables; var _local3:EventInfo; var _local4:Variables; var _local5:Variables; if (_takeSample()){ _local2 = new Variables(); _local2.URIencode = true; _local3 = new EventInfo(true, _x10Module, _arg1); _local4 = _local3.toVariables(); _local5 = _renderMetricsSearchVariables(); _local2.join(_local4, _local5); _gifRequest.send(_account, _local2, false, true); }; } public function setDetectFlash(_arg1:Boolean):void{ _config.detectFlash = _arg1; _debug.info((("setDetectFlash( " + _config.detectFlash) + " )")); } public function setCampNameKey(_arg1:String):void{ _config.campaignKey.UCCN = _arg1; var _local2 = (("setCampNameKey( " + _config.campaignKey.UCCN) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCCN]")); } else { _debug.info(_local2); }; } private function _formatReferrer():String{ var _local2:String; var _local3:URL; var _local4:URL; var _local1:String = _info.referrer; if ((((_local1 == "")) || ((_local1 == "localhost")))){ _local1 = "-"; } else { _local2 = _info.domainName; _local3 = new URL(_local1); _local4 = new URL(("http://" + _local2)); if (_local3.hostName == _local2){ return ("-"); }; if (_local4.domain == _local3.domain){ if (_local4.subDomain != _local3.subDomain){ _local1 = "0"; }; }; if ((((_local1.charAt(0) == "[")) && (_local1.charAt((_local1.length - 1))))){ _local1 = "-"; }; }; _debug.info(("formated referrer: " + _local1), VisualDebugMode.advanced); return (_local1); } private function _visitCode():Number{ if (_debug.verbose){ _debug.info(("visitCode: " + _buffer.utma.sessionId), VisualDebugMode.geek); }; return (_buffer.utma.sessionId); } public function createEventTracker(_arg1:String):EventTracker{ _debug.info((("createEventTracker( " + _arg1) + " )")); return (new EventTracker(_arg1, this)); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ var _local7:Transaction; _local7 = _ecom.getTransaction(_arg1); if (_local7 == null){ _local7 = _ecom.addTransaction(_arg1, "", "", "", "", "", "", ""); }; _local7.addItem(_arg2, _arg3, _arg4, _arg5.toString(), _arg6.toString()); if (_debug.active){ _debug.info((("addItem( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6].join(", ")) + " )")); }; } public function clearIgnoredOrganic():void{ _debug.info("clearIgnoredOrganic()"); _config.organic.clearIgnoredKeywords(); } public function setVar(_arg1:String):void{ var _local2:Variables; if (((!((_arg1 == ""))) && (_isNotGoogleSearch()))){ _initData(); _buffer.utmv.domainHash = _domainHash; _buffer.utmv.value = encodeURI(_arg1); if (_debug.verbose){ _debug.info(_buffer.utmv.toString(), VisualDebugMode.geek); }; _debug.info((("setVar( " + _arg1) + " )")); if (_takeSample()){ _local2 = new Variables(); _local2.utmt = "var"; _gifRequest.send(_account, _local2); }; } else { _debug.warning((("setVar \"" + _arg1) + "\" is ignored")); }; } public function setDomainName(_arg1:String):void{ if (_arg1 == "auto"){ _config.domain.mode = DomainNameMode.auto; } else { if (_arg1 == "none"){ _config.domain.mode = DomainNameMode.none; } else { _config.domain.mode = DomainNameMode.custom; _config.domain.name = _arg1; }; }; _updateDomainName(); _debug.info((("setDomainName( " + _config.domainName) + " )")); } private function _updateDomainName():void{ var _local1:String; if (_config.domain.mode == DomainNameMode.auto){ _local1 = _info.domainName; if (_local1.substring(0, 4) == "www."){ _local1 = _local1.substring(4); }; _config.domain.name = _local1; }; _config.domainName = _config.domain.name.toLowerCase(); _debug.info(("domain name: " + _config.domainName), VisualDebugMode.advanced); } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ _ecom.addTransaction(_arg1, _arg2, _arg3.toString(), _arg4.toString(), _arg5.toString(), _arg6, _arg7, _arg8); if (_debug.active){ _debug.info((("addTrans( " + [_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8].join(", ")) + " );")); }; } private function _renderMetricsSearchVariables(_arg1:String=""):Variables{ var _local4:Variables; var _local2:Variables = new Variables(); _local2.URIencode = true; var _local3:DocumentInfo = new DocumentInfo(_config, _info, _formatedReferrer, _arg1, _adSense); _debug.info(("docInfo: " + _local3.toURLString()), VisualDebugMode.geek); if (_config.campaignTracking){ _local4 = _campaignInfo.toVariables(); }; var _local5:Variables = _browserInfo.toVariables(); _local2.join(_local3.toVariables(), _local5, _local4); return (_local2); } public function setCampContentKey(_arg1:String):void{ _config.campaignKey.UCCT = _arg1; var _local2 = (("setCampContentKey( " + _config.campaignKey.UCCT) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCCT]")); } else { _debug.info(_local2); }; } private function _handleCookie():void{ var _local1:String; var _local2:String; var _local3:Array; var _local4:String; if (_config.allowLinker){ }; _buffer.createSO(); if (((_buffer.hasUTMA()) && (!(_buffer.utma.isEmpty())))){ if (((!(_buffer.hasUTMB())) || (!(_buffer.hasUTMC())))){ _buffer.updateUTMA(_timeStamp); _noSessionInformation = true; }; if (_debug.verbose){ _debug.info(("from cookie " + _buffer.utma.toString()), VisualDebugMode.geek); }; } else { _debug.info("create a new utma", VisualDebugMode.advanced); _buffer.utma.domainHash = _domainHash; _buffer.utma.sessionId = _getUniqueSessionId(); _buffer.utma.firstTime = _timeStamp; _buffer.utma.lastTime = _timeStamp; _buffer.utma.currentTime = _timeStamp; _buffer.utma.sessionCount = 1; if (_debug.verbose){ _debug.info(_buffer.utma.toString(), VisualDebugMode.geek); }; _noSessionInformation = true; _isNewVisitor = true; }; if (((_adSense.gaGlobal) && ((_adSense.dh == String(_domainHash))))){ if (_adSense.sid){ _buffer.utma.currentTime = Number(_adSense.sid); if (_debug.verbose){ _local1 = ""; _local1 = (_local1 + "AdSense sid found\n"); _local1 = (_local1 + (((("Override currentTime(" + _buffer.utma.currentTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")")); _debug.info(_local1, VisualDebugMode.geek); }; }; if (_isNewVisitor){ if (_adSense.sid){ _buffer.utma.lastTime = Number(_adSense.sid); if (_debug.verbose){ _local2 = ""; _local2 = (_local2 + "AdSense sid found (new visitor)\n"); _local2 = (_local2 + (((("Override lastTime(" + _buffer.utma.lastTime) + ") from AdSense sid(") + Number(_adSense.sid)) + ")")); _debug.info(_local2, VisualDebugMode.geek); }; }; if (_adSense.vid){ _local3 = _adSense.vid.split("."); _buffer.utma.sessionId = Number(_local3[0]); _buffer.utma.firstTime = Number(_local3[1]); if (_debug.verbose){ _local4 = ""; _local4 = (_local4 + "AdSense vid found (new visitor)\n"); _local4 = (_local4 + (((("Override sessionId(" + _buffer.utma.sessionId) + ") from AdSense vid(") + Number(_local3[0])) + ")\n")); _local4 = (_local4 + (((("Override firstTime(" + _buffer.utma.firstTime) + ") from AdSense vid(") + Number(_local3[1])) + ")")); _debug.info(_local4, VisualDebugMode.geek); }; }; if (_debug.verbose){ _debug.info(("AdSense modified : " + _buffer.utma.toString()), VisualDebugMode.geek); }; }; }; _buffer.utmb.domainHash = _domainHash; if (isNaN(_buffer.utmb.trackCount)){ _buffer.utmb.trackCount = 0; }; if (isNaN(_buffer.utmb.token)){ _buffer.utmb.token = _config.tokenCliff; }; if (isNaN(_buffer.utmb.lastTime)){ _buffer.utmb.lastTime = _buffer.utma.currentTime; }; _buffer.utmc.domainHash = _domainHash; if (_debug.verbose){ _debug.info(_buffer.utmb.toString(), VisualDebugMode.advanced); _debug.info(_buffer.utmc.toString(), VisualDebugMode.advanced); }; } public function setLocalServerMode():void{ _config.serverMode = ServerOperationMode.local; _debug.info("setLocalServerMode()"); } public function clearIgnoredRef():void{ _debug.info("clearIgnoredRef()"); _config.organic.clearIgnoredReferrals(); } public function setCampSourceKey(_arg1:String):void{ _config.campaignKey.UCSR = _arg1; var _local2 = (("setCampSourceKey( " + _config.campaignKey.UCSR) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCSR]")); } else { _debug.info(_local2); }; } public function getLocalGifPath():String{ _debug.info("getLocalGifPath()"); return (_config.localGIFpath); } public function setLocalGifPath(_arg1:String):void{ _config.localGIFpath = _arg1; _debug.info((("setLocalGifPath( " + _config.localGIFpath) + " )")); } public function getVersion():String{ _debug.info("getVersion()"); return (_config.version); } public function setAllowAnchor(_arg1:Boolean):void{ _config.allowAnchor = _arg1; _debug.info((("setAllowAnchor( " + _config.allowAnchor) + " )")); } private function _isNotGoogleSearch():Boolean{ var _local1:String = _config.domainName; var _local2 = (_local1.indexOf("www.google.") < 0); var _local3 = (_local1.indexOf(".google.") < 0); var _local4 = (_local1.indexOf("google.") < 0); var _local5 = (_local1.indexOf("google.org") > -1); return (((((((((_local2) || (_local3))) || (_local4))) || (!((_config.cookiePath == "/"))))) || (_local5))); } public function setSampleRate(_arg1:Number):void{ if (_arg1 < 0){ _debug.warning("sample rate can not be negative, ignoring value."); } else { _config.sampleRate = _arg1; }; _debug.info((("setSampleRate( " + _config.sampleRate) + " )")); } private function _takeSample():Boolean{ if (_debug.verbose){ _debug.info((((("takeSample: (" + (_visitCode() % 10000)) + ") < (") + (_config.sampleRate * 10000)) + ")"), VisualDebugMode.geek); }; return (((_visitCode() % 10000) < (_config.sampleRate * 10000))); } public function setCookiePath(_arg1:String):void{ _config.cookiePath = _arg1; _debug.info((("setCookiePath( " + _config.cookiePath) + " )")); } public function setAllowHash(_arg1:Boolean):void{ _config.allowDomainHash = _arg1; _debug.info((("setAllowHash( " + _config.allowDomainHash) + " )")); } private function _generateUserDataHash():Number{ var _local1 = ""; _local1 = (_local1 + _info.appName); _local1 = (_local1 + _info.appVersion); _local1 = (_local1 + _info.language); _local1 = (_local1 + _info.platform); _local1 = (_local1 + _info.userAgent.toString()); _local1 = (_local1 + (((_info.screenWidth + "x") + _info.screenHeight) + _info.screenColorDepth)); _local1 = (_local1 + _info.referrer); return (Utils.generateHash(_local1)); } public function setCampNOKey(_arg1:String):void{ _config.campaignKey.UCNO = _arg1; var _local2 = (("setCampNOKey( " + _config.campaignKey.UCNO) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCNO]")); } else { _debug.info(_local2); }; } public function addIgnoredOrganic(_arg1:String):void{ _debug.info((("addIgnoredOrganic( " + _arg1) + " )")); _config.organic.addIgnoredKeyword(_arg1); } public function setLocalRemoteServerMode():void{ _config.serverMode = ServerOperationMode.both; _debug.info("setLocalRemoteServerMode()"); } public function cookiePathCopy(_arg1:String):void{ _debug.warning((("cookiePathCopy( " + _arg1) + " ) not implemented")); } public function setDetectTitle(_arg1:Boolean):void{ _config.detectTitle = _arg1; _debug.info((("setDetectTitle( " + _config.detectTitle) + " )")); } public function setCampTermKey(_arg1:String):void{ _config.campaignKey.UCTR = _arg1; var _local2 = (("setCampTermKey( " + _config.campaignKey.UCTR) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCTR]")); } else { _debug.info(_local2); }; } public function getServiceMode():ServerOperationMode{ _debug.info("getServiceMode()"); return (_config.serverMode); } private function _trackMetrics(_arg1:String=""):void{ var _local2:Variables; var _local3:Variables; var _local4:Variables; var _local5:EventInfo; if (_takeSample()){ _local2 = new Variables(); _local2.URIencode = true; if (((_x10Module) && (_x10Module.hasData()))){ _local5 = new EventInfo(false, _x10Module); _local3 = _local5.toVariables(); }; _local4 = _renderMetricsSearchVariables(_arg1); _local2.join(_local3, _local4); _gifRequest.send(_account, _local2); }; } public function setCampaignTrack(_arg1:Boolean):void{ _config.campaignTracking = _arg1; _debug.info((("setCampaignTrack( " + _config.campaignTracking) + " )")); } public function addIgnoredRef(_arg1:String):void{ _debug.info((("addIgnoredRef( " + _arg1) + " )")); _config.organic.addIgnoredReferral(_arg1); } public function clearOrganic():void{ _debug.info("clearOrganic()"); _config.organic.clearEngines(); } public function getDetectFlash():Boolean{ _debug.info("getDetectFlash()"); return (_config.detectFlash); } public function setCampMediumKey(_arg1:String):void{ _config.campaignKey.UCMD = _arg1; var _local2 = (("setCampMediumKey( " + _config.campaignKey.UCMD) + " )"); if (_debug.mode == VisualDebugMode.geek){ _debug.info((_local2 + " [UCMD]")); } else { _debug.info(_local2); }; } private function _getUniqueSessionId():Number{ var _local1:Number = ((Utils.generate32bitRandom() ^ _generateUserDataHash()) * 2147483647); _debug.info(("Session ID: " + _local1), VisualDebugMode.geek); return (_local1); } private function _getDomainHash():Number{ if (((((!(_config.domainName)) || ((_config.domainName == "")))) || ((_config.domain.mode == DomainNameMode.none)))){ _config.domainName = ""; return (1); }; _updateDomainName(); if (_config.allowDomainHash){ return (Utils.generateHash(_config.domainName)); }; return (1); } public function setSessionTimeout(_arg1:int):void{ _config.sessionTimeout = _arg1; _debug.info((("setSessionTimeout( " + _config.sessionTimeout) + " )")); } public function getAccount():String{ _debug.info("getAccount()"); return (_account); } public function link(_arg1:String, _arg2:Boolean=false):void{ var targetUrl = _arg1; var useHash = _arg2; _initData(); var out:String = _buffer.getLinkerUrl(targetUrl, useHash); var request:URLRequest = new URLRequest(out); _debug.info((("link( " + [targetUrl, useHash].join(",")) + " )")); try { navigateToURL(request, "_top"); } catch(e:Error) { _debug.warning(("An error occured in link() msg: " + e.message)); }; } public function setRemoteServerMode():void{ _config.serverMode = ServerOperationMode.remote; _debug.info("setRemoteServerMode()"); } } }//package com.google.analytics.v4
Section 245
//AnalyticsTracker (com.google.analytics.AnalyticsTracker) package com.google.analytics { import flash.events.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; public interface AnalyticsTracker extends GoogleAnalyticsAPI, IEventDispatcher { function set account(_arg1:String):void; function get config():Configuration; function get mode():String; function set config(_arg1:Configuration):void; function set mode(_arg1:String):void; function set debug(_arg1:DebugConfiguration):void; function get visualDebug():Boolean; function get account():String; function set visualDebug(_arg1:Boolean):void; function isReady():Boolean; function get debug():DebugConfiguration; } }//package com.google.analytics
Section 246
//API (com.google.analytics.API) package com.google.analytics { import com.google.analytics.utils.*; public class API { public static var version:Version = new Version(); version.major = 1; version.minor = 0; version.build = 1; version.revision = "$Rev: 319 $ ".split(" ")[1]; } }//package com.google.analytics
Section 247
//GATracker (com.google.analytics.GATracker) package com.google.analytics { import flash.events.*; import com.google.analytics.core.*; import com.google.analytics.v4.*; import com.google.analytics.debug.*; import flash.display.*; import com.google.analytics.external.*; import com.google.analytics.utils.*; import com.google.analytics.events.*; public class GATracker implements AnalyticsTracker { private var _adSense:AdSenseGlobals; private var _env:Environment; private var _visualDebug:Boolean; private var _idleTimer:IdleTimer; private var _debug:DebugConfiguration; private var _buffer:Buffer; private var _config:Configuration; private var _mode:String; private var _display:DisplayObject; private var _jsproxy:JavascriptProxy; private var _dom:HTMLDOM; private var _eventDispatcher:EventDispatcher; private var _ready:Boolean;// = false private var _gifRequest:GIFRequest; private var _ecom:Ecommerce; private var _account:String; private var _tracker:GoogleAnalyticsAPI; public static var version:Version = API.version; public static var autobuild:Boolean = true; public function GATracker(_arg1:DisplayObject, _arg2:String, _arg3:String="AS3", _arg4:Boolean=false, _arg5:Configuration=null, _arg6:DebugConfiguration=null){ _display = _arg1; _eventDispatcher = new EventDispatcher(this); _tracker = new TrackerCache(); this.account = _arg2; this.mode = _arg3; this.visualDebug = _arg4; if (!_arg6){ this.debug = new DebugConfiguration(); }; if (!_arg5){ this.config = new Configuration(_arg6); }; if (autobuild){ _factory(); }; } public function link(_arg1:String, _arg2:Boolean=false):void{ _tracker.link(_arg1, _arg2); } public function addOrganic(_arg1:String, _arg2:String):void{ _tracker.addOrganic(_arg1, _arg2); } public function setAllowLinker(_arg1:Boolean):void{ _tracker.setAllowLinker(_arg1); } public function trackEvent(_arg1:String, _arg2:String, _arg3:String=null, _arg4:Number=NaN):Boolean{ return (_tracker.trackEvent(_arg1, _arg2, _arg3, _arg4)); } public function getLinkerUrl(_arg1:String="", _arg2:Boolean=false):String{ return (_tracker.getLinkerUrl(_arg1, _arg2)); } public function setCookieTimeout(_arg1:int):void{ _tracker.setCookieTimeout(_arg1); } public function trackTrans():void{ _tracker.trackTrans(); } public function getClientInfo():Boolean{ return (_tracker.getClientInfo()); } public function trackPageview(_arg1:String=""):void{ _tracker.trackPageview(_arg1); } public function setClientInfo(_arg1:Boolean):void{ _tracker.setClientInfo(_arg1); } public function get account():String{ return (_account); } public function linkByPost(_arg1:Object, _arg2:Boolean=false):void{ _tracker.linkByPost(_arg1, _arg2); } public function getDetectTitle():Boolean{ return (_tracker.getDetectTitle()); } public function dispatchEvent(_arg1:Event):Boolean{ return (_eventDispatcher.dispatchEvent(_arg1)); } public function get config():Configuration{ return (_config); } public function set mode(_arg1:String):void{ _mode = _arg1; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ _eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); } public function setDetectFlash(_arg1:Boolean):void{ _tracker.setDetectFlash(_arg1); } public function resetSession():void{ _tracker.resetSession(); } public function setCampNameKey(_arg1:String):void{ _tracker.setCampNameKey(_arg1); } public function get debug():DebugConfiguration{ return (_debug); } public function addItem(_arg1:String, _arg2:String, _arg3:String, _arg4:String, _arg5:Number, _arg6:int):void{ _tracker.addItem(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } private function _bridgeFactory():GoogleAnalyticsAPI{ debug.info(((("GATracker (Bridge) v" + version) + "\naccount: ") + account)); return (new Bridge(account, _debug, _jsproxy)); } public function clearIgnoredOrganic():void{ _tracker.clearIgnoredOrganic(); } public function set account(_arg1:String):void{ _account = _arg1; } public function setVar(_arg1:String):void{ _tracker.setVar(_arg1); } public function build():void{ if (!isReady()){ _factory(); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ _eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function setDomainName(_arg1:String):void{ _tracker.setDomainName(_arg1); } public function createEventTracker(_arg1:String):EventTracker{ return (_tracker.createEventTracker(_arg1)); } public function setCampSourceKey(_arg1:String):void{ _tracker.setCampSourceKey(_arg1); } public function set config(_arg1:Configuration):void{ _config = _arg1; } public function addTrans(_arg1:String, _arg2:String, _arg3:Number, _arg4:Number, _arg5:Number, _arg6:String, _arg7:String, _arg8:String):void{ _tracker.addTrans(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } public function setCampContentKey(_arg1:String):void{ _tracker.setCampContentKey(_arg1); } public function willTrigger(_arg1:String):Boolean{ return (_eventDispatcher.willTrigger(_arg1)); } public function setLocalServerMode():void{ _tracker.setLocalServerMode(); } public function isReady():Boolean{ return (_ready); } public function getLocalGifPath():String{ return (_tracker.getLocalGifPath()); } public function setAllowAnchor(_arg1:Boolean):void{ _tracker.setAllowAnchor(_arg1); } public function clearIgnoredRef():void{ _tracker.clearIgnoredRef(); } public function get mode():String{ return (_mode); } public function set debug(_arg1:DebugConfiguration):void{ _debug = _arg1; } public function setLocalGifPath(_arg1:String):void{ _tracker.setLocalGifPath(_arg1); } public function getVersion():String{ return (_tracker.getVersion()); } public function setSampleRate(_arg1:Number):void{ _tracker.setSampleRate(_arg1); } public function setCookiePath(_arg1:String):void{ _tracker.setCookiePath(_arg1); } public function setAllowHash(_arg1:Boolean):void{ _tracker.setAllowHash(_arg1); } public function addIgnoredOrganic(_arg1:String):void{ _tracker.addIgnoredOrganic(_arg1); } public function setLocalRemoteServerMode():void{ _tracker.setLocalRemoteServerMode(); } public function cookiePathCopy(_arg1:String):void{ _tracker.cookiePathCopy(_arg1); } private function _factory():void{ var _local1:GoogleAnalyticsAPI; _jsproxy = new JavascriptProxy(debug); if (visualDebug){ debug.layout = new Layout(debug, _display); debug.active = visualDebug; }; var _local2:TrackerCache = (_tracker as TrackerCache); switch (mode){ case TrackerMode.BRIDGE: _local1 = _bridgeFactory(); break; case TrackerMode.AS3: default: _local1 = _trackerFactory(); }; if (!_local2.isEmpty()){ _local2.tracker = _local1; _local2.flush(); }; _tracker = _local1; _ready = true; dispatchEvent(new AnalyticsEvent(AnalyticsEvent.READY, this)); } public function setCampTermKey(_arg1:String):void{ _tracker.setCampTermKey(_arg1); } private function _trackerFactory():GoogleAnalyticsAPI{ debug.info(((("GATracker (AS3) v" + version) + "\naccount: ") + account)); _adSense = new AdSenseGlobals(debug); _dom = new HTMLDOM(debug); _dom.cacheProperties(); _env = new Environment("", "", "", debug, _dom); _buffer = new Buffer(config, debug, false); _gifRequest = new GIFRequest(config, debug, _buffer, _env); _idleTimer = new IdleTimer(config, debug, _display, _buffer); _ecom = new Ecommerce(_debug); _env.url = _display.stage.loaderInfo.url; return (new Tracker(account, config, debug, _env, _buffer, _gifRequest, _adSense, _ecom)); } public function setCampNOKey(_arg1:String):void{ _tracker.setCampNOKey(_arg1); } public function setDetectTitle(_arg1:Boolean):void{ _tracker.setDetectTitle(_arg1); } public function clearOrganic():void{ _tracker.clearOrganic(); } public function setCampaignTrack(_arg1:Boolean):void{ _tracker.setCampaignTrack(_arg1); } public function addIgnoredRef(_arg1:String):void{ _tracker.addIgnoredRef(_arg1); } public function getServiceMode():ServerOperationMode{ return (_tracker.getServiceMode()); } public function set visualDebug(_arg1:Boolean):void{ _visualDebug = _arg1; } public function setCampMediumKey(_arg1:String):void{ _tracker.setCampMediumKey(_arg1); } public function getDetectFlash():Boolean{ return (_tracker.getDetectFlash()); } public function get visualDebug():Boolean{ return (_visualDebug); } public function hasEventListener(_arg1:String):Boolean{ return (_eventDispatcher.hasEventListener(_arg1)); } public function getAccount():String{ return (_tracker.getAccount()); } public function setSessionTimeout(_arg1:int):void{ _tracker.setSessionTimeout(_arg1); } public function setRemoteServerMode():void{ _tracker.setRemoteServerMode(); } } var _local1:* = ServerOperationMode; return (_local1); }//package com.google.analytics
Section 248
//MediaEvent (com.malee.events.MediaEvent) package com.malee.events { import flash.events.*; public class MediaEvent extends Event { public static const STOP:String = "stop"; public static const CONNECT:String = "connect"; public static const START:String = "start"; public static const FINISH:String = "finish"; public static const PLAY:String = "play"; public static const PAUSE:String = "pause"; public static const CLOSE:String = "close"; public static const SEEK:String = "seek"; public function MediaEvent(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false):void{ super(_arg1, _arg2, _arg3); } override public function clone():Event{ return (new MediaEvent(type, bubbles, cancelable)); } } }//package com.malee.events
Section 249
//AssetLoader (com.malee.loaders.AssetLoader) package com.malee.loaders { import flash.events.*; import flash.display.*; import flash.system.*; import flash.net.*; import flash.errors.*; public class AssetLoader extends Loader implements ILoader { private var _url:String; private var context:LoaderContext; private var request:URLRequest; public function AssetLoader(_arg1:String="", _arg2:ApplicationDomain=null){ _url = _arg1; request = new URLRequest(); context = new LoaderContext(); this.applicationDomain = ((_arg2 == null)) ? CURRENT_DOMAIN : _arg2; handleInternalEvents(); } public function set applicationDomain(_arg1:ApplicationDomain):void{ context.applicationDomain = _arg1; } private function onError(_arg1:ErrorEvent):void{ dispatchEvent(_arg1); } private function onProgress(_arg1:ProgressEvent):void{ dispatchEvent(_arg1); } private function handleInternalEvents():void{ contentLoaderInfo.addEventListener(Event.INIT, onInit); contentLoaderInfo.addEventListener(Event.COMPLETE, onComplete); contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onError); contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); contentLoaderInfo.addEventListener(ProgressEvent.PROGRESS, onProgress); } public function get url():String{ return (_url); } public function get applicationDomain():ApplicationDomain{ return (contentLoaderInfo.applicationDomain); } public function get bytesLoaded():uint{ return (contentLoaderInfo.bytesLoaded); } override public function close():void{ try { super.close(); } catch(error:IOError) { }; } public function get bytesTotal():uint{ return (contentLoaderInfo.bytesTotal); } private function onComplete(_arg1:Event):void{ dispatchEvent(_arg1); } private function onInit(_arg1:Event):void{ dispatchEvent(_arg1); } public function loadData(_arg1:String):void{ _url = _arg1; request.url = _arg1; load(request, context); } public static function get CURRENT_DOMAIN():ApplicationDomain{ return (ApplicationDomain.currentDomain); } public static function get NEW_DOMAIN():ApplicationDomain{ return (new ApplicationDomain()); } public static function loadQuick(_arg1:String, _arg2:Function=null, _arg3:Function=null):AssetLoader{ var _local4:AssetLoader = new (AssetLoader); if (_arg3 != null){ _local4.addEventListener(IOErrorEvent.IO_ERROR, _arg3); _local4.addEventListener(SecurityErrorEvent.SECURITY_ERROR, _arg3); }; if (_arg2 != null){ _local4.addEventListener(Event.COMPLETE, _arg2); }; _local4.loadData(_arg1); return (_local4); } public static function get CHILD_DOMAIN():ApplicationDomain{ return (new ApplicationDomain(CURRENT_DOMAIN)); } } }//package com.malee.loaders
Section 250
//ILoader (com.malee.loaders.ILoader) package com.malee.loaders { import flash.events.*; public interface ILoader extends IEventDispatcher { function loadData(_arg1:String):void; function get url():String; } }//package com.malee.loaders
Section 251
//FLVPlayer (com.malee.media.FLVPlayer) package com.malee.media { import flash.events.*; import flash.display.*; import com.malee.events.*; import flash.media.*; import flash.net.*; public class FLVPlayer extends Sprite { private var stream:NetStream; private var client:StreamClient; private var connection:NetConnection; private var _url:String; private var _duration:Number; private var _video:Video; public function FLVPlayer(_arg1:int, _arg2:int):void{ _video = new Video(_arg1, _arg2); addChild(_video); initClient(); initConnection(); } final public function stop():void{ pause(); seek(0); dispatchEvent(new MediaEvent(MediaEvent.STOP)); } private function loadVideo():void{ stream = new NetStream(connection); stream.client = client; stream.bufferTime = 2; stream.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); _video.attachNetStream(stream); dispatchEvent(new MediaEvent(MediaEvent.CONNECT)); } private function onPlayStatus(_arg1:Object):void{ } final public function get loadPercent():Number{ return ((stream.bytesLoaded / stream.bytesTotal)); } private function initClient():void{ client = new StreamClient(); client.onCuePoint = onCuePoint; client.onImageData = onImageData; client.onMetaData = onMetaData; client.onPlayStatus = onPlayStatus; client.onTextData = onTextData; } final public function get time():Number{ return (stream.time); } private function initConnection():void{ connection = new NetConnection(); connection.addEventListener(NetStatusEvent.NET_STATUS, onNetStatus); connection.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onError); } final public function seek(_arg1:Number):void{ stream.seek(_arg1); dispatchEvent(new MediaEvent(MediaEvent.SEEK)); } final public function get duration():Number{ return (_duration); } private function onImageData(_arg1:Object):void{ } private function onNetStatus(_arg1:NetStatusEvent):void{ switch (_arg1.info.code){ case "NetConnection.Connect.Success": loadVideo(); break; case "NetStream.Play.Start": dispatchEvent(new MediaEvent(MediaEvent.START)); break; case "NetStream.Play.Stop": dispatchEvent(new MediaEvent(MediaEvent.FINISH)); break; case "NetStream.Buffer.Full": dispatchEvent(new MediaEvent(MediaEvent.PLAY)); break; case "NetStream.Pause.Notify": break; case "NetStream.Seek.InvalidTime": break; }; } final public function set bufferTime(_arg1:Number):void{ stream.bufferTime = _arg1; } final public function setVolume(_arg1:Number):void{ stream.soundTransform = new SoundTransform(_arg1, 0); } private function onMetaData(_arg1:Object):void{ _duration = _arg1.duration; } final public function start():void{ stream.play(_url); } private function onCuePoint(_arg1:Object):void{ } final public function set smoothing(_arg1:Boolean):void{ _video.smoothing = _arg1; } private function onError(_arg1:SecurityErrorEvent):void{ } final public function get bufferTime():Number{ return (stream.bufferTime); } final public function get playPercent():Number{ return ((time / _duration)); } final public function get smoothing():Boolean{ return (_video.smoothing); } final public function load(_arg1:String):void{ _url = _arg1; connection.connect(null); } final public function pause():void{ stream.pause(); dispatchEvent(new MediaEvent(MediaEvent.PAUSE)); } final public function close():void{ stream.close(); dispatchEvent(new MediaEvent(MediaEvent.CLOSE)); } final public function play():void{ stream.resume(); dispatchEvent(new MediaEvent(MediaEvent.PLAY)); } private function onTextData(_arg1:Object):void{ } } }//package com.malee.media dynamic class StreamClient { private function StreamClient():void{ } }
Section 252
//ClearSpringInterface (com.malee.net.clearspring.ClearSpringInterface) package com.malee.net.clearspring { import flash.display.*; import flash.system.*; public class ClearSpringInterface { private var _ref:DisplayObject; private var _api:Object; public function ClearSpringInterface(_arg1:DisplayObject){ _ref = _arg1; start(); } public function start():void{ Security.allowDomain("bin.clearspring.com"); Security.allowDomain("widgets.clearspring.com"); try { _api = _ref.loaderInfo.loader.root; trace((("User has viewed me " + _api.context.user.WIDGET_VIEWS) + " times")); } catch(e:Error) { trace("WARNING: Not able to add loader event listener. Normal if not running in the Clearspring container."); }; } public function get api():Object{ if (_api != null){ return (_api); }; return (null); } } }//package com.malee.net.clearspring
Section 253
//BitmapMatrix (com.malee.quickfx.display.bitmap.BitmapMatrix) package com.malee.quickfx.display.bitmap { import flash.display.*; import flash.geom.*; public class BitmapMatrix { public var angles:int; public var x:Number; public var y:Number; public var scaleX:Number; public var scaleY:Number; public function BitmapMatrix(_arg1:int=1, _arg2:Number=0, _arg3:Number=0, _arg4:Number=1, _arg5:Number=1){ this.x = _arg2; this.y = _arg3; this.angles = _arg1; this.scaleX = _arg4; this.scaleY = _arg5; } public static function createMatrixFromDisplay(_arg1:DisplayObject, _arg2:DisplayObject=null, _arg3:int=1):BitmapMatrix{ var _local4:Rectangle; if (_arg2 != null){ _local4 = _arg1.getBounds(_arg2); } else { _local4 = _arg1.getBounds(_arg1); }; return (new BitmapMatrix(_arg3, _local4.x, _local4.y, _arg1.scaleX, _arg1.scaleY)); } } }//package com.malee.quickfx.display.bitmap
Section 254
//BitmapMovie (com.malee.quickfx.display.bitmap.BitmapMovie) package com.malee.quickfx.display.bitmap { import flash.display.*; public class BitmapMovie { private var _frames:Array; private var _totalFrames:int; private var _angles:int; public function BitmapMovie(_arg1:Array, _arg2:BitmapMatrix=null, _arg3:BitmapOptions=null){ _arg2 = ((_arg2 == null)) ? new BitmapMatrix() : _arg2; _arg3 = ((_arg3 == null)) ? new BitmapOptions() : _arg3; initialize(_arg1, _arg2, _arg3); } public function get angles():int{ return (_angles); } private function createFrames(_arg1:Array, _arg2:BitmapMatrix, _arg3:BitmapOptions):void{ var _local4:int; var _local6:Bitmap; _frames = []; var _local5:int = _arg1.length; _local4 = 0; while (_local4 < _local5) { _local6 = new Bitmap(_arg1[_local4]); _frames[_local4] = new BitmapMovieFrame(_local6, _arg2, _arg3); _local4++; }; } public function get totalFrames():int{ return (_totalFrames); } public function getBitmapData(_arg1:int, _arg2:int=0):BitmapData{ return (_frames[_arg1].getBitmapData(_arg2)); } private function initialize(_arg1:Array, _arg2:BitmapMatrix, _arg3:BitmapOptions):void{ _angles = _arg2.angles; createFrames(_arg1, _arg2, _arg3); _totalFrames = _frames.length; trace(("Bitmap rendered, we have frames: " + _totalFrames)); } public function getFrame(_arg1:int):BitmapMovieFrame{ return (_frames[_arg1]); } public function getSlice(_arg1:int, _arg2:int=0):BitmapMovieSlice{ return (_frames[_arg1].getSlice(_arg2)); } } }//package com.malee.quickfx.display.bitmap
Section 255
//BitmapMovieDisplay (com.malee.quickfx.display.bitmap.BitmapMovieDisplay) package com.malee.quickfx.display.bitmap { import flash.display.*; import flash.geom.*; public class BitmapMovieDisplay { private var _playhead:Number; private var _angle:Number; private var _angleIndex:int; public var frameSpeed:Number; private var _frame:Number; private var _source:BitmapMovie; private static const PI2:Number = 6.28318530717959; public function BitmapMovieDisplay(_arg1:BitmapMovie, _arg2:int=0, _arg3:Number=0){ frameSpeed = 1; this.source = _arg1; this.frame = _arg2; this.angle = _arg3; } public function get angles():int{ return (_source.angles); } public function forward():void{ _playhead = (_playhead + frameSpeed); _frame = int(_playhead); } public function renderToBitmap(_arg1:Bitmap, _arg2:int=0, _arg3:int=0):void{ var _local4:BitmapMovieSlice = _source.getSlice(_frame, _angleIndex); _arg1.bitmapData = _local4.bitmapData; _arg1.x = (_arg2 - _local4.x); _arg1.y = (_arg3 - _local4.y); } public function forwardLoop():void{ _playhead = ((_playhead + frameSpeed) % _source.totalFrames); _frame = int(_playhead); } public function get totalFrames():int{ return (_source.totalFrames); } public function renderToBitmapData(_arg1:BitmapData, _arg2:Point):void{ var _local3:BitmapData = _source.getBitmapData(_frame, _angleIndex); _arg1.copyPixels(_local3, _local3.rect, _arg2, null, null, true); } public function get angle():Number{ return (_angle); } public function set frame(_arg1:int):void{ _frame = (_playhead = _arg1); } public function get source():BitmapMovie{ return (_source); } public function backward():void{ _playhead = (_playhead - frameSpeed); _frame = int(_playhead); } public function set angle(_arg1:Number):void{ _angle = _arg1; _angleIndex = (((_angle % PI2) / PI2) * _source.angles); if (_angleIndex < 0){ _angleIndex = (_angleIndex + _source.angles); }; } public function get displayAngle():Number{ return (((_angleIndex / _source.angles) * PI2)); } public function get frame():int{ return (_frame); } public function set source(_arg1:BitmapMovie):void{ _source = _arg1; } public function get bitmapData():BitmapData{ return (_source.getBitmapData(_frame, _angleIndex)); } public function set angleIndex(_arg1:int):void{ _angleIndex = _arg1; if (_angleIndex < 0){ _angleIndex = (_angleIndex + _source.angles); }; _angle = ((_angleIndex / _source.angles) * PI2); } public function get angleIndex():int{ return (_angleIndex); } } }//package com.malee.quickfx.display.bitmap
Section 256
//BitmapMovieFrame (com.malee.quickfx.display.bitmap.BitmapMovieFrame) package com.malee.quickfx.display.bitmap { import flash.display.*; public class BitmapMovieFrame { private var _slices:Array; private static const PI2:Number = 6.28318530717959; public function BitmapMovieFrame(_arg1:DisplayObject, _arg2:BitmapMatrix, _arg3:BitmapOptions){ createSlices(_arg1, _arg2, _arg3); } public function getSlice(_arg1:int):BitmapMovieSlice{ return (_slices[_arg1]); } private function createSlices(_arg1:DisplayObject, _arg2:BitmapMatrix, _arg3:BitmapOptions):void{ var _local4:int; var _local6:Number; var _local7:Number; var _local8:Number; _slices = new Array(_arg2.angles); var _local5:int = _slices.length; _local4 = 0; while (_local4 < _local5) { _local6 = (_local4 / _local5); _local7 = (_local6 * PI2); _local8 = (_local6 * 360); _arg1.rotation = _local8; _slices[_local4] = new BitmapMovieSlice(_arg1, _arg2, _arg3, _local7); _local4++; }; } public function getBitmapData(_arg1:int):BitmapData{ return (_slices[_arg1].bitmapData); } } }//package com.malee.quickfx.display.bitmap
Section 257
//BitmapMovieSlice (com.malee.quickfx.display.bitmap.BitmapMovieSlice) package com.malee.quickfx.display.bitmap { import flash.display.*; import flash.geom.*; import flash.filters.*; public class BitmapMovieSlice { private var _height:int; private var _width:int; private var _bitmapData:BitmapData; private var _x:int; private var _y:int; private var _angle:Number; public function BitmapMovieSlice(_arg1:DisplayObject, _arg2:BitmapMatrix, _arg3:BitmapOptions, _arg4:Number){ createBitmapData(_arg1, _arg2, _arg3, _arg4); } public function get y():int{ return (_y); } public function get angle():Number{ return (_angle); } private function createNormal(_arg1:DisplayObject, _arg2:BitmapMatrix, _arg3:BitmapOptions):void{ draw(_arg1, getObjectBounds(_arg1), _arg2, _arg3); } public function get rect():Rectangle{ return (_bitmapData.rect); } private function getObjectBounds(_arg1:DisplayObject):Rectangle{ var _local2:Rectangle; var _local6:DisplayObjectContainer; var _local7:int; var _local3:Sprite = new Sprite(); var _local4:Number = _arg1.x; var _local5:Number = _arg1.y; if (_arg1.parent != null){ _local6 = _arg1.parent; _local7 = _local6.getChildIndex(_arg1); _local3.addChild(_arg1); _arg1.x = 0; _arg1.y = 0; _local2 = _arg1.getBounds(_local3); _local6.addChildAt(_arg1, _local7); } else { _arg1.x = 0; _arg1.y = 0; _local2 = _arg1.getBounds(_local3); }; _arg1.x = _local4; _arg1.y = _local5; return (_local2); } private function createFiltered(_arg1:DisplayObject, _arg2:BitmapMatrix, _arg3:BitmapOptions):void{ var _local7:Rectangle; var _local8:int; var _local12:BitmapFilter; var _local4:Rectangle = getObjectBounds(_arg1); var _local5:BitmapData = new BitmapData(_local4.width, _local4.height, false, 0); var _local6:Rectangle = _local4.clone(); var _local9:int = _arg1.filters.length; _local8 = 0; while (_local8 < _local9) { _local12 = (_arg1.filters[_local8] as BitmapFilter); if (_local12 != null){ _local7 = _local5.generateFilterRect(_local5.rect, _local12); _local6.x = (_local6.x + _local7.x); _local6.y = (_local6.y + _local7.y); _local6.width = (_local6.width + (_local7.width - _local5.width)); _local6.height = (_local6.height + (_local7.height - _local5.height)); }; _local8++; }; _local5.dispose(); _local5 = null; var _local10:Matrix = new Matrix(); _local10.rotate(_angle); _local10.translate(-(_local6.x), -(_local6.y)); _local5 = new BitmapData(_local6.width, _local6.height, true, 0); _local5.draw(_arg1, _local10); var _local11:Rectangle = _local5.getColorBoundsRect(4294967295, 0, false); _local5.dispose(); _local5 = null; _local4.x = (_local6.x + _local11.x); _local4.y = (_local6.y + _local11.y); _local4.width = _local11.width; _local4.height = _local11.height; draw(_arg1, _local4, _arg2, _arg3); } public function get width():int{ return (_width); } public function get bitmapData():BitmapData{ return (_bitmapData); } public function createBitmapData(_arg1:DisplayObject, _arg2:BitmapMatrix, _arg3:BitmapOptions, _arg4:Number):void{ if (_bitmapData != null){ _bitmapData.dispose(); _bitmapData = null; }; _angle = _arg4; if (_arg1.filters.length > 0){ createFiltered(_arg1, _arg2, _arg3); } else { createNormal(_arg1, _arg2, _arg3); }; } public function get height():int{ return (_height); } private function draw(_arg1:DisplayObject, _arg2:Rectangle, _arg3:BitmapMatrix, _arg4:BitmapOptions):void{ var _local5:Matrix; if ((((_arg2.width > 0)) && ((_arg2.height > 0)))){ _local5 = new Matrix(); _x = ((-(_arg2.x) + _arg3.x) * _arg3.scaleX); _y = ((-(_arg2.y) + _arg3.y) * _arg3.scaleY); _width = (_arg2.width * _arg3.scaleX); _height = (_arg2.height * _arg3.scaleY); _local5.scale(_arg3.scaleX, _arg3.scaleY); _local5.rotate(_angle); _local5.translate(_x, _y); _bitmapData = new BitmapData(_width, _height, _arg4.transparent, _arg4.color); _bitmapData.draw(_arg1, _local5, _arg4.colorTransform, _arg4.blendMode, _arg4.clipRect, _arg4.smoothing); }; } public function get x():int{ return (_x); } } }//package com.malee.quickfx.display.bitmap
Section 258
//BitmapOptions (com.malee.quickfx.display.bitmap.BitmapOptions) package com.malee.quickfx.display.bitmap { import flash.geom.*; public class BitmapOptions { public var color:uint; public var colorTransform:ColorTransform; public var blendMode:String; public var transparent:Boolean; public var smoothing:Boolean; public var clipRect:Rectangle; public function BitmapOptions(_arg1:Boolean=false, _arg2:ColorTransform=null, _arg3:String=null){ this.smoothing = _arg1; this.blendMode = _arg3; this.colorTransform = _arg2; color = 0; clipRect = null; transparent = true; } } }//package com.malee.quickfx.display.bitmap
Section 259
//SoapMenu (com.malee.soap.SoapMenu) package com.malee.soap { import flash.events.*; import flash.display.*; import flash.net.*; import flash.ui.*; public class SoapMenu { private var _context:ContextMenu; private var _object:InteractiveObject; public function SoapMenu(_arg1:DisplayObject):void{ _object = (_arg1 as InteractiveObject); _context = new ContextMenu(); _context.hideBuiltInItems(); _object.contextMenu = _context; init(); } public function addItem(_arg1:String):void{ var _local2:ContextMenuItem = new ContextMenuItem(_arg1); _local2.addEventListener(ContextMenuEvent.MENU_ITEM_SELECT, selectItem); _context.customItems.push(_local2); } private function selectItem(_arg1:ContextMenuEvent):void{ switch (_arg1.target.caption){ case "Game by Soap Creative": linkToSoap(); break; case "High Quality": toggleQuality("HIGH"); break; case "Low Quality": toggleQuality("LOW"); break; }; } private function linkToSoap():void{ SoapTracking.trackSite("click", "visit_SOAP"); navigateToURL(new URLRequest("http://www.soap.com.au"), "_blank"); } private function toggleQuality(_arg1:String):void{ _object.stage.quality = _arg1; } private function init():void{ addItem("Game by Soap Creative"); addItem("High Quality"); addItem("Low Quality"); } } }//package com.malee.soap
Section 260
//SoapTracking (com.malee.soap.SoapTracking) package com.malee.soap { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; public class SoapTracking { private static var _shared:SharedObject; public static var clientId:int; private static var siteEVTTime:Number; private static var _request:URLRequest; public static var projectId:int; private static var _tracking:URLLoader; private static var siteStartTime:Number; private static var returnVisitor:int; private static function onError(_arg1:IOErrorEvent):void{ trace("Tracking Error"); } private static function sendSiteStats(_arg1:DisplayObject):void{ var _local2:URLRequest = new URLRequest(); var _local3:URLLoader = new URLLoader(); var _local4:URLVariables = new URLVariables(); _local2.url = "http://stats.soap.com.au/usrinfo.php"; _local2.method = URLRequestMethod.POST; var _local5:String = _arg1.loaderInfo.url; if (_local5.substring(0, 4) == "http"){ _local4.url = _local5; } else { _local4.url = "local"; }; _local4.clientId = clientId; _local4.projectId = projectId; _local2.data = _local4; _local3.load(_local2); } private static function initTracking():void{ siteStartTime = getTimer(); siteEVTTime = getTimer(); checkReturn(); } private static function onComplete(_arg1:Event):void{ } public static function trackSite(_arg1:String, ... _args):void{ if (_tracking == null){ trace("ERROR - SoapTracking has not been Initalised"); return; }; var _local3:String = _args.join(","); var _local4:int; switch (_arg1){ case "impression": break; case "click": break; case "over": break; case "durationFromInit": _local4 = ((getTimer() - siteStartTime) / 1000); break; case "durationEvent": _local4 = ((getTimer() - siteEVTTime) / 1000); break; default: _arg1 = ""; }; var _local5:URLVariables = new URLVariables(); _local5["return"] = returnVisitor; _local5.clientId = clientId; _local5.projectId = projectId; _local5.actionType = _arg1; _local5.pageId = _local3; _local5.time = _local4; _local5.user = _shared.data.userID; _request.data = _local5; _tracking.load(_request); } private static function checkReturn():void{ returnVisitor = ((_shared.data.userID == undefined)) ? 0 : 1; _shared.data.userID = (Math.random() * 9999999999); } public static function INIT(_arg1:int, _arg2:int, _arg3:DisplayObject):void{ clientId = _arg1; projectId = _arg2; _tracking = new URLLoader(); _request = new URLRequest(); _shared = SharedObject.getLocal(((("siteTrackingStats_" + _arg1) + "_") + _arg2), "/"); _request.url = "http://stats.soap.com.au/pgtrack.php"; _request.method = URLRequestMethod.POST; _tracking.dataFormat = URLLoaderDataFormat.TEXT; _tracking.addEventListener(Event.COMPLETE, onComplete); _tracking.addEventListener(IOErrorEvent.IO_ERROR, onError); initTracking(); sendSiteStats(_arg3); } } }//package com.malee.soap
Section 261
//TimeKeeper (com.markfennell.display.TimeKeeper) package com.markfennell.display { import flash.utils.*; public class TimeKeeper { private var oldTime:Number;// = 0 private var countdownTime:Number;// = 0 private var isCountdown:Boolean;// = false private var totalTime:Number;// = 0 private var pause:Boolean;// = false public function TimeKeeper(_arg1:Number=0){ if (_arg1 != 0){ isCountdown = true; countdownTime = _arg1; }; this.reset(); } public function stop():void{ if (!this.pause){ this.pause = true; this.totalTime = (this.totalTime + (getTimer() - this.oldTime)); }; } public function getTime(_arg1:int):int{ if (isCountdown){ return ((countdownTime - _arg1)); }; return (_arg1); } public function displayHour():int{ var _local1:int = this.getMili(); var _local2:int = Math.floor((_local1 / 1000)); var _local3:int = Math.floor((_local2 / 60)); var _local4:int = Math.floor((_local3 / 60)); return (_local4); } public function reset():void{ this.oldTime = 0; this.pause = true; this.totalTime = 0; } public function getMili():int{ var _local1:int = this.totalTime; if (!this.pause){ _local1 = (_local1 + (getTimer() - this.oldTime)); }; return (getTime(_local1)); } public function getMins():int{ var _local1:int = (this.totalTime / 1000); if (!this.pause){ _local1 = (_local1 + (((getTimer() - this.oldTime) / 1000) / 60)); }; return (Math.round(getTime(_local1))); } public function addMili(_arg1:int):void{ this.totalTime = Math.max(0, (this.totalTime + _arg1)); } public function start():void{ if (this.pause){ this.pause = false; this.oldTime = getTimer(); }; } public function displaySec():int{ var _local1:int = this.getMili(); var _local2:int = Math.floor((_local1 / 1000)); _local2 = (_local2 % 60); return (_local2); } public function elapsedTime():int{ if (isCountdown){ return ((countdownTime - getMili())); }; return (getMili()); } public function displayTime():String{ var _local1:String = three(displayMili()); _local1 = _local1.substring(0, 3); var _local2:String = ((((displayMin() + "'") + two(displaySec())) + "\"") + _local1); return (_local2); } public function displayMin():int{ var _local1:int = this.getMili(); var _local2:int = Math.floor((_local1 / 1000)); var _local3:int = Math.floor((_local2 / 60)); _local3 = (_local3 % 60); return (_local3); } public function getSecs():int{ var _local1:int = (this.totalTime / 1000); if (!this.pause){ _local1 = (_local1 + ((getTimer() - this.oldTime) / 1000)); }; if (isCountdown){ return (((countdownTime / 1000) - _local1)); }; return (_local1); } public function subMili(_arg1:int):void{ this.totalTime = (this.totalTime - _arg1); } public function displayMili():int{ var _local1:int = this.getMili(); _local1 = (_local1 % 1000); return (_local1); } public static function display(_arg1:Number, _arg2:String="'", _arg3:String="""):String{ var _local4:int = Math.floor((_arg1 / 1000)); var _local5:int = Math.floor((_local4 / 60)); return ((((((_local5 % 60) + _arg2) + two((_local4 % 60))) + _arg3) + three((_arg1 % 1000)))); } private static function two(_arg1:int):String{ return ((((_arg1)>9) ? "" : "0" + _arg1)); } private static function three(_arg1:int):String{ return (((((_arg1)>99) ? "" : "0" + ((_arg1)>9) ? "" : "0") + _arg1)); } } }//package com.markfennell.display
Section 262
//FoleyOptions (com.markfennell.sound.FoleyOptions) package com.markfennell.sound { public class FoleyOptions { public static var ONCE:String = "once"; public static var LOOP:String = "loop"; public static var SINGLE:String = "single"; } }//package com.markfennell.sound
Section 263
//FoleySound (com.markfennell.sound.FoleySound) package com.markfennell.sound { import flash.events.*; import flash.geom.*; import flash.media.*; public class FoleySound extends SoundPlayer { private var m_hasPlayed:Boolean;// = false private var m_range:Number; private var m_options:String; private var m_source:IFoleySource; public function FoleySound(_arg1:Sound, _arg2:Number, _arg3:IFoleySource, _arg4:String):void{ super(_arg1, false); m_range = _arg2; m_source = _arg3; m_options = _arg4; } public function render(_arg1:Number, _arg2:Point):void{ var _local3:Number; var _local4:Number = Point.distance(_arg2, m_source.point); if (m_source.isOn){ if (_local4 < m_range){ _local3 = ((_arg1 * (m_range - _local4)) / m_range); if (m_soundState == PLAYING){ volume = _local3; } else { if (m_options == FoleyOptions.ONCE){ if (m_hasPlayed){ return; }; play(_local3, 1); } else { play(_local3, 999); }; }; m_hasPlayed = true; } else { if (m_soundState == STOPPED){ return; }; if (m_options == FoleyOptions.SINGLE){ m_loops = 1; } else { stop(); }; }; } else { if (m_soundState == STOPPED){ return; }; if (m_options == FoleyOptions.SINGLE){ m_loops = 1; } else { stop(); }; }; } public static function stopSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { if (item.stoppable){ item.destroy(); soundsDictionary[item] = null; }; } catch(e:Error) { }; }; } } }//package com.markfennell.sound
Section 264
//IFoleySource (com.markfennell.sound.IFoleySource) package com.markfennell.sound { import flash.geom.*; public interface IFoleySource { function get point():Point; function get isOn():Boolean; } }//package com.markfennell.sound
Section 265
//SoundEvent (com.markfennell.sound.SoundEvent) package com.markfennell.sound { import flash.events.*; public class SoundEvent extends Event { public var force:Boolean; public var delay:Number; public var volume:Number; public var name:String; public var loops:int; public static var DIALOG:String = "Sound Dialog"; public static var EFFECT:String = "Sound Effect"; public function SoundEvent(_arg1:String, _arg2:String, _arg3:Number, _arg4:int=1, _arg5:Boolean=false, _arg6:Number=0){ super(_arg1, true, true); name = _arg2; volume = _arg3; loops = _arg4; force = _arg5; delay = _arg6; } override public function clone():Event{ return (new SoundEvent(type, name, volume, loops, force, delay)); } } }//package com.markfennell.sound
Section 266
//SoundPlayer (com.markfennell.sound.SoundPlayer) package com.markfennell.sound { import flash.events.*; import flash.utils.*; import flash.media.*; public class SoundPlayer extends EventDispatcher { protected var m_soundChannel:SoundChannel; public var stoppable:Boolean;// = true protected var m_timeout:int; public var m_soundState:String; protected var m_loops:int; protected var m_volume:Number; protected var m_destroy:Boolean; protected var m_position:Number;// = 0 protected var m_sound:Sound; protected static var soundsDictionary:Dictionary = new Dictionary(); public static var STOPPED:String = "stopped"; public static var PAUSED:String = "paused"; public static var FINISHED:String = "finished"; public static var INITIALIZED:String = "init"; public static var PLAYING:String = "playing"; public static var COMPLETE:String = "complete"; public function SoundPlayer(_arg1:Sound, _arg2:Boolean=true):void{ m_soundChannel = new SoundChannel(); super(); m_sound = _arg1; m_soundState = INITIALIZED; soundsDictionary[this] = this; m_destroy = _arg2; } public function get soundState():String{ return (m_soundState); } public function play(_arg1:Number=1, _arg2:int=1, _arg3:Number=0):void{ var a_volume = _arg1; var a_loops = _arg2; var a_delay = _arg3; try { clearTimeout(m_timeout); if (a_delay != 0){ m_timeout = setTimeout(play, (a_delay * 1000), a_volume, a_loops, 0); return; }; if ((((m_soundState == PLAYING)) || ((m_soundChannel == null)))){ return; }; m_volume = a_volume; m_loops = a_loops; m_soundChannel.stop(); m_soundChannel = m_sound.play(m_position); m_soundChannel.addEventListener(Event.SOUND_COMPLETE, soundComplete); m_soundState = PLAYING; volume = m_volume; } catch(e:Error) { }; } public function set soundState(_arg1:String):void{ m_soundState = _arg1; } public function pause():void{ if (m_soundState == INITIALIZED){ return; }; m_position = m_soundChannel.position; m_soundChannel.stop(); m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); m_soundState = PAUSED; } public function stop():void{ m_position = 0; m_soundState = STOPPED; if (m_soundChannel){ m_soundChannel.stop(); m_soundChannel.removeEventListener(Event.SOUND_COMPLETE, soundComplete); }; } public function get leftPeak():Number{ return (m_soundChannel.leftPeak); } public function set position(_arg1:Number):void{ var _local2 = (m_soundState == PLAYING); pause(); m_position = _arg1; if (_local2){ play(); }; } public function get volume():Number{ return (m_soundChannel.soundTransform.volume); } public function get rightPeak():Number{ return (m_soundChannel.rightPeak); } public function destroy():void{ stop(); clearTimeout(m_timeout); m_sound = null; m_soundChannel = null; soundsDictionary[this] = null; } public function get duration():Number{ return (m_sound.length); } public function get position():Number{ return (m_soundChannel.position); } public function resume():void{ play(m_volume, m_loops); } public function get playing():Boolean{ return ((m_soundState == PLAYING)); } public function set volume(_arg1:Number):void{ if (m_soundChannel == null){ return; }; var _local2:SoundTransform = m_soundChannel.soundTransform; _local2.volume = _arg1; m_soundChannel.soundTransform = _local2; } private function soundComplete(_arg1:Event):void{ m_loops--; m_soundState = FINISHED; if (m_loops == 0){ dispatchEvent(new Event(COMPLETE)); if (m_destroy){ destroy(); }; } else { play(volume, m_loops); }; } public static function stopSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { if (item.stoppable){ item.destroy(); soundsDictionary[item] = null; }; } catch(e:Error) { }; }; } public static function pauseSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { if (soundsDictionary[item].stoppable){ soundsDictionary[item].pause(); }; } catch(e:Error) { }; }; } public static function resumeSounds():void{ var item:SoundPlayer; for each (item in soundsDictionary) { try { soundsDictionary[item].resume(); } catch(e:Error) { }; }; } } }//package com.markfennell.sound
Section 267
//TEA (com.meychi.ascrypt3.TEA) package com.meychi.ascrypt3 { public class TEA { public function decrypt(_arg1:String, _arg2:String):String{ var _local9:Number; var _local10:Number; var _local13:Number; var _local3:Array = charsToLongs(hexToChars(_arg1)); var _local4:Array = charsToLongs(strToChars(_arg2)); var _local5:Number = _local3.length; if (_local5 == 0){ return (""); }; var _local6:Number = _local3[(_local5 - 1)]; var _local7:Number = _local3[0]; var _local8:Number = 2654435769; var _local11:Number = Math.floor((6 + (52 / _local5))); var _local12:Number = (_local11 * _local8); while (_local12 != 0) { _local10 = ((_local12 >>> 2) & 3); _local13 = (_local5 - 1); while (_local13 > 0) { _local6 = _local3[(_local13 - 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local7 = (_local3[_local13] = (_local3[_local13] - _local9)); _local13--; }; _local6 = _local3[(_local5 - 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local7 = (_local3[0] = (_local3[0] - _local9)); _local12 = (_local12 - _local8); }; return (charsToStr(longsToChars(_local3))); } public function encrypt(_arg1:String, _arg2:String):String{ var _local9:Number; var _local10:Number; var _local13:Number; var _local3:Array = charsToLongs(strToChars(_arg1)); var _local4:Array = charsToLongs(strToChars(_arg2)); var _local5:Number = _local3.length; if (_local5 == 0){ return (""); }; if (_local5 == 1){ var _temp1 = _local5; _local5 = (_local5 + 1); var _local14 = _temp1; _local3[_local14] = 0; }; var _local6:Number = _local3[(_local5 - 1)]; var _local7:Number = _local3[0]; var _local8:Number = 2654435769; var _local11:Number = Math.floor((6 + (52 / _local5))); var _local12:Number = 0; while (_local11-- > 0) { _local12 = (_local12 + _local8); _local10 = ((_local12 >>> 2) & 3); _local13 = 0; while (_local13 < (_local5 - 1)) { _local7 = _local3[(_local13 + 1)]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local6 = (_local3[_local13] = (_local3[_local13] + _local9)); _local13++; }; _local7 = _local3[0]; _local9 = ((((_local6 >>> 5) ^ (_local7 << 2)) + ((_local7 >>> 3) ^ (_local6 << 4))) ^ ((_local12 ^ _local7) + (_local4[((_local13 & 3) ^ _local10)] ^ _local6))); _local6 = (_local3[(_local5 - 1)] = (_local3[(_local5 - 1)] + _local9)); }; return (charsToHex(longsToChars(_local3))); } private static function strToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push(_arg1.charCodeAt(_local3)); _local3++; }; return (_local2); } private static function charsToHex(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Array = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "a", "b", "c", "d", "e", "f"); var _local4:Number = 0; while (_local4 < _arg1.length) { _local2 = (_local2 + (_local3[(_arg1[_local4] >> 4)] + _local3[(_arg1[_local4] & 15)])); _local4++; }; return (_local2); } private static function hexToChars(_arg1:String):Array{ var _local2:Array = new Array(); var _local3:Number = ((_arg1.substr(0, 2))=="0x") ? 2 : 0; while (_local3 < _arg1.length) { _local2.push(parseInt(_arg1.substr(_local3, 2), 16)); _local3 = (_local3 + 2); }; return (_local2); } private static function charsToStr(_arg1:Array):String{ var _local2:String = new String(""); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2 = (_local2 + String.fromCharCode(_arg1[_local3])); _local3++; }; return (_local2); } private static function longsToChars(_arg1:Array):Array{ var _local2:Array = new Array(); var _local3:Number = 0; while (_local3 < _arg1.length) { _local2.push((_arg1[_local3] & 0xFF), ((_arg1[_local3] >>> 8) & 0xFF), ((_arg1[_local3] >>> 16) & 0xFF), ((_arg1[_local3] >>> 24) & 0xFF)); _local3++; }; return (_local2); } private static function charsToLongs(_arg1:Array):Array{ var _local2:Array = new Array(Math.ceil((_arg1.length / 4))); var _local3:Number = 0; while (_local3 < _local2.length) { _local2[_local3] = (((_arg1[(_local3 * 4)] + (_arg1[((_local3 * 4) + 1)] << 8)) + (_arg1[((_local3 * 4) + 2)] << 16)) + (_arg1[((_local3 * 4) + 3)] << 24)); _local3++; }; return (_local2); } } }//package com.meychi.ascrypt3
Section 268
//Console (console.Console) package console { import flash.events.*; import com.markfennell.sound.*; import game.events.*; import flash.utils.*; import net.*; import hud.*; import org.casalib.display.*; import interfaces.*; import flash.net.*; import org.casalib.util.*; import pages.*; import game.*; import com.google.analytics.*; public class Console extends CasaSprite { private var m_hud:MarvelHudController; private var m_currentState:String; private var m_currentClass:IConsoleSection;// = null private var m_nextClass:IConsoleSection;// = null private var m_callBack:Function; private var m_soundController:SoundController; private var m_animating:Boolean;// = false private var m_user:User; public static var firstPlay:Boolean = true; public static var exitShowing:Boolean = false; public static var GoogleAnalytics:AnalyticsTracker; public static var paused:Boolean = false; public static var pauseShowing:Boolean = false; public function Console(){ m_soundController = new SoundController(); super(); m_hud = new MarvelHudController(); addChild(m_hud); GoogleAnalytics = new GATracker(StageReference.getStage(), Constants.GOOGLE, "AS3", false); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_CREDITS, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_HELP, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_INTRO, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_INTRO_VIDEO, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_MORE, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_PLAYGAME, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_CHARACTERS, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_SHARE, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.DISPLAY_MEDALS, handleConsoleEvent); addEventListener(ConsoleEvent.TRANSITION_COMPLETE, handleTransitionComplete); GameBroadcaster.addEventListener(ConsoleEvent.PAUSE, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.EXIT, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.EXIT_ATTEMPT, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.EXIT_ATTEMPT_CANCEL, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.PAUSE_ENABLED, handleConsoleEvent); GameBroadcaster.addEventListener(ConsoleEvent.PAUSE_DISABLED, handleConsoleEvent); handleConsoleEvent(new ConsoleEvent(ConsoleEvent.DISPLAY_INTRO)); GameBroadcaster.addEventListener(SoundEvent.EFFECT, handleSoundEffect); GameBroadcaster.addEventListener(ConsoleEvent.GAME_COMPLETE, handleGameComplete); } override public function destroy():void{ GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_CREDITS, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_HELP, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_INTRO, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_MORE, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_PLAYGAME, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_CHARACTERS, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.DISPLAY_SHARE, handleConsoleEvent); GameBroadcaster.removeEventListener(ConsoleEvent.TRANSITION_COMPLETE, handleTransitionComplete); GameBroadcaster.removeEventListener(SoundEvent.EFFECT, handleSoundEffect); GameBroadcaster.removeEventListener(ConsoleEvent.GAME_COMPLETE, handleGameComplete); m_currentClass.destroy(); m_nextClass.destroy(); super.destroy(); } private function handleConsoleEvent(_arg1:ConsoleEvent):void{ var e = _arg1; trace(((((("HandleConsoleEvent " + e.type) + " currentState ") + m_currentState) + " animating: ") + m_animating)); if ((((e.type == m_currentState)) || (m_animating))){ return; }; m_hud.setScore(); m_hud.updatePanel(); if (((!((m_callBack == null))) && (!((e.type == ConsoleEvent.DISPLAY_MORE))))){ m_callBack(); m_callBack = null; }; switch (e.type){ case ConsoleEvent.PAUSE: GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.PAUSE_GAME)); break; case ConsoleEvent.EXIT_ATTEMPT: GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.EXIT_ATTEMPT)); break; case ConsoleEvent.DISPLAY_INTRO: SoundController.getInstance().start_music(0); SoundController.getInstance().pause_music(false); m_hud.enableHud(); m_currentState = ConsoleEvent.DISPLAY_INTRO; m_nextClass = new Title(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); m_animating = true; setHudToTop(); GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SHOW_MENU_HUD_FRAME)); break; case ConsoleEvent.DISPLAY_INTRO_VIDEO: SoundController.getInstance().pause_music(true); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "introVideo", "start"); m_currentState = ConsoleEvent.DISPLAY_CHARACTERS; m_nextClass = new IntroVideo(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); m_animating = true; m_callBack = m_nextClass.hide; setHudToTop(); break; case ConsoleEvent.DISPLAY_HELP: Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "menu", "help"); m_currentState = ConsoleEvent.DISPLAY_HELP; m_nextClass = new Help(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); m_callBack = m_nextClass.hide; m_animating = true; setHudToTop(); break; case ConsoleEvent.DISPLAY_MEDALS: Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "menu", "achievements"); m_currentState = ConsoleEvent.DISPLAY_MEDALS; m_nextClass = new Medals(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); m_animating = true; m_callBack = m_nextClass.hide; setHudToTop(); break; case ConsoleEvent.DISPLAY_CHARACTERS: Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "menu", "characters"); m_currentState = ConsoleEvent.DISPLAY_CHARACTERS; m_nextClass = new Characters(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); m_animating = true; m_callBack = m_nextClass.hide; setHudToTop(); break; case ConsoleEvent.DISPLAY_PLAYGAME: paused = false; pauseShowing = false; exitShowing = false; Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "game", "start"); SoundController.getInstance().pause_music(false); SoundController.getInstance().start_music(1); displayGame(); break; case ConsoleEvent.DISPLAY_CREDITS: if (m_currentState == ConsoleEvent.DISPLAY_CREDITS){ return; }; Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "menu", "credits"); SoundController.getInstance().start_music(0); m_currentState = ConsoleEvent.DISPLAY_CREDITS; m_nextClass = new Credits(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); m_animating = true; if (!m_hud.showingTitleButtons){ m_hud.hideInGameButtons(); setTimeout(m_hud.showTitleButtons, 500); }; setHudToTop(); break; case ConsoleEvent.DISPLAY_MORE: trace("More Games"); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "linkOut", "moreGames"); navigateToURL(Constants.URL_MOREGAMES, "_blank"); break; case ConsoleEvent.DISPLAY_SHARE: Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "menu", "share"); navigateToURL(Constants.URL_SEND_TO_FRIEND, "_blank"); try { } catch(e:TypeError) { trace("could not open clearspring"); navigateToURL(Constants.URL_MOREGAMES, "_blank"); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "linkOut", "moreGamesShare"); }; break; case ConsoleEvent.PAUSE_ENABLED: trace("Console > PAUSE_ENABLED"); m_hud.enableHud(); break; case ConsoleEvent.PAUSE_DISABLED: trace("Console > PAUSE_DISABLED"); m_hud.disableHud(); break; }; } private function setHudToTop():void{ setChildIndex(m_hud, (numChildren - 1)); } private function handleTransitionComplete(_arg1:ConsoleEvent=null):void{ if (m_currentClass){ m_currentClass.destroy(); }; m_currentClass = m_nextClass; if ((((m_currentState == ConsoleEvent.DISPLAY_INTRO)) && (!((_arg1 == null))))){ m_hud.showTitleButtons(); }; m_animating = false; } private function handleGameComplete(_arg1:Event):void{ m_currentState = ConsoleEvent.GAME_COMPLETE; } private function displayGame():void{ m_animating = true; handleTransitionComplete(); m_currentState = ConsoleEvent.DISPLAY_PLAYGAME; m_nextClass = new GameController(); addChild((m_nextClass as CasaSprite)); m_nextClass.transitionIn(); setHudToTop(); } private function handleSoundEffect(_arg1:SoundEvent):void{ switch (_arg1.type){ case SoundEvent.EFFECT: SoundController.getInstance().playSound(_arg1); break; }; } } }//package console
Section 269
//ConsoleEvent (console.ConsoleEvent) package console { import flash.events.*; public class ConsoleEvent extends Event { public var data; public static var DISPLAY_INTRO_VIDEO:String = "ConsoleDisplayIntroVideo"; public static var EXIT_ATTEMPT:String = "GameExitAttempt"; public static var EXIT_ATTEMPT_CANCEL:String = "GameExitAttemptCancel"; public static var DISPLAY_MEDALS:String = "ConsoleDisplayMedals"; public static var EXIT:String = "GameExit"; public static var INITIALIZE_OFF:String = "ConsoleDisplayInitialiseOff"; public static var DISPLAY_PLAYGAME:String = "ConsoleDisplayPlayGame"; public static var DISPLAY_EASTER:String = "ConsoleDisplayEaster"; public static var DISPLAY_LEVELS:String = "ConsoleDisplayLevelSelect"; public static var RESUME:String = "GameResume"; public static var DISPLAY_CHARACTERS:String = "ConsoleDisplayCharacters"; public static var DISPLAY_HELP:String = "ConsoleDisplayHelp"; public static var PAUSE_ENABLED:String = "PauseEnabled"; public static var DISPLAY_GAMEOVER:String = "ConsoleDisplayGameover"; public static var PAUSE_DISABLED:String = "PauseDisabled"; public static var DISPLAY_MORE:String = "ConsoleDisplayMore"; public static var PAUSE:String = "GamePause"; public static var DISPLAY_EMBED:String = "ConsoleDisplayEmbed"; public static var DISPLAY_CREDITS:String = "ConsoleDisplayCredits"; public static var STARTED:String = "GameStarted"; public static var DISPLAY_SHARE:String = "ConsoleDisplaySendToFriend"; public static var TRANSITION_COMPLETE:String = "Transition COmplete"; public static var DISPLAY_SCORES:String = "ConsoleDisplayScores"; public static var GAME_COMPLETE:String = "Game Completed"; public static var DISPLAY_COMBOS:String = "ConsoleDisplayCombos"; public static var DISPLAY_PRIZES:String = "ConsoleDisplayPrizes"; public static var INITIALIZE_ON:String = "ConsoleDisplayInitialiseOn"; public static var DISPLAY_INTRO:String = "ConsoleDisplayIntro"; public static var DISPLAY_VIDEO:String = "ConsoleDisplayVideo"; public function ConsoleEvent(_arg1:String, _arg2=null){ super(_arg1, true, true); data = _arg2; } override public function clone():Event{ return (new ConsoleEvent(type, data)); } } }//package console
Section 270
//Quadratic (fl.motion.easing.Quadratic) package fl.motion.easing { public class Quadratic { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((-(_arg3) * _arg1) * (_arg1 - 2)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return ((((_arg3 * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return (((((_arg3 / 2) * _arg1) * _arg1) + _arg2)); }; --_arg1; return ((((-(_arg3) / 2) * ((_arg1 * (_arg1 - 2)) - 1)) + _arg2)); } } }//package fl.motion.easing
Section 271
//Color (fl.motion.Color) package fl.motion { import flash.display.*; import flash.geom.*; public class Color extends ColorTransform { private var _tintColor:Number;// = 0 private var _tintMultiplier:Number;// = 0 public function Color(_arg1:Number=1, _arg2:Number=1, _arg3:Number=1, _arg4:Number=1, _arg5:Number=0, _arg6:Number=0, _arg7:Number=0, _arg8:Number=0){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6, _arg7, _arg8); } private function deriveTintColor():uint{ var _local1:Number = (1 / this.tintMultiplier); var _local2:uint = Math.round((this.redOffset * _local1)); var _local3:uint = Math.round((this.greenOffset * _local1)); var _local4:uint = Math.round((this.blueOffset * _local1)); var _local5:uint = (((_local2 << 16) | (_local3 << 8)) | _local4); return (_local5); } public function set brightness(_arg1:Number):void{ if (_arg1 > 1){ _arg1 = 1; } else { if (_arg1 < -1){ _arg1 = -1; }; }; var _local2:Number = (1 - Math.abs(_arg1)); var _local3:Number = 0; if (_arg1 > 0){ _local3 = (_arg1 * 0xFF); }; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = _local2)); this.redOffset = (this.greenOffset = (this.blueOffset = _local3)); } private function parseXML(_arg1:XML=null):Color{ var _local3:XML; var _local4:String; var _local5:uint; if (!_arg1){ return (this); }; var _local2:XML = _arg1.elements()[0]; if (!_local2){ return (this); }; for each (_local3 in _local2.attributes()) { _local4 = _local3.localName(); if (_local4 == "tintColor"){ _local5 = (Number(_local3.toString()) as uint); this.tintColor = _local5; } else { this[_local4] = Number(_local3.toString()); }; }; return (this); } public function get tintColor():uint{ return (this._tintColor); } public function set tintColor(_arg1:uint):void{ this.setTint(_arg1, this.tintMultiplier); } public function get brightness():Number{ return ((this.redOffset) ? (1 - this.redMultiplier) : (this.redMultiplier - 1)); } public function set tintMultiplier(_arg1:Number):void{ this.setTint(this.tintColor, _arg1); } public function get tintMultiplier():Number{ return (this._tintMultiplier); } public function setTint(_arg1:uint, _arg2:Number):void{ this._tintColor = _arg1; this._tintMultiplier = _arg2; this.redMultiplier = (this.greenMultiplier = (this.blueMultiplier = (1 - _arg2))); var _local3:uint = ((_arg1 >> 16) & 0xFF); var _local4:uint = ((_arg1 >> 8) & 0xFF); var _local5:uint = (_arg1 & 0xFF); this.redOffset = Math.round((_local3 * _arg2)); this.greenOffset = Math.round((_local4 * _arg2)); this.blueOffset = Math.round((_local5 * _arg2)); } public static function interpolateColor(_arg1:uint, _arg2:uint, _arg3:Number):uint{ var _local4:Number = (1 - _arg3); var _local5:uint = ((_arg1 >> 24) & 0xFF); var _local6:uint = ((_arg1 >> 16) & 0xFF); var _local7:uint = ((_arg1 >> 8) & 0xFF); var _local8:uint = (_arg1 & 0xFF); var _local9:uint = ((_arg2 >> 24) & 0xFF); var _local10:uint = ((_arg2 >> 16) & 0xFF); var _local11:uint = ((_arg2 >> 8) & 0xFF); var _local12:uint = (_arg2 & 0xFF); var _local13:uint = ((_local5 * _local4) + (_local9 * _arg3)); var _local14:uint = ((_local6 * _local4) + (_local10 * _arg3)); var _local15:uint = ((_local7 * _local4) + (_local11 * _arg3)); var _local16:uint = ((_local8 * _local4) + (_local12 * _arg3)); var _local17:uint = ((((_local13 << 24) | (_local14 << 16)) | (_local15 << 8)) | _local16); return (_local17); } public static function interpolateTransform(_arg1:ColorTransform, _arg2:ColorTransform, _arg3:Number):ColorTransform{ var _local4:Number = (1 - _arg3); var _local5:ColorTransform = new ColorTransform(((_arg1.redMultiplier * _local4) + (_arg2.redMultiplier * _arg3)), ((_arg1.greenMultiplier * _local4) + (_arg2.greenMultiplier * _arg3)), ((_arg1.blueMultiplier * _local4) + (_arg2.blueMultiplier * _arg3)), ((_arg1.alphaMultiplier * _local4) + (_arg2.alphaMultiplier * _arg3)), ((_arg1.redOffset * _local4) + (_arg2.redOffset * _arg3)), ((_arg1.greenOffset * _local4) + (_arg2.greenOffset * _arg3)), ((_arg1.blueOffset * _local4) + (_arg2.blueOffset * _arg3)), ((_arg1.alphaOffset * _local4) + (_arg2.alphaOffset * _arg3))); return (_local5); } public static function fromXML(_arg1:XML):Color{ return (Color(new (Color).parseXML(_arg1))); } } }//package fl.motion
Section 272
//Achievement (game.achievements.Achievement) package game.achievements { import flash.events.*; public class Achievement extends EventDispatcher { public var unlocked:Boolean; public var title:String; public var description:String; public function Achievement(_arg1:String, _arg2:String, _arg3:Boolean){ title = _arg1; description = _arg2; unlocked = _arg3; } } }//package game.achievements
Section 273
//AchievementController (game.achievements.AchievementController) package game.achievements { import flash.events.*; import game.events.*; import flash.utils.*; import game.enemies.*; import game.towers.*; import flash.net.*; public class AchievementController extends EventDispatcher { private var m_difficulty:int; private var m_currentLives:int; private var m_hostName:String;// = "SuperHeroSquad" private var m_so:SharedObject; private var m_gameWon:Boolean; private var m_initialLives:int; public static const MASTER_DEFENDER:String = "masterDefender"; public static const ONE_GOLD_TOWER:String = "oneGoldTower"; public static const HIGH_SCORE:String = "highScore"; public static const MODOK:String = "modok"; public static const MILLIONAIRE:String = "millionaire"; public static const DEFENDER:String = "defender"; public static const DRDOOM:String = "drdoom"; public static const EPIC_VICTORY:String = "epicVictory"; public static const CONSTRUCTOR:String = "constructor"; public static const MOLEMAN:String = "moleman"; private static var m_instance:AchievementController = new (AchievementController); ; public function AchievementController(){ if (m_instance){ throw (new Error("Error: AchievementController is a Singleton, and can only be accessed through AchievementController.instance")); }; m_instance = this; } public function forceSharedObjectReset():void{ m_so.data.achievements = null; m_so.data.bestScore = 0; m_so.data.accumulatedMoney = 0; m_so.data.accumulatedTowers = 0; m_so.data.accumulatedScore = 0; m_so.data.accumulatedGameFinishes = 0; m_so.flush(); } private function removeGameListeners():void{ GameBroadcaster.removeEventListener(WaveEvent.WAVE_DEFEATED, waveDefeatedHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler); GameBroadcaster.removeEventListener(TowerEvent.UPGRADE_TOWER, upgradeTowerHandler); GameBroadcaster.removeEventListener(TowerEvent.BUILD_TOWER_COMPLETE, buildTowerCompleteHandler); GameBroadcaster.removeEventListener(GameEvent.LIVES_SET, livesSetHandler); GameBroadcaster.removeEventListener(GameEvent.LIFE_LOST, lifeLostHandler); GameBroadcaster.removeEventListener(GameEvent.GAME_COMPLETE_EVALUATE_ACHIEVEMENTS, gameCompleteHandler); GameBroadcaster.removeEventListener(GameEvent.GAME_WON_DISPLAY, gameWonHandler); } private function unlockAchievement(_arg1:String):void{ var _local2:int = AchievementData.instance.achievementIndexMap[_arg1]; if (!Achievement(AchievementData.instance.achievements[_local2]).unlocked){ Achievement(AchievementData.instance.achievements[_local2]).unlocked = true; trace(((((("AchievementController ACHIEVEMENT UNLOCKED: " + _arg1) + ", id: ") + _local2) + " lookup: ") + AchievementData.instance.achievementIndexMap[_arg1])); }; } private function saveData():void{ var _local1:Array = []; var _local2:int; while (_local2 < AchievementData.instance.achievements.length) { _local1[_local2] = Achievement(AchievementData.instance.achievements[_local2]).unlocked; _local2++; }; m_so.data.achievements = _local1; if (m_so.data.bestScore == null){ m_so.data.bestScore = AchievementData.instance.bestScore; } else { if (AchievementData.instance.bestScore > m_so.data.bestScore){ m_so.data.bestScore = AchievementData.instance.bestScore; }; }; m_so.data.accumulatedMoney = AchievementData.instance.accumulatedMoney; m_so.data.accumulatedTowers = AchievementData.instance.accumulatedTowers; m_so.data.accumulatedScore = AchievementData.instance.accumulatedScore; m_so.data.accumulatedGameFinishes = AchievementData.instance.accumulatedGameFinishes; trace(((((((("AchievementController saving accum money: " + AchievementData.instance.accumulatedMoney) + ", accum towers: ") + AchievementData.instance.accumulatedTowers) + ", accum score: ") + AchievementData.instance.accumulatedScore) + " accum game finishes: ") + AchievementData.instance.accumulatedGameFinishes)); m_so.flush(); } public function endWatchingGame():void{ trace("AchievementController ending watch"); removeGameListeners(); saveData(); } private function registerGameListeners():void{ GameBroadcaster.addEventListener(WaveEvent.WAVE_DEFEATED, waveDefeatedHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.UPGRADE_TOWER, upgradeTowerHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.BUILD_TOWER_COMPLETE, buildTowerCompleteHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.LIVES_SET, livesSetHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.LIFE_LOST, lifeLostHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GAME_COMPLETE_EVALUATE_ACHIEVEMENTS, gameCompleteHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GAME_WON_DISPLAY, gameWonHandler, false, 0, true); } public function beginWatchingGame():void{ trace("AchievementController beginning watch"); m_initialLives = 0; m_currentLives = 0; m_gameWon = false; registerGameListeners(); } private function buildTowerCompleteHandler(_arg1:TowerEvent):void{ AchievementData.instance.accumulatedTowers = (AchievementData.instance.accumulatedTowers + 1); if (AchievementData.instance.accumulatedTowers >= 200){ unlockAchievement(CONSTRUCTOR); }; trace((("AchievementController buildTowerComplete [towers built " + AchievementData.instance.accumulatedTowers) + "]")); } private function waveDefeatedHandler(_arg1:WaveEvent):void{ trace(("AchievementController waveDefeated: " + _arg1.wave.waveID)); if ((((_arg1.wave.waveID == 19)) && ((m_currentLives == m_initialLives)))){ unlockAchievement(DEFENDER); } else { if ((((_arg1.wave.waveID == 29)) && ((m_currentLives == m_initialLives)))){ unlockAchievement(MASTER_DEFENDER); }; }; if ((((_arg1.wave.waveID == 29)) && ((m_difficulty == 1)))){ unlockAchievement(EPIC_VICTORY); }; } private function gameWonHandler(_arg1:GameEvent):void{ AchievementData.instance.accumulatedGameFinishes = (AchievementData.instance.accumulatedGameFinishes + 1); trace(("AchievementController game WON, game victories now: " + AchievementData.instance.accumulatedGameFinishes)); } private function lifeLostHandler(_arg1:GameEvent):void{ m_currentLives = _arg1.currentLives; trace(("AchievementController life lost, now at: " + m_currentLives)); } private function enemyKilledHandler(_arg1:EnemyEvent):void{ var _local2:String = EnemyController.getTypeOfEnemy(_arg1.enemyObject); if (_local2 == EnemyController.DRDOOM){ unlockAchievement(DRDOOM); } else { if (_local2 == EnemyController.MODOK){ unlockAchievement(MODOK); } else { if (_local2 == EnemyController.MOLEMAN){ unlockAchievement(MOLEMAN); }; }; }; } private function livesSetHandler(_arg1:GameEvent):void{ trace(((("AchievementController lives set: " + _arg1.totalLives) + ", difficulty: ") + _arg1.difficulty)); m_initialLives = _arg1.totalLives; m_currentLives = _arg1.currentLives; m_difficulty = _arg1.difficulty; } private function loadData():void{ var _local1:Array; var _local2:int; var _local3:Boolean; if (m_so.data.achievements == null){ trace("AchievementController achievements empty, leaving them false"); } else { trace("AchievementController achievements valid"); _local1 = m_so.data.achievements; _local2 = 0; while (_local2 < _local1.length) { _local3 = _local1[_local2]; Achievement(AchievementData.instance.achievements[_local2]).unlocked = _local3; trace(((((((("AchievementController achievement " + _local2) + " stored unlock: ") + _local1[_local2]) + " translated to: ") + _local3) + ", stored: ") + Achievement(AchievementData.instance.achievements[_local2]).unlocked)); _local2++; }; }; if (m_so.data.bestScore == null){ AchievementData.instance.bestScore = 0; } else { AchievementData.instance.bestScore = m_so.data.bestScore; }; if (m_so.data.accumulatedMoney == null){ AchievementData.instance.accumulatedMoney = 0; } else { AchievementData.instance.accumulatedMoney = m_so.data.accumulatedMoney; }; if (m_so.data.accumulatedTowers == null){ AchievementData.instance.accumulatedTowers = 0; } else { AchievementData.instance.accumulatedTowers = m_so.data.accumulatedTowers; }; if (m_so.data.accumulatedScore == null){ AchievementData.instance.accumulatedScore = 0; } else { AchievementData.instance.accumulatedScore = m_so.data.accumulatedScore; }; if (m_so.data.accumulatedGameFinishes == null){ AchievementData.instance.accumulatedGameFinishes = 0; } else { AchievementData.instance.accumulatedGameFinishes = m_so.data.accumulatedGameFinishes; }; trace(((((((("AchievementController loaded accum money: " + AchievementData.instance.accumulatedMoney) + ", accum towers: ") + AchievementData.instance.accumulatedTowers) + ", accum score: ") + AchievementData.instance.accumulatedScore) + " accum game finishes: ") + AchievementData.instance.accumulatedGameFinishes)); } public function initialise():void{ var _local1:Dictionary = AchievementData.instance.achievementIndexMap; _local1[MOLEMAN] = 0; _local1[ONE_GOLD_TOWER] = 1; _local1[MODOK] = 2; _local1[DRDOOM] = 3; _local1[MILLIONAIRE] = 4; _local1[CONSTRUCTOR] = 5; _local1[DEFENDER] = 6; _local1[MASTER_DEFENDER] = 7; _local1[HIGH_SCORE] = 8; _local1[EPIC_VICTORY] = 9; var _local2:Array = []; _local2[0] = new Achievement("Moleman", "Defeated Moleman", false); _local2[1] = new Achievement("Gold Tower", "Fully upgraded one tower", false); _local2[2] = new Achievement("Modok", "Defeated Modok", false); _local2[3] = new Achievement("DR. DOOM", "Defeated DR. DOOM", false); _local2[4] = new Achievement("Millionaire", "Earned $50,000", false); _local2[5] = new Achievement("Constructor", "Built 200 towers", false); _local2[6] = new Achievement("Defender", "Survived 20 waves without base damage", false); _local2[7] = new Achievement("Master Defender", "Survived 30 waves without base damage", false); _local2[8] = new Achievement("High Score", "Accumulated 10 million score", false); _local2[9] = new Achievement("Epic Victory", "Finished the game on Epic difficulty", false); AchievementData.instance.achievements = _local2; m_so = SharedObject.getLocal(m_hostName); loadData(); } private function upgradeTowerHandler(_arg1:TowerEvent):void{ var _local2:String; trace("AchievementController upgradeTower"); if (_arg1.levelID != 0){ _local2 = TowerController.getTowerLevelString(null, _arg1.levelID); if (_local2 == TowerController.LEVEL_3){ unlockAchievement(ONE_GOLD_TOWER); }; }; } private function gameCompleteHandler(_arg1:GameEvent):void{ trace(((("AchievementController game complete, final earnings: " + _arg1.finalEarned) + ", final score: ") + _arg1.finalScore)); if (_arg1.finalScore > AchievementData.instance.bestScore){ AchievementData.instance.bestScore = _arg1.finalScore; }; AchievementData.instance.accumulatedMoney = (AchievementData.instance.accumulatedMoney + _arg1.finalEarned); AchievementData.instance.accumulatedScore = (AchievementData.instance.accumulatedScore + _arg1.finalScore); if (AchievementData.instance.accumulatedMoney >= 50000){ unlockAchievement(MILLIONAIRE); }; if (AchievementData.instance.accumulatedScore >= 10000000){ unlockAchievement(HIGH_SCORE); }; } public static function get instance():AchievementController{ return (m_instance); } } }//package game.achievements
Section 274
//AchievementData (game.achievements.AchievementData) package game.achievements { import flash.events.*; import flash.utils.*; public class AchievementData extends EventDispatcher { private var m_accumulatedScore:int; private var m_bestScore:int; private var m_accumulatedTowers:int; private var m_achievementCollection:Array; private var m_accumulatedGameFinishes:int; private var m_achievementIndexMap:Dictionary; private var m_accumulatedMoney:int; private static var m_instance:AchievementData = new (AchievementData); ; public function AchievementData(){ if (m_instance){ throw (new Error("Error: AchievementData is a Singleton, and can only be accessed through AchievementData.instance")); }; m_instance = this; m_achievementIndexMap = new Dictionary(); } public function set achievements(_arg1:Array):void{ m_achievementCollection = _arg1; } public function get bestScore():int{ return (m_bestScore); } public function set accumulatedTowers(_arg1:int):void{ m_accumulatedTowers = _arg1; } public function set bestScore(_arg1:int):void{ m_bestScore = _arg1; } public function get accumulatedMoney():int{ return (m_accumulatedMoney); } public function get achievements():Array{ return (m_achievementCollection); } public function set accumulatedGameFinishes(_arg1:int):void{ m_accumulatedGameFinishes = _arg1; } public function get accumulatedTowers():int{ return (m_accumulatedTowers); } public function set accumulatedScore(_arg1:int):void{ m_accumulatedScore = _arg1; } public function get accumulatedGameFinishes():int{ return (m_accumulatedGameFinishes); } public function get accumulatedScore():int{ return (m_accumulatedScore); } public function get achievementIndexMap():Dictionary{ return (m_achievementIndexMap); } public function set accumulatedMoney(_arg1:int):void{ m_accumulatedMoney = _arg1; } public static function get instance():AchievementData{ return (m_instance); } } }//package game.achievements
Section 275
//MedalPageDisplay (game.achievements.MedalPageDisplay) package game.achievements { import flash.events.*; import flash.display.*; import org.casalib.display.*; import org.casalib.util.*; import gs.*; public class MedalPageDisplay extends CasaSprite { public var m_base:MovieClip; public var m_ui:MovieClip; private var m_stage:Stage; public var m_achievement:Achievement; public function MedalPageDisplay(_arg1:Achievement, _arg2:MovieClip, _arg3:MovieClip, _arg4:MovieClip){ m_stage = StageReference.getStage(); m_achievement = _arg1; m_ui = _arg2; m_base = _arg3; m_ui.mouseEnabled = false; m_ui.mouseChildren = false; m_ui.x = (m_ui.x + 0); m_ui.y = (m_ui.y + 0); m_ui.toolTip.titleText.text = m_achievement.title; m_ui.toolTip.descriptionText.text = m_achievement.description; m_ui.toolTip.alpha = 0; if (!m_achievement.unlocked){ m_ui.shape.visible = true; TweenMax.to(m_base, 0.05, {colorMatrixFilter:{colorize:0xCCCCCC, amount:1}, alpha:0.5}); } else { m_ui.shape.blendMode = BlendMode.MULTIPLY; m_ui.shape.visible = false; TweenMax.to(m_base, 0.05, {colorMatrixFilter:{}, alpha:1}); }; m_base.x = (m_base.x + 0); m_base.y = (m_base.y + 0); m_base.addEventListener(MouseEvent.ROLL_OVER, handleRollOver, false, 0, true); m_base.addEventListener(MouseEvent.ROLL_OUT, handleRollOut, false, 0, true); } private function handleRollOut(_arg1:MouseEvent):void{ TweenMax.to(m_ui.toolTip, 0.5, {alpha:0}); } private function handleRollOver(_arg1:MouseEvent):void{ TweenMax.to(m_ui.toolTip, 0.5, {alpha:1}); } override public function destroy():void{ m_base.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver); m_base.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut); super.destroy(); } } }//package game.achievements
Section 276
//Chunk (game.effects.Chunk) package game.effects { import flash.events.*; import flash.display.*; import assets.effects.*; public class Chunk extends MovieClip { private var m_angle:Number; private var m_steps:int; private var m_step:int;// = 0 private var m_vx:Number; private var m_vy:Number; private var m_chunkUI:ChunkUI; private var m_force:Number; private var m_chunkForceMax:Number;// = 12 private var m_gravity:Number;// = 1 private var m_angleInc:Number; public function Chunk(_arg1:int, _arg2:int, _arg3:Number):void{ m_steps = ((Math.random() * 80) + 30); m_angle = (Math.random() * Math.PI); m_angleInc = ((Math.random() * 0.1) + 0.1); super(); m_chunkUI = new ChunkUI(); m_chunkUI.x = (_arg1 + (Math.random() * 4)); m_chunkUI.y = _arg2; m_chunkUI.scaleX = 0.4; m_chunkUI.scaleY = 0.4; m_force = ((Math.random() * 5) + 3); m_chunkUI.rotation = (Math.random() * 360); m_chunkUI.cacheAsBitmap = true; addChild(m_chunkUI); m_chunkUI.gotoAndStop((int((Math.random() * 10)) + 1)); m_vx = ((Math.random() * m_force) - (m_force / 2)); m_vy = ((Math.random() * m_force) - (m_force / 2)); addEventListener(Event.ENTER_FRAME, render); } private function render(_arg1:Event):void{ var _local2:Number = (Math.sin(m_angle) * 0.6); m_step++; if (_local2 <= 0){ removeEventListener(Event.ENTER_FRAME, render); removeChild(m_chunkUI); m_chunkUI = null; if (this.parent != null){ this.parent.removeChild(this); }; } else { m_chunkUI.x = (m_chunkUI.x + m_vx); m_chunkUI.y = (m_chunkUI.y + m_vy); m_vx = (m_vx * 0.95); m_vy = (m_vy * 0.95); m_angle = (m_angle + m_angleInc); m_chunkUI.scaleX = (0.2 + Math.abs(_local2)); m_chunkUI.scaleY = (0.2 + Math.abs(_local2)); }; } } }//package game.effects
Section 277
//EffectsController (game.effects.EffectsController) package game.effects { import flash.events.*; import flash.display.*; import game.events.*; import game.interfaces.*; import flash.geom.*; import org.casalib.display.*; import game.enemies.*; import com.malee.quickfx.display.bitmap.*; import game.*; import assets.effects.*; public class EffectsController extends CasaSprite { private var m_map:CasaSprite; private var m_mapScarBitmapData:BitmapData; private var m_explosionSmallCountdown:int; private var m_explosionLargeGraphic:Sprite; private var m_scar:BitmapData; private var m_mapScarContainer:CasaBitmap; private var m_lighting:Bitmap; private var m_explosionBitmapMovieMedium:BitmapMovie; private var m_explosionsBitmapData:BitmapData; private var m_mapFadeCountdown:int; private var m_lightningWidth:int;// = 750 private var m_explosionMediumGraphic:Sprite; private var m_explosionBitmapMovieSmall:BitmapMovie; private var m_lightningHeight:int;// = 550 private var m_lightningData:BitmapData; private var m_explosionSmallGraphic:Sprite; private var m_explosionSmallFrames:Array; private var m_explosionLargeCountdown:int; private var m_explosionBitmapMovieLarge:BitmapMovie; private var m_explosionMediumFrames:Array; private var m_explosionsBitmap:Bitmap; private var m_explosionOffsetX:int;// = -200 private var m_explosionOffsetY:int;// = -200 private var m_mapFadeFrequency:int;// = 600 private var m_explosionsDisplayArray:Array; private var m_explosionsPointArray:Array; private var m_explosionsReady:Boolean;// = false private var m_explosionMediumCountdown:int; private var m_explosionLargeFrames:Array; public function EffectsController(_arg1:CasaSprite){ m_map = _arg1; m_mapFadeCountdown = m_mapFadeFrequency; this.mouseChildren = false; this.mouseEnabled = false; var _local2:MovieClip = new MapScar(); m_scar = new BitmapData(_local2.width, _local2.height, true, 0); m_scar.draw(_local2); m_mapScarBitmapData = new BitmapData(m_map.width, (m_map.height + Map.tileH), true, 0); m_mapScarContainer = new CasaBitmap(m_mapScarBitmapData); m_map.addChild(m_mapScarContainer); m_explosionsBitmapData = new BitmapData(750, 550, true, 0); m_explosionsBitmap = new Bitmap(m_explosionsBitmapData); addChild(m_explosionsBitmap); m_explosionsDisplayArray = []; m_explosionsPointArray = []; m_lightningData = new BitmapData(m_lightningWidth, m_lightningHeight, true, 0); m_lighting = new Bitmap(m_lightningData); addChild(m_lighting); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyKilledHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.ROCKET_DETONATE, rocketDetonationHandler, false, 0, true); renderExplosions(); } public function doRender():void{ var _local2:ColorTransform; var _local3:Rectangle; var _local4:BitmapMovieDisplay; var _local5:Point; m_mapFadeCountdown--; if (m_mapFadeCountdown == 0){ m_mapFadeCountdown = m_mapFadeFrequency; _local2 = new ColorTransform(); _local2.alphaMultiplier = 0.9; _local3 = new Rectangle(0, 0, m_map.width, m_map.height); m_mapScarBitmapData.colorTransform(_local3, _local2); }; m_lightningData.fillRect(m_lightningData.rect, 0); m_explosionsBitmapData.fillRect(m_explosionsBitmapData.rect, 0); var _local1:int; while (_local1 < m_explosionsDisplayArray.length) { _local4 = m_explosionsDisplayArray[_local1]; _local5 = m_explosionsPointArray[_local1]; _local4.renderToBitmapData(m_explosionsBitmapData, _local5); _local1++; }; } private function scarMap(_arg1:int, _arg2:int):void{ var _local3:Rectangle = new Rectangle(0, 0, m_scar.width, m_scar.height); var _local4:Point = new Point(_arg1, _arg2); m_mapScarBitmapData.copyPixels(m_scar, _local3, _local4, null, null, true); } private function renderExplosions():void{ trace("Recording explosions"); m_explosionLargeFrames = []; m_explosionLargeGraphic = new Sprite(); var _local1:Explosion = new Explosion(m_explosionLargeGraphic, 200, 200, 44); m_explosionLargeCountdown = 60; m_explosionMediumFrames = []; m_explosionMediumGraphic = new Sprite(); _local1 = new Explosion(m_explosionMediumGraphic, 200, 200, 28); m_explosionMediumCountdown = 30; m_explosionSmallFrames = []; m_explosionSmallGraphic = new Sprite(); _local1 = new Explosion(m_explosionSmallGraphic, 200, 200, 18); m_explosionSmallCountdown = 30; this.addEventListener(Event.ENTER_FRAME, enterFrameRecord); } private function enterFrameRecord(_arg1:Event):void{ var _local2:BitmapData; if (m_explosionLargeCountdown > 0){ _local2 = new BitmapData(400, 400, true, 0); _local2.draw(m_explosionLargeGraphic); m_explosionLargeFrames.push(_local2); m_explosionLargeCountdown--; }; if (m_explosionMediumCountdown > 0){ _local2 = new BitmapData(400, 400, true, 0); _local2.draw(m_explosionMediumGraphic); m_explosionMediumFrames.push(_local2); m_explosionMediumCountdown--; }; if (m_explosionSmallCountdown > 0){ _local2 = new BitmapData(400, 400, true, 0); _local2.draw(m_explosionSmallGraphic); m_explosionSmallFrames.push(_local2); m_explosionSmallCountdown--; }; if ((((((m_explosionLargeCountdown == 0)) && ((m_explosionMediumCountdown == 0)))) && ((m_explosionSmallCountdown == 0)))){ trace("All recording complete"); this.removeEventListener(Event.ENTER_FRAME, enterFrameRecord); m_explosionBitmapMovieLarge = new BitmapMovie(m_explosionLargeFrames); m_explosionBitmapMovieMedium = new BitmapMovie(m_explosionMediumFrames); m_explosionBitmapMovieSmall = new BitmapMovie(m_explosionSmallFrames); m_explosionsReady = true; }; } public function getDrawEffectsLayer():BitmapData{ return (m_lightningData); } private function rocketDetonationHandler(_arg1:WeaponEvent):void{ var _local4:Point; var _local5:BitmapMovieDisplay; var _local2:IWeapon = _arg1.weaponObject; var _local3:Object = _local2.getPosition(); if (m_explosionsReady){ _local4 = new Point(((_local3.x + m_explosionOffsetX) + Map.tileHalfW), ((_local3.y + m_explosionOffsetY) + Map.tileHalfH)); _local5 = new BitmapMovieDisplay(m_explosionBitmapMovieSmall); m_explosionsDisplayArray.push(_local5); m_explosionsPointArray.push(_local4); }; } public function doPhysics():void{ var _local2:int; var _local3:BitmapMovieDisplay; var _local4:int; var _local5:Point; var _local1:Array = []; _local2 = 0; while (_local2 < m_explosionsDisplayArray.length) { _local3 = m_explosionsDisplayArray[_local2]; if (_local3.frame >= (_local3.totalFrames - 1)){ _local1.push(_local3); }; _local2++; }; _local2 = 0; while (_local2 < _local1.length) { _local4 = m_explosionsDisplayArray.indexOf(_local1[_local2]); m_explosionsDisplayArray.splice(_local4, 1); m_explosionsPointArray.splice(_local4, 1); _local2++; }; _local2 = 0; while (_local2 < m_explosionsDisplayArray.length) { _local3 = m_explosionsDisplayArray[_local2]; _local5 = m_explosionsPointArray[_local2]; _local3.forward(); _local2++; }; } private function enemyKilledHandler(_arg1:EnemyEvent):void{ var _local4:String; var _local5:int; var _local6:int; var _local7:Point; var _local8:BitmapMovieDisplay; var _local2:IEnemy = _arg1.enemyObject; var _local3:Object = _local2.getPosition(); if ((_local2 is Moleoid)){ _local4 = "small"; } else { if ((_local2 is AIMSentryBase)){ _local4 = "small"; } else { if ((_local2 is Doombot)){ _local4 = "medium"; } else { if ((_local2 is Jeep)){ _local4 = "medium"; } else { if ((_local2 is Helicopter)){ _local4 = "small"; } else { if ((_local2 is AttackAPC)){ _local4 = "medium"; } else { if ((_local2 is LightTank)){ _local4 = "medium"; } else { if ((_local2 is CruiseMissile)){ _local4 = "small"; } else { if ((_local2 is HeavyTank)){ _local4 = "large"; } else { if ((_local2 is MoleMan)){ _local4 = "large"; } else { if ((_local2 is Modok)){ _local4 = "large"; } else { if ((_local2 is DrDoom)){ _local4 = "large"; }; }; }; }; }; }; }; }; }; }; }; }; if (((m_explosionsReady) && ((_arg1.type == EnemyEvent.ENEMY_KILLED)))){ _local5 = ((_local3.x + Map.tileHalfW) + m_explosionOffsetX); _local6 = ((_local3.y + Map.tileHalfH) + m_explosionOffsetY); _local7 = new Point(_local5, _local6); if (_local4 == "small"){ _local8 = new BitmapMovieDisplay(m_explosionBitmapMovieSmall); } else { if (_local4 == "medium"){ _local8 = new BitmapMovieDisplay(m_explosionBitmapMovieMedium); } else { _local8 = new BitmapMovieDisplay(m_explosionBitmapMovieLarge); }; }; m_explosionsDisplayArray.push(_local8); m_explosionsPointArray.push(_local7); if ((_local2 is ILandEnemy)){ scarMap(_local3.x, _local3.y); }; }; } override public function destroy():void{ GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyKilledHandler); GameBroadcaster.removeEventListener(WeaponEvent.ROCKET_DETONATE, rocketDetonationHandler); removeChild(m_explosionsBitmap); m_explosionsBitmapData.dispose(); m_mapScarContainer.destroy(); m_lightningData.dispose(); } } }//package game.effects
Section 278
//Explosion (game.effects.Explosion) package game.effects { import flash.events.*; import flash.display.*; public class Explosion extends EventDispatcher { private var m_particlePerCycle:Number; private var m_particleCycles:Number; private var m_rumbleForce:Number; private var m_forceMax:Number;// = 100 private var m_particleCount:int; private var m_chunkMax:int;// = 0 private var m_force:Number; private var m_particleExplosion:Boolean;// = false private var m_particleArray:Array; private var m_container:Sprite; private var m_particleCycle:Number;// = 0 private var m_sx:Number; private var m_sy:Number; private var m_forceMin:Number;// = 0 private var m_chunks:int;// = 0 public function Explosion(_arg1:Sprite, _arg2:int, _arg3:int, _arg4:Number){ m_particleArray = new Array(); super(); m_force = Math.min(m_forceMax, Math.max(m_forceMin, _arg4)); m_container = _arg1; m_rumbleForce = (((m_force / 100) * 10) + 2); m_sx = _arg2; m_sy = _arg3; if (m_force < 10){ m_particlePerCycle = 2; m_particleCycles = 1; m_chunkMax = 0; } else { if (m_force < 20){ m_particlePerCycle = 2; m_particleCycles = 1; m_chunkMax = 18; } else { if (m_force < 40){ m_particlePerCycle = 2; m_particleCycles = 1; m_chunkMax = 18; } else { if ((((m_force >= 40)) && ((m_force < 50)))){ m_particlePerCycle = 3; m_particleCycles = 2; m_chunkMax = 28; } else { m_particlePerCycle = 3; m_particleCycles = 2; m_chunkMax = 70; }; }; }; }; m_container.addEventListener(Event.ENTER_FRAME, render); } public function render(_arg1:Event):void{ var _local3:Particle; var _local4:Chunk; m_particleCycle++; if (m_particleCycle == 1){ }; var _local2:int; while (_local2 < m_particlePerCycle) { m_chunks++; if (m_chunks < m_chunkMax){ _local4 = new Chunk(m_sx, m_sy, m_force); m_container.addChild(_local4); }; _local3 = new Particle(m_sx, m_sy, m_force, true); m_container.addChild(_local3); _local2++; }; if (m_particleCycle > m_particleCycles){ m_container.removeEventListener(Event.ENTER_FRAME, render); }; } } }//package game.effects
Section 279
//Particle (game.effects.Particle) package game.effects { import flash.events.*; import flash.display.*; import assets.effects.*; public class Particle extends MovieClip { private var m_explodeUI:ExplodeUI; private var m_damping:Number;// = 0.3 private var m_vx:Number; private var m_vy:Number; private var m_vz:Number; private var m_force:Number; private var m_gravity:Number; private var m_particleSprite:ParticleUI; public function Particle(_arg1:int, _arg2:int, _arg3:Number, _arg4:Boolean):void{ m_force = _arg3; m_particleSprite = new ParticleUI(); m_particleSprite.x = (_arg1 + (Math.random() * 4)); m_particleSprite.y = (_arg2 + (Math.random() * 4)); m_particleSprite.rotation = (Math.random() * 360); m_particleSprite.scaleX = (m_particleSprite.scaleY = ((m_force + (Math.random() * -10)) / 60)); m_damping = (m_damping * ((m_force + (Math.random() * -10)) / 60)); _arg4 = true; addChild(m_particleSprite); if (Math.random() > 0.3){ m_particleSprite.blendMode = BlendMode.HARDLIGHT; } else { m_particleSprite.blendMode = BlendMode.ADD; }; m_particleSprite.addEventListener(Event.ENTER_FRAME, render); if (m_force < 10){ if (Math.random() > 0.8){ m_particleSprite.gotoAndPlay((int((Math.random() * 5)) + 15)); } else { m_particleSprite.gotoAndPlay((int((Math.random() * 5)) + 15)); }; } else { if (Math.random() > 0.8){ m_particleSprite.gotoAndPlay((int((Math.random() * 20)) + 1)); }; }; m_vx = (((Math.random() * 2) * m_force) - m_force); m_vy = (Math.random() * -(m_force)); m_gravity = (Math.random() + 0.7); m_explodeUI = new ExplodeUI(); m_explodeUI.x = (_arg1 + (Math.random() * 4)); m_explodeUI.y = (_arg2 + (Math.random() * 4)); addChild(m_explodeUI); m_explodeUI.rotation = (Math.random() * 360); m_explodeUI.scaleX = (m_explodeUI.scaleY = (m_force / 60)); m_explodeUI.cacheAsBitmap = true; m_explodeUI.addEventListener(Event.ENTER_FRAME, renderExplosion); if (Math.random() > 0.5){ m_explodeUI.blendMode = BlendMode.ADD; } else { m_explodeUI.blendMode = BlendMode.OVERLAY; }; } private function render(_arg1:Event):void{ if (m_particleSprite.currentFrame == m_particleSprite.totalFrames){ m_particleSprite.removeEventListener(Event.ENTER_FRAME, render); removeChild(m_particleSprite); m_particleSprite = null; if (this.parent != null){ this.parent.removeChild(this); }; } else { m_particleSprite.x = (m_particleSprite.x + m_vx); m_particleSprite.y = (m_particleSprite.y + m_vy); if (m_explodeUI){ m_explodeUI.x = (m_explodeUI.x + m_vx); m_explodeUI.y = (m_explodeUI.y + m_vy); }; m_particleSprite.scaleX = (m_particleSprite.scaleX + 0.018); m_particleSprite.scaleY = (m_particleSprite.scaleY + 0.018); m_vx = (m_vx * m_damping); m_vy = (m_vy * m_damping); }; } private function renderExplosion(_arg1:Event):void{ if (m_explodeUI.currentFrame == m_explodeUI.totalFrames){ m_explodeUI.removeEventListener(Event.ENTER_FRAME, renderExplosion); removeChild(m_explodeUI); m_explodeUI = null; }; } } }//package game.effects
Section 280
//AIMSentryBase (game.enemies.AIMSentryBase) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; public class AIMSentryBase extends BaseEnemy implements ILandEnemy { public function AIMSentryBase(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.MediumExplosion", 1, 1, false)); } } }//package game.enemies
Section 281
//AIMSentryBlue (game.enemies.AIMSentryBlue) package game.enemies { import game.*; import assets.enemies.*; public class AIMSentryBlue extends AIMSentryBase { public function AIMSentryBlue(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new AIMSentryShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 3); addChild(m_shadow); m_container = new AIMSentry_BlueClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 4; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } } }//package game.enemies
Section 282
//AIMSentryRed (game.enemies.AIMSentryRed) package game.enemies { import game.*; import assets.enemies.*; public class AIMSentryRed extends AIMSentryBase { public function AIMSentryRed(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new AIMSentryShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 3); addChild(m_shadow); m_container = new AIMSentry_RedClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 4; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } } }//package game.enemies
Section 283
//AIMSentryYellow (game.enemies.AIMSentryYellow) package game.enemies { import game.*; import assets.enemies.*; public class AIMSentryYellow extends AIMSentryBase { public function AIMSentryYellow(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new AIMSentryShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 3); addChild(m_shadow); m_container = new AIMSentry_YellowClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 4; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } } }//package game.enemies
Section 284
//AttackAPC (game.enemies.AttackAPC) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class AttackAPC extends BaseEnemy implements ILandEnemy { public function AttackAPC(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new AttackAPCShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 3); addChild(m_shadow); m_container = new AttackAPCClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.MediumVehicleExplosion", 1.2, 1, false)); } } }//package game.enemies
Section 285
//BaseEnemy (game.enemies.BaseEnemy) package game.enemies { import flash.display.*; import game.events.*; import game.interfaces.*; import flash.geom.*; import org.casalib.display.*; import fl.motion.*; import game.*; public class BaseEnemy extends CasaSprite implements IEnemy { protected const m_FINISHED:int = 2; protected const m_ALIVE:int = 0; protected const m_DEAD:int = 1; protected var m_slowdownCountdown:int;// = 0 protected var m_rotation:Number; protected var m_ticksPerFrame:Number; protected var m_routeArray:Array; protected var m_speedFactor:Number;// = 1 protected var m_x:Number; protected var m_y:Number; protected var m_container:MovieClip; protected var m_shadow:MovieClip; protected var m_targetableCountdown:int; protected var m_state:int; protected var m_score:int; protected var m_healthBar:HealthBar; protected var m_isTargetable:Boolean; protected var m_healthOriginal:Number; protected var m_waveID:int; protected var m_money:int; protected var m_health:Number; protected var m_speed:Number; protected var m_ticksPerFrameCountdown:Number;// = 0 public function BaseEnemy(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ m_x = (Map.tileW * _arg1[0].x); m_y = (Map.tileH * _arg1[0].y); m_routeArray = _arg1; m_speed = _arg2; m_healthOriginal = _arg3; m_health = m_healthOriginal; m_money = _arg4; m_score = _arg5; m_waveID = _arg6; m_state = m_ALIVE; m_isTargetable = false; m_targetableCountdown = int(((Map.tileW * 1) / m_speed)); } public function doRender():void{ m_container.rotation = m_rotation; m_shadow.rotation = m_rotation; this.x = m_x; this.y = m_y; } override public function destroy():void{ m_healthBar.destroy(); super.destroy(); } protected function navStep():void{ m_routeArray.shift(); if (m_routeArray.length == 1){ m_state = m_FINISHED; GameBroadcaster.dispatchEvent(new EnemyEvent(EnemyEvent.ENEMY_OBJECTIVE, this)); }; } public function getMoney():int{ return (m_money); } public function getPosition():Object{ var _local1:Object = {}; _local1.x = m_x; _local1.y = m_y; _local1.rotation = m_rotation; return (_local1); } public function isTargetable():Boolean{ return (m_isTargetable); } public function doHurt(_arg1:int):void{ m_health = (m_health - _arg1); m_healthBar.setHealth((m_health / m_healthOriginal)); if (m_health <= 0){ m_state = m_DEAD; GameBroadcaster.dispatchEvent(new EnemyEvent(EnemyEvent.ENEMY_KILLED, this)); playDeathSound(); }; } public function doPhysics():void{ if (m_state == m_ALIVE){ doNavigation(); doWalk(); doAssessTargetability(); }; } public function getWaveID():int{ return (m_waveID); } public function getSpeedFactor():Number{ return (m_speedFactor); } public function doSlowdown(_arg1:Number, _arg2:Number):void{ m_slowdownCountdown = (m_slowdownCountdown + _arg2); m_speedFactor = _arg1; var _local3:Color = new Color(); _local3.setTint(0xFFFFFF, 0.4); m_container.transform.colorTransform = _local3; } protected function playDeathSound():void{ } public function getScore():int{ return (m_score); } protected function doAssessTargetability():void{ if (!m_isTargetable){ m_targetableCountdown--; if (m_targetableCountdown <= 0){ m_isTargetable = true; }; }; } protected function doWalk():void{ var _local1:int; m_ticksPerFrameCountdown--; if (m_ticksPerFrameCountdown <= 0){ m_ticksPerFrameCountdown = m_ticksPerFrame; _local1 = (m_container.currentFrame + 1); if (_local1 > m_container.totalFrames){ _local1 = 1; }; m_container.gotoAndStop(_local1); }; } protected function doNavigation():void{ if (m_slowdownCountdown > 0){ m_slowdownCountdown--; if (m_slowdownCountdown == 0){ m_speedFactor = 1; m_container.transform.colorTransform = new ColorTransform(); }; }; var _local1:Number = (m_speed * m_speedFactor); var _local2:int = Map.tileW; var _local3:int = Map.tileH; if (m_routeArray[1].x < m_routeArray[0].x){ m_rotation = 270; m_x = (m_x - _local1); if (m_x < (m_routeArray[1].x * _local2)){ m_x = (m_routeArray[1].x * _local2); navStep(); }; } else { if (m_routeArray[1].x > m_routeArray[0].x){ m_rotation = 90; m_x = (m_x + _local1); if (m_x > (m_routeArray[1].x * _local2)){ m_x = (m_routeArray[1].x * _local2); navStep(); }; } else { if (m_routeArray[1].y > m_routeArray[0].y){ m_rotation = 180; m_y = (m_y + _local1); if (m_y > (m_routeArray[1].y * _local3)){ m_y = (m_routeArray[1].y * _local3); navStep(); }; } else { m_rotation = 0; m_y = (m_y - _local1); if (m_y < (m_routeArray[1].y * _local3)){ m_y = (m_routeArray[1].y * _local3); navStep(); }; }; }; }; } } }//package game.enemies
Section 286
//CruiseMissile (game.enemies.CruiseMissile) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class CruiseMissile extends BaseEnemy implements IAirEnemy { public function CruiseMissile(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new CruiseMissileShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 25); addChild(m_shadow); m_container = new CruiseMissileClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ var _local2:String; var _local1:int = Math.round((Math.random() * 1)); if (_local1 == 0){ _local2 = "assets_sfx.sfx.explosions.MediumExplosion"; } else { _local2 = "assets_sfx.sfx.explosions.MediumExplosion"; }; GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, _local2, 1, 1, false)); } } }//package game.enemies
Section 287
//Doombot (game.enemies.Doombot) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class Doombot extends BaseEnemy implements ILandEnemy { public function Doombot(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new DoombotShadow(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 3); addChild(m_shadow); m_container = new DoombotClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 5; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.MediumGlassExplosion", 0.4, 1, false)); } } }//package game.enemies
Section 288
//DrDoom (game.enemies.DrDoom) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class DrDoom extends BaseEnemy implements ILandEnemy { public function DrDoom(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new DrDoomShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 8); addChild(m_shadow); m_container = new DrDoomClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 4; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.BossExplosion", 1.2, 1, false)); } } }//package game.enemies
Section 289
//EnemyController (game.enemies.EnemyController) package game.enemies { import game.events.*; import flash.utils.*; import game.interfaces.*; import org.casalib.display.*; import game.*; public class EnemyController extends CasaSprite { private var m_landContainer:CasaSprite; private var m_airContainer:CasaSprite; public static const AIMSENTRY:String = "aimsentry"; public static const MODOK:String = "modok"; public static const AIMSENTRY_BLUE:String = "aimsentry_blue"; public static const AIMSENTRY_YELLOW:String = "aimsentry_yellow"; public static const HEAVYTANK:String = "heavytank"; public static const HELICOPTER:String = "helicopter"; public static const CRUISEMISSILE:String = "cruisemissile"; public static const DOOMBOT:String = "doombot"; public static const LIGHTTANK:String = "lighttank"; public static const JEEP:String = "jeep"; public static const ATTACKAPC:String = "attackapc"; public static const MOLEOID:String = "moleoid"; public static const AIMSENTRY_RED:String = "aimsentry_red"; public static const DRDOOM:String = "drdoom"; public static const MOLEMAN:String = "moleman"; public function EnemyController(_arg1:CasaSprite, _arg2:CasaSprite, _arg3:XML){ EnemyData.instance.emptyArray(); m_landContainer = _arg1; m_airContainer = _arg2; m_airContainer.mouseChildren = false; m_airContainer.mouseEnabled = false; initTables(_arg3); GameBroadcaster.addEventListener(EnemyEvent.SPAWN_ENEMY, spawnEnemyHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyObjectiveHandler, false, 0, true); trace("EC online"); } public function doRender():void{ var _local1:Array = EnemyData.instance.enemyArray; var _local2:int; while (_local2 < _local1.length) { BaseEnemy(_local1[_local2]).doRender(); _local2++; }; } public function doPhysics():void{ var _local1:Array = EnemyData.instance.enemyArray; var _local2:int; while (_local2 < _local1.length) { BaseEnemy(_local1[_local2]).doPhysics(); _local2++; }; } private function enemyKilledHandler(_arg1:EnemyEvent):void{ var _local2:BaseEnemy = _arg1.enemyObject; EnemyData.instance.enemyArray.splice(EnemyData.instance.enemyArray.indexOf(_local2), 1); _local2.destroy(); } private function initTables(_arg1:XML):void{ var _local2:Dictionary = EnemyData.instance.speedTable; var _local3:Dictionary = EnemyData.instance.moneyTable; var _local4:Dictionary = EnemyData.instance.scoreTable; _local2[MOLEOID] = Number(_arg1.moleoid.@speed); _local2[AIMSENTRY] = Number(_arg1.aimsentry.@speed); _local2[DOOMBOT] = Number(_arg1.doombot.@speed); _local2[JEEP] = Number(_arg1.jeep.@speed); _local2[HELICOPTER] = Number(_arg1.helicopter.@speed); _local2[ATTACKAPC] = Number(_arg1.attackapc.@speed); _local2[LIGHTTANK] = Number(_arg1.lighttank.@speed); _local2[CRUISEMISSILE] = Number(_arg1.cruisemissile.@speed); _local2[HEAVYTANK] = Number(_arg1.heavytank.@speed); _local2[MOLEMAN] = Number(_arg1.moleman.@speed); _local2[MODOK] = Number(_arg1.modok.@speed); _local2[DRDOOM] = Number(_arg1.drdoom.@speed); _local3[MOLEOID] = int(_arg1.moleoid.@cost); _local3[AIMSENTRY] = int(_arg1.aimsentry.@cost); _local3[DOOMBOT] = int(_arg1.doombot.@cost); _local3[JEEP] = int(_arg1.jeep.@cost); _local3[HELICOPTER] = int(_arg1.helicopter.@cost); _local3[ATTACKAPC] = int(_arg1.attackapc.@cost); _local3[LIGHTTANK] = int(_arg1.lighttank.@cost); _local3[CRUISEMISSILE] = int(_arg1.cruisemissile.@cost); _local3[HEAVYTANK] = int(_arg1.heavytank.@cost); _local3[MOLEMAN] = int(_arg1.moleman.@cost); _local3[MODOK] = int(_arg1.modok.@cost); _local3[DRDOOM] = int(_arg1.drdoom.@cost); _local4[MOLEOID] = int(_arg1.moleoid.@score); _local4[AIMSENTRY] = int(_arg1.aimsentry.@score); _local4[DOOMBOT] = int(_arg1.doombot.@score); _local4[JEEP] = int(_arg1.jeep.@score); _local4[HELICOPTER] = int(_arg1.helicopter.@score); _local4[ATTACKAPC] = int(_arg1.attackapc.@score); _local4[LIGHTTANK] = int(_arg1.lighttank.@score); _local4[CRUISEMISSILE] = int(_arg1.cruisemissile.@score); _local4[HEAVYTANK] = int(_arg1.heavytank.@score); _local4[MOLEMAN] = int(_arg1.moleman.@score); _local4[MODOK] = int(_arg1.modok.@score); _local4[DRDOOM] = int(_arg1.drdoom.@score); } private function enemyObjectiveHandler(_arg1:EnemyEvent):void{ var _local2:BaseEnemy; if (EnemyData.instance.enemyArray.indexOf(_arg1.enemyObject) < 0){ trace("ERROR! this enemy is already out of our array!"); } else { _local2 = _arg1.enemyObject; EnemyData.instance.enemyArray.splice(EnemyData.instance.enemyArray.indexOf(_local2), 1); _local2.destroy(); }; } override public function destroy():void{ var _local1:Array = EnemyData.instance.enemyArray; var _local2:int; while (_local2 < _local1.length) { BaseEnemy(_local1[_local2]).destroy(); _local1[_local2] = null; _local2++; }; GameBroadcaster.removeEventListener(EnemyEvent.SPAWN_ENEMY, spawnEnemyHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyObjectiveHandler); EnemyData.instance.emptyArray(); trace("EnemyController destroy"); super.destroy(); } private function spawnEnemyHandler(_arg1:EnemyEvent):void{ var _local8:Number; var _local9:int; var _local10:int; var _local11:int; var _local13:BaseEnemy; var _local2:Array = Map.getRoutes(); var _local3:Array = []; var _local4:int; while (_local4 < _local2[_arg1.routeID].length) { _local3[_local4] = _local2[_arg1.routeID][_local4]; _local4++; }; _local9 = _arg1.health; var _local5:Dictionary = EnemyData.instance.speedTable; var _local6:Dictionary = EnemyData.instance.moneyTable; var _local7:Dictionary = EnemyData.instance.scoreTable; var _local12:int = _arg1.waveID; if (_arg1.enemyType == MOLEOID){ _local8 = _local5[MOLEOID]; _local10 = _local6[MOLEOID]; _local11 = _local7[MOLEOID]; _local13 = new Moleoid(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == AIMSENTRY_BLUE){ _local8 = _local5[AIMSENTRY]; _local10 = _local6[AIMSENTRY]; _local11 = _local7[AIMSENTRY]; _local13 = new AIMSentryBlue(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == AIMSENTRY_RED){ _local8 = _local5[AIMSENTRY]; _local10 = _local6[AIMSENTRY]; _local11 = _local7[AIMSENTRY]; _local13 = new AIMSentryRed(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == AIMSENTRY_YELLOW){ _local8 = _local5[AIMSENTRY]; _local10 = _local6[AIMSENTRY]; _local11 = _local7[AIMSENTRY]; _local13 = new AIMSentryYellow(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == DOOMBOT){ _local8 = _local5[DOOMBOT]; _local10 = _local6[DOOMBOT]; _local11 = _local7[DOOMBOT]; _local13 = new Doombot(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == JEEP){ _local8 = _local5[JEEP]; _local10 = _local6[JEEP]; _local11 = _local7[JEEP]; _local13 = new Jeep(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == HELICOPTER){ _local8 = _local5[HELICOPTER]; _local10 = _local6[HELICOPTER]; _local11 = _local7[HELICOPTER]; _local13 = new Helicopter(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == ATTACKAPC){ _local8 = _local5[ATTACKAPC]; _local10 = _local6[ATTACKAPC]; _local11 = _local7[ATTACKAPC]; _local13 = new AttackAPC(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == LIGHTTANK){ _local8 = _local5[LIGHTTANK]; _local10 = _local6[LIGHTTANK]; _local11 = _local7[LIGHTTANK]; _local13 = new LightTank(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == CRUISEMISSILE){ _local8 = _local5[CRUISEMISSILE]; _local10 = _local6[CRUISEMISSILE]; _local11 = _local7[CRUISEMISSILE]; _local13 = new CruiseMissile(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == HEAVYTANK){ _local8 = _local5[HEAVYTANK]; _local10 = _local6[HEAVYTANK]; _local11 = _local7[HEAVYTANK]; _local13 = new HeavyTank(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == MOLEMAN){ _local8 = _local5[MOLEMAN]; _local10 = _local6[MOLEMAN]; _local11 = _local7[MOLEMAN]; _local13 = new MoleMan(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == MODOK){ _local8 = _local5[MODOK]; _local10 = _local6[MODOK]; _local11 = _local7[MODOK]; _local13 = new Modok(_local3, _local8, _local9, _local10, _local11, _local12); } else { if (_arg1.enemyType == DRDOOM){ _local8 = _local5[DRDOOM]; _local10 = _local6[DRDOOM]; _local11 = _local7[DRDOOM]; _local13 = new DrDoom(_local3, _local8, _local9, _local10, _local11, _local12); }; }; }; }; }; }; }; }; }; }; }; }; }; }; if ((((((_arg1.enemyType == HELICOPTER)) || ((_arg1.enemyType == CRUISEMISSILE)))) || ((_arg1.enemyType == MODOK)))){ m_airContainer.addChild(_local13); } else { m_landContainer.addChild(_local13); }; EnemyData.instance.enemyArray.push(_local13); GameBroadcaster.dispatchEvent(new EnemyEvent(EnemyEvent.ENEMY_SPAWNED, _local13)); } public static function getTypeOfEnemy(_arg1:IEnemy):String{ var _local2:String; if ((_arg1 is Moleoid)){ _local2 = EnemyController.MOLEOID; } else { if ((_arg1 is AIMSentryBase)){ _local2 = EnemyController.AIMSENTRY; } else { if ((_arg1 is Doombot)){ _local2 = EnemyController.DOOMBOT; } else { if ((_arg1 is Jeep)){ _local2 = EnemyController.JEEP; } else { if ((_arg1 is Helicopter)){ _local2 = EnemyController.HELICOPTER; } else { if ((_arg1 is AttackAPC)){ _local2 = EnemyController.ATTACKAPC; } else { if ((_arg1 is LightTank)){ _local2 = EnemyController.LIGHTTANK; } else { if ((_arg1 is CruiseMissile)){ _local2 = EnemyController.CRUISEMISSILE; } else { if ((_arg1 is HeavyTank)){ _local2 = EnemyController.HEAVYTANK; } else { if ((_arg1 is MoleMan)){ _local2 = EnemyController.MOLEMAN; } else { if ((_arg1 is Modok)){ _local2 = EnemyController.MODOK; } else { if ((_arg1 is DrDoom)){ _local2 = EnemyController.DRDOOM; } else { throw (new Error((("getTypeOfEnemy: " + _arg1) + " unknown!"))); }; }; }; }; }; }; }; }; }; }; }; }; return (_local2); } } }//package game.enemies
Section 290
//EnemyData (game.enemies.EnemyData) package game.enemies { import flash.events.*; import flash.utils.*; public class EnemyData extends EventDispatcher { private var m_moneyTable:Dictionary; private var m_enemyArray:Array; private var m_scoreTable:Dictionary; private var m_speedTable:Dictionary; private static var m_instance:EnemyData = new (EnemyData); ; public function EnemyData(){ if (m_instance){ throw (new Error("Error: EnemyData is a Singleton, and can only be accessed through EnemyData.instance")); }; m_instance = this; m_enemyArray = []; m_speedTable = new Dictionary(); m_moneyTable = new Dictionary(); m_scoreTable = new Dictionary(); } public function get scoreTable():Dictionary{ return (m_scoreTable); } public function emptyArray():void{ m_enemyArray = []; m_speedTable = new Dictionary(); m_moneyTable = new Dictionary(); m_scoreTable = new Dictionary(); } public function get enemyArray():Array{ return (m_enemyArray); } public function get moneyTable():Dictionary{ return (m_moneyTable); } public function get speedTable():Dictionary{ return (m_speedTable); } public static function get instance():EnemyData{ return (m_instance); } } }//package game.enemies
Section 291
//HealthBar (game.enemies.HealthBar) package game.enemies { import flash.display.*; import org.casalib.display.*; import assets.enemies.*; public class HealthBar extends CasaSprite { private var container:MovieClip; public function HealthBar(){ container = new HealthBar(); this.addChild(container); } public function setHealth(_arg1:Number):void{ if ((((_arg1 >= 0)) && ((_arg1 <= 1)))){ container.green_mc.width = (container.red_mc.width * _arg1); } else { if (_arg1 > 1){ container.green_mc.width = container.red_mc.width; } else { container.green_mc.width = 0; }; }; } } }//package game.enemies
Section 292
//HeavyTank (game.enemies.HeavyTank) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class HeavyTank extends BaseEnemy implements ILandEnemy { public function HeavyTank(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new HeavyTankShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 5); addChild(m_shadow); m_container = new HeavyTankClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.HeavyExplosion", 1, 1, false)); } } }//package game.enemies
Section 293
//Helicopter (game.enemies.Helicopter) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class Helicopter extends BaseEnemy implements IAirEnemy { public function Helicopter(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new HelicopterShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 20); addChild(m_shadow); m_container = new HelicopterClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ var _local2:String; var _local1:int = Math.round((Math.random() * 1)); if (_local1 == 0){ _local2 = "assets_sfx.sfx.explosions.HeliExplosion"; } else { _local2 = "assets_sfx.sfx.explosions.HeliExplosion"; }; GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, _local2, 1, 1, false)); } } }//package game.enemies
Section 294
//Jeep (game.enemies.Jeep) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class Jeep extends BaseEnemy implements ILandEnemy { public function Jeep(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new JeepShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 3); addChild(m_shadow); m_container = new JeepClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.MediumGlassExplosion", 0.3, 1, false)); } } }//package game.enemies
Section 295
//LightTank (game.enemies.LightTank) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class LightTank extends BaseEnemy implements ILandEnemy { public function LightTank(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new LightTankShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 4); addChild(m_shadow); m_container = new LightTankClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.MediumVehicleExplosion", 1, 1, false)); } } }//package game.enemies
Section 296
//Modok (game.enemies.Modok) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class Modok extends BaseEnemy implements IAirEnemy { public function Modok(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new ModokShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 30); addChild(m_shadow); m_container = new ModokClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 8; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ var _local2:String; var _local1:int = Math.round((Math.random() * 1)); if (_local1 == 0){ _local2 = "assets_sfx.sfx.explosions.BossExplosion"; } else { _local2 = "assets_sfx.sfx.explosions.BossExplosion"; }; GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, _local2, 1.2, 1, false)); } } }//package game.enemies
Section 297
//MoleMan (game.enemies.MoleMan) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class MoleMan extends BaseEnemy implements ILandEnemy { public function MoleMan(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new MoleManShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 4); addChild(m_shadow); m_container = new MoleManClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 10; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.BossExplosion", 1.2, 1, false)); } } }//package game.enemies
Section 298
//Moleoid (game.enemies.Moleoid) package game.enemies { import com.markfennell.sound.*; import game.interfaces.*; import game.*; import assets.enemies.*; public class Moleoid extends BaseEnemy implements ILandEnemy { public function Moleoid(_arg1:Array, _arg2:Number, _arg3:int, _arg4:int, _arg5:int, _arg6:int){ super(_arg1, _arg2, _arg3, _arg4, _arg5, _arg6); m_shadow = new MoleoidShadowClip(); m_shadow.x = (Map.tileHalfW + 0); m_shadow.y = (Map.tileHalfH + 2); addChild(m_shadow); m_container = new MoleoidClip(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_ticksPerFrame = 5; m_healthBar = new HealthBar(); addChild(m_healthBar); m_healthBar.x = 5; m_healthBar.y = 1; } override protected function playDeathSound():void{ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.SmallExplosion", 0.7, 1, false)); } } }//package game.enemies
Section 299
//EnemyEvent (game.events.EnemyEvent) package game.events { import flash.events.*; import game.enemies.*; public class EnemyEvent extends Event { public var enemyType:String; public var waveID:int; public var enemyObject:BaseEnemy; public var routeID:int; public var health:int; public static const ENEMY_SPAWNED:String = "enemySpawned"; public static const ENEMY_KILLED:String = "enemyKilled"; public static const ENEMY_OBJECTIVE:String = "enemyObjective"; public static const SPAWN_ENEMY:String = "spawnEnemy"; public function EnemyEvent(_arg1:String, _arg2:BaseEnemy=null, _arg3:String="", _arg4:int=0, _arg5:int=0, _arg6:int=0){ super(_arg1, true); enemyObject = _arg2; enemyType = _arg3; health = _arg4; routeID = _arg5; waveID = _arg6; } } }//package game.events
Section 300
//FinanceEvent (game.events.FinanceEvent) package game.events { import flash.events.*; public class FinanceEvent extends Event { public var playerFunds:int; public static const UPDATE_FINANCE:String = "updateFinance"; public function FinanceEvent(_arg1:String, _arg2:int=0){ super(_arg1, true); playerFunds = _arg2; } } }//package game.events
Section 301
//GameEvent (game.events.GameEvent) package game.events { import flash.events.*; public class GameEvent extends Event { public var totalLives:int; public var finalScore:int; public var finalEarned:int; public var difficulty:int; public var currentLives:int; public static const LIFE_LOST:String = "lifeLost"; public static const GAME_WON_WAIT:String = "gameWonWait"; public static const GAME_WON_DISPLAY:String = "gameWonDisplay"; public static const START_GAME:String = "startGame"; public static const GO_TO_MAIN_MENU:String = "goToMainMenu"; public static const CHOOSE_DIFFICULTY:String = "chooseDifficulty"; public static const LIVES_SET:String = "livesSet"; public static const PAUSE_GAMEPLAY:String = "pauseGameplay"; public static const GAME_COMPLETE_EVALUATE_ACHIEVEMENTS:String = "gameCompleteEvaluateAchievements"; public static const GAME_LOST_WAIT:String = "gameLostWait"; public static const GO_TO_GAME_OVER:String = "goToGameOver"; public static const RESUME_GAMEPLAY:String = "resumeGameplay"; public static const GAME_LOST_DISPLAY:String = "gameLostDisplay"; public function GameEvent(_arg1:String, _arg2:int=0, _arg3:int=0, _arg4:int=0, _arg5:int=0, _arg6:int=0){ super(_arg1, true); currentLives = _arg2; totalLives = _arg3; difficulty = _arg4; finalScore = _arg5; finalEarned = _arg6; } } }//package game.events
Section 302
//HUDEvent (game.events.HUDEvent) package game.events { import flash.events.*; import game.interfaces.*; public class HUDEvent extends Event { public var rangeBonus:Boolean; public var towerType:String; public var towerObject:ITower; public var frequencyBonus:Boolean; public var towerLevel:String; public var difficulty:int; public static const SHOW_HELP:String = "showHelp"; public static const SHOW_MENU_HUD_FRAME:String = "showMenuHUDFrame"; public static const APPLY_UPGRADE:String = "applyUpgrade"; public static const SELECTED_TOWER_SELL:String = "selectedTowerSell"; public static const CLOSE_HELP:String = "closeHelp"; public static const EXIT_ATTEMPT:String = "exitAttempt"; public static const SHOW_GAME_HUD_FRAME:String = "showGameHUDFrame"; public static const RESUME_GAME:String = "resumeGame"; public static const DIFFICULTY_SELECTED:String = "difficultySelected"; public static const SELECTED_TOWER_CLEAR_SELECTION:String = "selectedTowerClearSelection"; public static const SELECTED_TOWER_SHOW_UPGRADES:String = "selectedTowershowUpgrades"; public static const CLOSE_SELECTION_PANEL:String = "closeSelectionPanel"; public static const SELECTED_TOWER_DRAW_SELECTION:String = "selectedTowerDrawSelection"; public static const PREVIEW_TOWER_ROLL_OVER:String = "previewTowerRollOver"; public static const CANCEL_EXIT_ATTEMPT:String = "cancelExitAttempt"; public static const PREVIEW_TOWER_MOUSE_DOWN:String = "previewTowerMouseDown"; public static const PREVIEW_TOWER_ROLL_OUT:String = "previewTowerRollOut"; public static const QUIT_GAME:String = "quitGame"; public static const PAUSE_GAME:String = "pauseGame"; public function HUDEvent(_arg1:String, _arg2:String="", _arg3:ITower=null, _arg4:String="", _arg5:Boolean=false, _arg6:Boolean=false, _arg7:int=0){ super(_arg1, true); towerType = _arg2; towerObject = _arg3; towerLevel = _arg4; frequencyBonus = _arg5; rangeBonus = _arg6; difficulty = _arg7; } } }//package game.events
Section 303
//ScoreEvent (game.events.ScoreEvent) package game.events { import flash.events.*; public class ScoreEvent extends Event { public var newScore:int; public var bonusComponent:int; public static const UPDATE_SCORE:String = "updateScore"; public function ScoreEvent(_arg1:String, _arg2:int=0, _arg3:int=0){ super(_arg1, true); newScore = _arg2; bonusComponent = _arg3; } } }//package game.events
Section 304
//TowerEvent (game.events.TowerEvent) package game.events { import flash.events.*; import game.interfaces.*; public class TowerEvent extends Event { public var towerType:String; public var towerObject:ITower; public var tower_cell_x:Number; public var tower_cell_y:Number; public var hasRangeBonus:Boolean; public var hasFrequencyBonus:Boolean; public var levelID:int; public static const UPGRADE_TOWER:String = "upgradeTower"; public static const BUILD_TOWER_COMPLETE:String = "buildTowerComplete"; public static const BUILD_TOWER:String = "buildTower"; public static const TOWER_UPGRADE_COMPLETE:String = "towerUpgradeComplete"; public static const SELL_TOWER:String = "sellTower"; public function TowerEvent(_arg1:String, _arg2:ITower=null, _arg3:int=0, _arg4:Boolean=false, _arg5:Boolean=false, _arg6:String="", _arg7:Number=0, _arg8:Number=0){ super(_arg1, true); towerObject = _arg2; towerType = _arg6; levelID = _arg3; hasFrequencyBonus = _arg4; hasRangeBonus = _arg5; tower_cell_x = _arg7; tower_cell_y = _arg8; } } }//package game.events
Section 305
//WaveEvent (game.events.WaveEvent) package game.events { import flash.events.*; import game.waves.*; public class WaveEvent extends Event { public var previousWaveMaxTime:int; public var timeTillNextWaveMin:int; public var currentWaveID:int; public var previousWaveTime:int; public var totalWaves:int; public var wave:Wave; public var timeTillNextWaveMax:int; public static const LOCK_NEXT_WAVE:String = "lockNextWave"; public static const UNLOCK_NEXT_WAVE:String = "unlockNextWave"; public static const ALL_WAVES_LAUNCHED:String = "allWavesLaunched"; public static const WAVE_LAUNCHED:String = "waveLaunched"; public static const REQUEST_NEXT_WAVE:String = "requestNextWave"; public static const WAVE_DEFEATED:String = "waveDefeated"; public function WaveEvent(_arg1:String, _arg2:int=0, _arg3:int=0, _arg4:int=0, _arg5:int=0, _arg6:int=0, _arg7:int=0, _arg8:Wave=null){ super(_arg1, true); timeTillNextWaveMin = _arg2; timeTillNextWaveMax = _arg3; currentWaveID = _arg4; totalWaves = _arg5; previousWaveTime = _arg6; previousWaveMaxTime = _arg7; wave = _arg8; } } }//package game.events
Section 306
//WeaponEvent (game.events.WeaponEvent) package game.events { import flash.events.*; import game.interfaces.*; public class WeaponEvent extends Event { public var towerLevel:int; public var spawnOffset:Object; public var enemyObject:IEnemy; public var towerObject:ITower; public var weaponObject:IWeapon; public static const ROCKET_FIRE:String = "rocketFire"; public static const MORTAR_FIRE:String = "mortarFire"; public static const MORTAR_DETONATE:String = "mortarDetonate"; public static const ROCKET_DETONATE:String = "rocketDetonate"; public static const BLASTER_FIRE:String = "blasterFire"; public static const LASER_FIRE:String = "laserFire"; public static const SLOWDOWN_FIRE:String = "slowdownFire"; public static const LIGHTNING_STOP:String = "lightningStop"; public static const LIGHTNING_FIRE:String = "lightningFire"; public static const SLOWDOWN_DETONATE:String = "slowdownDetonate"; public static const LASER_STOP:String = "laserStop"; public function WeaponEvent(_arg1:String, _arg2:ITower=null, _arg3:IEnemy=null, _arg4:IWeapon=null, _arg5:int=0, _arg6:Object=null){ super(_arg1, true); towerObject = _arg2; enemyObject = _arg3; weaponObject = _arg4; towerLevel = _arg5; spawnOffset = _arg6; } } }//package game.events
Section 307
//FinanceController (game.finance.FinanceController) package game.finance { import game.events.*; import flash.utils.*; import game.interfaces.*; import game.towers.*; import mochi.as3.*; public class FinanceController { private var m_md0:MochiDigits; private var m_md1:MochiDigits; public function FinanceController(){ FinanceData.instance.emptyTable(); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.BUILD_TOWER, towerBuildHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.UPGRADE_TOWER, towerUpgradeHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.SELL_TOWER, towerSellHandler, false, 0, true); GameBroadcaster.addEventListener(WaveEvent.WAVE_DEFEATED, waveDefeatedHandler, false, 0, true); } private function enemyKilledHandler(_arg1:EnemyEvent):void{ addPlayerFunds(_arg1.enemyObject.getMoney()); } private function removePlayerFunds(_arg1:int):void{ (FinanceData.instance.playerFunds = (FinanceData.instance.playerFunds - _arg1)); m_md0.addValue(-(_arg1)); GameBroadcaster.dispatchEvent(new FinanceEvent(FinanceEvent.UPDATE_FINANCE, FinanceData.instance.playerFunds)); } public function initFinance(_arg1:XML):void{ var _local5:*; var _local6:int; var _local7:*; var _local2:XML = _arg1.towers[0]; var _local3:Dictionary = FinanceData.instance.costTable; _local3[TowerController.BLASTER] = new Dictionary(); _local3[TowerController.BLASTER][TowerController.LEVEL_1] = int(_local2.blasterTower.@level1); _local3[TowerController.BLASTER][TowerController.LEVEL_2] = int(_local2.blasterTower.@level2); _local3[TowerController.BLASTER][TowerController.LEVEL_3] = int(_local2.blasterTower.@level3); _local3[TowerController.BLASTER][TowerController.FREQUENCY_BONUS] = int(_local2.blasterTower.@frequencyBonus); _local3[TowerController.BLASTER][TowerController.RANGE_BONUS] = int(_local2.blasterTower.@rangeBonus); _local3[TowerController.SLOWDOWN] = new Dictionary(); _local3[TowerController.SLOWDOWN][TowerController.LEVEL_1] = int(_local2.slowdownTower.@level1); _local3[TowerController.SLOWDOWN][TowerController.LEVEL_2] = int(_local2.slowdownTower.@level2); _local3[TowerController.SLOWDOWN][TowerController.LEVEL_3] = int(_local2.slowdownTower.@level3); _local3[TowerController.SLOWDOWN][TowerController.FREQUENCY_BONUS] = int(_local2.slowdownTower.@frequencyBonus); _local3[TowerController.SLOWDOWN][TowerController.RANGE_BONUS] = int(_local2.slowdownTower.@rangeBonus); _local3[TowerController.ROCKET] = new Dictionary(); _local3[TowerController.ROCKET][TowerController.LEVEL_1] = int(_local2.rocketTower.@level1); _local3[TowerController.ROCKET][TowerController.LEVEL_2] = int(_local2.rocketTower.@level2); _local3[TowerController.ROCKET][TowerController.LEVEL_3] = int(_local2.rocketTower.@level3); _local3[TowerController.ROCKET][TowerController.FREQUENCY_BONUS] = int(_local2.rocketTower.@frequencyBonus); _local3[TowerController.ROCKET][TowerController.RANGE_BONUS] = int(_local2.rocketTower.@rangeBonus); _local3[TowerController.LASER] = new Dictionary(); _local3[TowerController.LASER][TowerController.LEVEL_1] = int(_local2.laserTower.@level1); _local3[TowerController.LASER][TowerController.LEVEL_2] = int(_local2.laserTower.@level2); _local3[TowerController.LASER][TowerController.LEVEL_3] = int(_local2.laserTower.@level3); _local3[TowerController.LASER][TowerController.FREQUENCY_BONUS] = int(_local2.laserTower.@frequencyBonus); _local3[TowerController.LASER][TowerController.RANGE_BONUS] = int(_local2.laserTower.@rangeBonus); _local3[TowerController.LIGHTNING] = new Dictionary(); _local3[TowerController.LIGHTNING][TowerController.LEVEL_1] = int(_local2.lightningTower.@level1); _local3[TowerController.LIGHTNING][TowerController.LEVEL_2] = int(_local2.lightningTower.@level2); _local3[TowerController.LIGHTNING][TowerController.LEVEL_3] = int(_local2.lightningTower.@level3); _local3[TowerController.LIGHTNING][TowerController.FREQUENCY_BONUS] = int(_local2.lightningTower.@frequencyBonus); _local3[TowerController.LIGHTNING][TowerController.RANGE_BONUS] = int(_local2.lightningTower.@rangeBonus); var _local4:Dictionary = FinanceData.instance.resaleTable; _local4[TowerController.BLASTER] = Number(_local2.blasterTower.@resaleFraction); _local4[TowerController.SLOWDOWN] = Number(_local2.slowdownTower.@resaleFraction); _local4[TowerController.ROCKET] = Number(_local2.rocketTower.@resaleFraction); _local4[TowerController.LASER] = Number(_local2.laserTower.@resaleFraction); _local4[TowerController.LIGHTNING] = Number(_local2.lightningTower.@resaleFraction); for (_local5 in _local3) { for (_local7 in _local3[_local5]) { }; }; _local6 = _arg1.player.startingFunds.@funds; (FinanceData.instance.playerFunds = _local6); (FinanceData.instance.playerEarnings = _local6); (FinanceData.instance.playerSpendings = 0); (m_md0 = new MochiDigits(_local6)); } private function towerBuildHandler(_arg1:TowerEvent):void{ var _local2:String = TowerController.getTowerLevelString(null, _arg1.levelID); var _local3:Dictionary = FinanceData.instance.costTable; var _local4:int = _local3[_arg1.towerType][_local2]; var _local5:int; if (_arg1.hasFrequencyBonus){ _local5 = (_local5 + _local3[_arg1.towerType][TowerController.FREQUENCY_BONUS]); _local5; trace("FC build tower has frequency bonus"); }; if (_arg1.hasRangeBonus){ _local5 = (_local5 + _local3[_arg1.towerType][TowerController.RANGE_BONUS]); _local5; trace("FC build tower has range bonus"); }; var _local6:int = (_local4 + _local5); trace(("FC build, final cost " + _local6)); removePlayerFunds(_local6); (FinanceData.instance.playerSpendings = (FinanceData.instance.playerSpendings + _local6)); trace(("FC spendings $ " + FinanceData.instance.playerSpendings)); } private function towerSellHandler(_arg1:TowerEvent):void{ var _local2:int = evaluateTowerForSale(_arg1.towerObject); trace(("FC sale, final value " + _local2)); addPlayerFunds(_local2); } public function freeze():void{ if (FinanceData.instance.playerFunds != m_md0.value){ (m_md1 = new MochiDigits(1)); } else { (m_md1 = new MochiDigits(0)); }; } public function destroy():void{ GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler); GameBroadcaster.removeEventListener(TowerEvent.BUILD_TOWER, towerBuildHandler); GameBroadcaster.removeEventListener(TowerEvent.UPGRADE_TOWER, towerUpgradeHandler); GameBroadcaster.removeEventListener(TowerEvent.SELL_TOWER, towerSellHandler); GameBroadcaster.removeEventListener(WaveEvent.WAVE_DEFEATED, waveDefeatedHandler); } private function addPlayerFunds(_arg1:int):void{ (FinanceData.instance.playerFunds = (FinanceData.instance.playerFunds + _arg1)); (FinanceData.instance.playerEarnings = (FinanceData.instance.playerEarnings + _arg1)); m_md0.addValue(_arg1); GameBroadcaster.dispatchEvent(new FinanceEvent(FinanceEvent.UPDATE_FINANCE, FinanceData.instance.playerFunds)); } private function towerUpgradeHandler(_arg1:TowerEvent):void{ var _local5:String; var _local2:Dictionary = FinanceData.instance.costTable; var _local3:int; var _local4:String = TowerController.getTowerTypeString(_arg1.towerObject); if (_arg1.levelID != 0){ _local5 = TowerController.getTowerLevelString(null, _arg1.levelID); _local3 = (_local3 + _local2[_local4][_local5]); _local3; trace(("FC upgrade tower has level up, to: " + _local5)); }; if (_arg1.hasFrequencyBonus){ _local3 = (_local3 + _local2[_local4][TowerController.FREQUENCY_BONUS]); _local3; trace("FC upgrade tower has frequency bonus"); }; if (_arg1.hasRangeBonus){ _local3 = (_local3 + _local2[_local4][TowerController.RANGE_BONUS]); _local3; trace("FC upgrade tower has range bonus"); }; trace(("FC upgrade, final cost " + _local3)); removePlayerFunds(_local3); (FinanceData.instance.playerSpendings = (FinanceData.instance.playerSpendings + _local3)); trace(("FC spendings $ " + FinanceData.instance.playerSpendings)); } private function waveDefeatedHandler(_arg1:WaveEvent):void{ var _local2:int = _arg1.wave.cashBonus; trace(("FC waveDefeated, $: " + _local2)); addPlayerFunds(_local2); } public static function evaluateTowerForSale(_arg1:ITower):int{ var _local2:String = TowerController.getTowerTypeString(_arg1); var _local3:String = TowerController.getTowerLevelString(_arg1); var _local4:Dictionary = FinanceData.instance.costTable; var _local5:int = _local4[_local2][_local3]; var _local6:Object = _arg1.getUpgrades(); if (_local6.hasFrequencyBonus){ _local5 = (_local5 + _local4[_local2][TowerController.FREQUENCY_BONUS]); }; if (_local6.hasRangeBonus){ _local5 = (_local5 + _local4[_local2][TowerController.RANGE_BONUS]); }; var _local7:int = Math.ceil((_local5 * FinanceData.instance.resaleTable[_local2])); return (_local7); } } }//package game.finance
Section 308
//FinanceData (game.finance.FinanceData) package game.finance { import flash.events.*; import flash.utils.*; public class FinanceData extends EventDispatcher { private var m_resaleTable:Dictionary; private var m_costTable:Dictionary; private static var m_playerSpendings:int = 0; private static var m_instance:FinanceData = new (FinanceData); ; private static var m_playerFunds:int = 0; private static var m_playerEarnings:int = 0; public function FinanceData(){ if (m_instance){ throw (new Error("Error: FinanceData is a Singleton, and can only be accessed through FinanceData.instance")); }; m_instance = this; m_costTable = new Dictionary(); m_resaleTable = new Dictionary(); } public function emptyTable():void{ m_costTable = new Dictionary(); m_resaleTable = new Dictionary(); } public function get costTable():Dictionary{ return (m_costTable); } public function get playerEarnings():int{ return (m_playerEarnings); } public function get playerFunds():int{ return (m_playerFunds); } public function get playerSpendings():int{ return (m_playerSpendings); } public function get resaleTable():Dictionary{ return (m_resaleTable); } public function set playerFunds(_arg1:int):void{ if (_arg1 >= 0){ m_playerFunds = _arg1; }; } public function set playerEarnings(_arg1:int):void{ if (_arg1 >= 0){ m_playerEarnings = _arg1; }; } public function set playerSpendings(_arg1:int):void{ if (_arg1 >= 0){ m_playerSpendings = _arg1; }; } public static function get instance():FinanceData{ return (m_instance); } } }//package game.finance
Section 309
//BasePanel (game.hud.BasePanel) package game.hud { import flash.display.*; import game.interfaces.*; import org.casalib.display.*; import gs.*; public class BasePanel extends CasaSprite implements IHUDPanel { protected var m_transitionOut:Boolean;// = false protected var m_transitionIn:Boolean;// = false protected var m_container:MovieClip; public function doRender():void{ } override public function destroy():void{ super.destroy(); } public function transitionOut():void{ TweenMax.to(this, 0.1, {alpha:0, onComplete:destroy}); } public function transitionIn():void{ this.alpha = 0; TweenMax.to(this, 0.1, {alpha:1}); } public function doPhysics():void{ } } }//package game.hud
Section 310
//BossPopupController (game.hud.BossPopupController) package game.hud { import game.events.*; import flash.utils.*; import game.enemies.*; import assets.hud.*; import gs.*; public class BossPopupController extends BasePanel { private var m_xml:XML; private var m_drdoomHitObjective:Boolean;// = false private var m_modokHitObjective:Boolean;// = false private var m_molemanHitObjective:Boolean;// = false public function BossPopupController(_arg1:XML){ m_xml = _arg1; m_container = new BossPopupPanel(); addChild(m_container); m_container.alpha = 0; m_container.visible = false; GameBroadcaster.addEventListener(WaveEvent.WAVE_LAUNCHED, waveLaunchedHandler, false, 0, true); GameBroadcaster.addEventListener(WaveEvent.WAVE_DEFEATED, waveDefeatedHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, onEnemyObjective, false, 0, true); } private function waveDefeatedHandler(_arg1:WaveEvent):void{ if (_arg1.wave.waveID == 9){ if (!m_molemanHitObjective){ showPopup("moleman", m_xml.moleman.success, m_xml.moleman.success.@displayTime); }; } else { if (_arg1.wave.waveID == 19){ if (!m_modokHitObjective){ showPopup("modok", m_xml.modok.success, m_xml.modok.success.@displayTime); }; } else { if (_arg1.wave.waveID == 29){ if (!m_drdoomHitObjective){ }; }; }; }; } private function onEnemyObjective(_arg1:EnemyEvent):void{ var _local2:String = EnemyController.getTypeOfEnemy(_arg1.enemyObject); if (_local2 == EnemyController.DRDOOM){ m_drdoomHitObjective = true; } else { if (_local2 == EnemyController.MODOK){ m_modokHitObjective = true; showPopup("modok", m_xml.modok.fail, m_xml.modok.fail.@displayTime); } else { if (_local2 == EnemyController.MOLEMAN){ m_molemanHitObjective = true; showPopup("moleman", m_xml.moleman.fail, m_xml.moleman.fail.@displayTime); }; }; }; } private function hidePopup():void{ TweenMax.to(m_container, 0.5, {autoAlpha:0}); } private function showPopup(_arg1:String, _arg2:String, _arg3:int):void{ trace(((("BossPopupController launching from: " + _arg1) + ", message: ") + _arg2)); m_container.avatar.gotoAndStop(_arg1); m_container.txt.text = _arg2; m_container.visible = true; TweenMax.to(m_container, 0.5, {alpha:1}); setTimeout(hidePopup, _arg3); } override public function destroy():void{ GameBroadcaster.removeEventListener(WaveEvent.WAVE_LAUNCHED, waveLaunchedHandler); GameBroadcaster.removeEventListener(WaveEvent.WAVE_DEFEATED, waveDefeatedHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, onEnemyObjective); TweenMax.killTweensOf(m_container); super.destroy(); } private function waveLaunchedHandler(_arg1:WaveEvent):void{ if (_arg1.wave.waveID == 9){ showPopup("moleman", m_xml.moleman.launch, m_xml.moleman.launch.@displayTime); } else { if (_arg1.wave.waveID == 19){ showPopup("modok", m_xml.modok.launch, m_xml.modok.launch.@displayTime); } else { if (_arg1.wave.waveID == 29){ showPopup("drdoom", m_xml.drdoom.launch, m_xml.drdoom.launch.@displayTime); }; }; }; } } }//package game.hud
Section 311
//BuyPanel (game.hud.BuyPanel) package game.hud { import flash.events.*; import game.events.*; import flash.utils.*; import game.finance.*; import game.towers.*; import assets.hud.*; public class BuyPanel extends BasePanel { private var m_cyclopsButton:TowerSelectionButton; private var m_blasterSufficientFunds:Boolean;// = true private var m_msmarvelButton:TowerSelectionButton; private var m_rocketSufficientFunds:Boolean;// = true private var m_ironmanButton:TowerSelectionButton; private var m_spidermanButton:TowerSelectionButton; private var m_laserSufficientFunds:Boolean;// = true private var m_slowdownSufficientFunds:Boolean;// = true private var m_statsPanel:BuyStatsPanel; private var m_lightningSufficientFunds:Boolean;// = true private var m_thorButton:TowerSelectionButton; public function BuyPanel(){ m_container = new BuyPanel(); addChild(m_container); m_statsPanel = new BuyStatsPanel(); addChild(m_statsPanel); m_statsPanel.updateStats(TowerController.BLASTER); GameBroadcaster.addEventListener(FinanceEvent.UPDATE_FINANCE, onFinanceChange, false, 0, true); GameBroadcaster.addEventListener(ScoreEvent.UPDATE_SCORE, onScoreUpdate, false, 0, true); m_msmarvelButton = new TowerSelectionButton(m_container.msmarvelDisabled, m_container.msmarvelEnabled, m_container.msmarvelOver); m_spidermanButton = new TowerSelectionButton(m_container.spidermanDisabled, m_container.spidermanEnabled, m_container.spidermanOver); m_ironmanButton = new TowerSelectionButton(m_container.ironmanDisabled, m_container.ironmanEnabled, m_container.ironmanOver); m_thorButton = new TowerSelectionButton(m_container.thorDisabled, m_container.thorEnabled, m_container.thorOver); m_cyclopsButton = new TowerSelectionButton(m_container.cyclopsDisabled, m_container.cyclopsEnabled, m_container.cyclopsOver); addTowerButtonListeners(m_msmarvelButton); addTowerButtonListeners(m_spidermanButton); addTowerButtonListeners(m_ironmanButton); addTowerButtonListeners(m_thorButton); addTowerButtonListeners(m_cyclopsButton); evaluatePlayerFunds(FinanceData.instance.playerFunds); } private function onRollOverHandler(_arg1:Event):void{ var _local2:String; switch (_arg1.target){ case m_msmarvelButton: _local2 = TowerController.BLASTER; break; case m_spidermanButton: _local2 = TowerController.SLOWDOWN; break; case m_ironmanButton: _local2 = TowerController.ROCKET; break; case m_cyclopsButton: _local2 = TowerController.LASER; break; case m_thorButton: _local2 = TowerController.LIGHTNING; break; }; m_statsPanel.updateStats(_local2); GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.PREVIEW_TOWER_ROLL_OVER, _local2)); } private function removeTowerButtonListeners(_arg1:TowerSelectionButton):void{ _arg1.removeEventListener(TowerSelectionButton.ROLL_OVER, onRollOverHandler); _arg1.removeEventListener(TowerSelectionButton.ROLL_OUT, onRollOutHandler); _arg1.removeEventListener(TowerSelectionButton.MOUSE_DOWN, onMouseDownHandler); } private function onFinanceChange(_arg1:FinanceEvent):void{ evaluatePlayerFunds(_arg1.playerFunds); } private function onMouseDownHandler(_arg1:Event):void{ var _local2:String; switch (_arg1.target){ case m_msmarvelButton: _local2 = TowerController.BLASTER; break; case m_spidermanButton: _local2 = TowerController.SLOWDOWN; break; case m_ironmanButton: _local2 = TowerController.ROCKET; break; case m_cyclopsButton: _local2 = TowerController.LASER; break; case m_thorButton: _local2 = TowerController.LIGHTNING; break; }; GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.PREVIEW_TOWER_MOUSE_DOWN, _local2)); } private function onScoreUpdate(_arg1:ScoreEvent):void{ } private function addTowerButtonListeners(_arg1:TowerSelectionButton):void{ _arg1.addEventListener(TowerSelectionButton.ROLL_OVER, onRollOverHandler, false, 0, true); _arg1.addEventListener(TowerSelectionButton.ROLL_OUT, onRollOutHandler, false, 0, true); _arg1.addEventListener(TowerSelectionButton.MOUSE_DOWN, onMouseDownHandler, false, 0, true); } private function evaluatePlayerFunds(_arg1:int):void{ var _local3:int; var _local2:Dictionary = FinanceData.instance.costTable; _local3 = _local2[TowerController.BLASTER][TowerController.LEVEL_1]; if ((((_arg1 < _local3)) && (m_blasterSufficientFunds))){ m_msmarvelButton.disableButton(); m_blasterSufficientFunds = false; } else { if ((((_arg1 >= _local3)) && (!(m_blasterSufficientFunds)))){ m_msmarvelButton.enableButton(); m_blasterSufficientFunds = true; }; }; _local3 = _local2[TowerController.SLOWDOWN][TowerController.LEVEL_1]; if ((((_arg1 < _local3)) && (m_slowdownSufficientFunds))){ m_spidermanButton.disableButton(); m_slowdownSufficientFunds = false; } else { if ((((_arg1 >= _local3)) && (!(m_slowdownSufficientFunds)))){ m_spidermanButton.enableButton(); m_slowdownSufficientFunds = true; }; }; _local3 = _local2[TowerController.ROCKET][TowerController.LEVEL_1]; if ((((_arg1 < _local3)) && (m_rocketSufficientFunds))){ m_ironmanButton.disableButton(); m_rocketSufficientFunds = false; } else { if ((((_arg1 >= _local3)) && (!(m_rocketSufficientFunds)))){ m_ironmanButton.enableButton(); m_rocketSufficientFunds = true; }; }; _local3 = _local2[TowerController.LASER][TowerController.LEVEL_1]; if ((((_arg1 < _local3)) && (m_laserSufficientFunds))){ m_cyclopsButton.disableButton(); m_laserSufficientFunds = false; } else { if ((((_arg1 >= _local3)) && (!(m_laserSufficientFunds)))){ m_cyclopsButton.enableButton(); m_laserSufficientFunds = true; }; }; _local3 = _local2[TowerController.LIGHTNING][TowerController.LEVEL_1]; if ((((_arg1 < _local3)) && (m_lightningSufficientFunds))){ m_thorButton.disableButton(); m_lightningSufficientFunds = false; } else { if ((((_arg1 >= _local3)) && (!(m_lightningSufficientFunds)))){ m_thorButton.enableButton(); m_lightningSufficientFunds = true; }; }; } override public function destroy():void{ GameBroadcaster.removeEventListener(FinanceEvent.UPDATE_FINANCE, onFinanceChange); GameBroadcaster.removeEventListener(ScoreEvent.UPDATE_SCORE, onScoreUpdate); removeTowerButtonListeners(m_msmarvelButton); removeTowerButtonListeners(m_spidermanButton); removeTowerButtonListeners(m_ironmanButton); removeTowerButtonListeners(m_thorButton); removeTowerButtonListeners(m_cyclopsButton); m_msmarvelButton.destroy(); m_spidermanButton.destroy(); m_ironmanButton.destroy(); m_thorButton.destroy(); m_cyclopsButton.destroy(); m_statsPanel.destroy(); super.destroy(); } private function onRollOutHandler(_arg1:Event):void{ var _local2:String; switch (_arg1.target){ case m_msmarvelButton: _local2 = TowerController.BLASTER; break; case m_spidermanButton: _local2 = TowerController.SLOWDOWN; break; case m_ironmanButton: _local2 = TowerController.ROCKET; break; case m_cyclopsButton: _local2 = TowerController.LASER; break; case m_thorButton: _local2 = TowerController.LIGHTNING; break; }; GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.PREVIEW_TOWER_ROLL_OUT, _local2)); } } }//package game.hud
Section 312
//BuyStatsPanel (game.hud.BuyStatsPanel) package game.hud { import game.finance.*; import game.towers.*; import assets.hud.*; public class BuyStatsPanel extends BasePanel { private var m_towerType:String; private var m_stats:StatBar; public function BuyStatsPanel(){ m_container = new BuyStatsPanel(); addChild(m_container); m_stats = new StatBar(m_container.statBar); } public function updateStats(_arg1:String):void{ var _local2:int; m_towerType = _arg1; switch (m_towerType){ case TowerController.BLASTER: _local2 = FinanceData.instance.costTable[TowerController.BLASTER][TowerController.LEVEL_1]; m_container.label.gotoAndStop("msmarvel"); break; case TowerController.SLOWDOWN: _local2 = FinanceData.instance.costTable[TowerController.SLOWDOWN][TowerController.LEVEL_1]; m_container.label.gotoAndStop("spiderman"); break; case TowerController.ROCKET: _local2 = FinanceData.instance.costTable[TowerController.ROCKET][TowerController.LEVEL_1]; m_container.label.gotoAndStop("ironman"); break; case TowerController.LASER: _local2 = FinanceData.instance.costTable[TowerController.LASER][TowerController.LEVEL_1]; m_container.label.gotoAndStop("cyclops"); break; case TowerController.LIGHTNING: _local2 = FinanceData.instance.costTable[TowerController.LIGHTNING][TowerController.LEVEL_1]; m_container.label.gotoAndStop("thor"); break; }; m_container.cost_txt.text = ("$" + _local2); m_stats.initialiseWithType(m_towerType, TowerController.LEVEL_1); } override public function destroy():void{ super.destroy(); } } }//package game.hud
Section 313
//ConfirmExitPanel (game.hud.ConfirmExitPanel) package game.hud { import flash.events.*; import com.markfennell.sound.*; import game.events.*; import ui.*; import assets.hud.*; import gs.*; public class ConfirmExitPanel extends BasePanel { private var m_noButton:SingleGraphicGlowButton; private var m_yesButton:SingleGraphicGlowButton; public function ConfirmExitPanel(){ m_container = new ConfirmExitScreen(); addChild(m_container); m_yesButton = new SingleGraphicGlowButton(m_container.yesButton, m_container.yesGlow); m_noButton = new SingleGraphicGlowButton(m_container.noButton, m_container.noGlow); m_yesButton.addEventListener(SingleGraphicGlowButton.CLICKED, yesClickHandler, false, 0, true); m_noButton.addEventListener(SingleGraphicGlowButton.CLICKED, noClickHandler, false, 0, true); } override public function transitionIn():void{ m_container.alpha = 0; TweenMax.to(m_container, 0.25, {alpha:1}); } private function noClickHandler(_arg1:Event):void{ TweenMax.to(m_container, 0.25, {alpha:0, onComplete:noDelayComplete}); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } private function yesClickHandler(_arg1:Event):void{ TweenMax.to(m_container, 0.25, {alpha:0, onComplete:yesDelayComplete}); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } private function yesDelayComplete():void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.QUIT_GAME)); } private function noDelayComplete():void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.CANCEL_EXIT_ATTEMPT)); } override public function destroy():void{ m_yesButton.removeEventListener(SingleGraphicGlowButton.CLICKED, yesClickHandler); m_noButton.removeEventListener(SingleGraphicGlowButton.CLICKED, noClickHandler); m_yesButton.destroy(); m_noButton.destroy(); super.destroy(); } } }//package game.hud
Section 314
//GameBottomPanel (game.hud.GameBottomPanel) package game.hud { import flash.events.*; import console.*; import game.events.*; import hud.*; import ui.*; import assets.hud.*; public class GameBottomPanel extends BaseMarvelHudComponent { private var m_timeTillNextWaveMax:int; private var m_isAnimating:Boolean;// = false private var m_timeTillNextWaveCounter:int; private var m_waveCountdownActive:Boolean;// = false private var m_canSendNextWave:Boolean;// = false private var m_nextWaveIsLocked:Boolean;// = false private var m_waveButton:SingleGraphicGlowButton; private var m_goalPercentage:Number; private var m_currentPercentage:Number; private var m_timeTillNextWaveMin:int; private var m_nextWavePermanentLock:Boolean;// = false public function GameBottomPanel(){ m_container = new GameBottomPanel(); addChild(m_container); GameBroadcaster.addEventListener(WaveEvent.WAVE_LAUNCHED, onWaveLaunch, false, 0, true); GameBroadcaster.addEventListener(WaveEvent.LOCK_NEXT_WAVE, onNextWaveLock, false, 0, true); GameBroadcaster.addEventListener(WaveEvent.UNLOCK_NEXT_WAVE, onNextWaveUnlock, false, 0, true); GameBroadcaster.addEventListener(GameEvent.LIFE_LOST, onLivesChange, false, 0, true); GameBroadcaster.addEventListener(GameEvent.PAUSE_GAMEPLAY, pauseGameplayHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.RESUME_GAMEPLAY, resumeGameplayHandler, false, 0, true); m_waveButton = new SingleGraphicGlowButton(m_container.sendNextWave, m_container.nextWaveGlow); m_waveButton.addEventListener(SingleGraphicGlowButton.CLICKED, m_waveButtonHandler, false, 0, true); m_waveButton.disableButton(); m_goalPercentage = 1; m_currentPercentage = 1; m_isAnimating = false; m_container.livesProgress.aliveMask.scaleX = m_currentPercentage; m_container.livesProgress.deadMask.scaleX = (1 - m_currentPercentage); } private function updateWaveProgress():void{ m_timeTillNextWaveCounter++; if (((((((!(m_nextWavePermanentLock)) && (!(m_canSendNextWave)))) && ((m_timeTillNextWaveCounter >= m_timeTillNextWaveMin)))) && (!(m_nextWaveIsLocked)))){ m_canSendNextWave = true; m_waveButton.enableButton(); }; } override public function doRender():void{ super.doRender(); if (m_waveCountdownActive){ updateWaveRender(); }; if (m_isAnimating){ updateLivesRender(); }; } private function updateLivesProgress():void{ m_currentPercentage = (m_currentPercentage - 0.02); if (m_currentPercentage < m_goalPercentage){ m_currentPercentage = m_goalPercentage; m_isAnimating = false; } else { if (m_goalPercentage == 0){ m_currentPercentage = 0; }; }; } private function onNextWaveLock(_arg1:WaveEvent):void{ m_nextWaveIsLocked = true; m_waveButton.disableEvents(); } private function resumeGameplayHandler(_arg1:GameEvent):void{ if (!m_nextWavePermanentLock){ m_waveButton.enableEvents(); }; } private function onWaveLaunch(_arg1:WaveEvent):void{ var _local2:int = (_arg1.currentWaveID + 1); m_container.wave_txt.text = ((_local2 + "/") + _arg1.totalWaves); m_waveCountdownActive = true; m_timeTillNextWaveCounter = 0; m_timeTillNextWaveMin = _arg1.timeTillNextWaveMin; m_timeTillNextWaveMax = _arg1.timeTillNextWaveMax; m_canSendNextWave = false; m_waveButton.disableButton(); if ((_arg1.currentWaveID + 1) == _arg1.totalWaves){ m_nextWavePermanentLock = true; m_waveButton.disableEvents(); trace("GameBottomPanel > Next wave events disabled, final round"); }; trace(((("wave min time: " + m_timeTillNextWaveMin) + " wave max time: ") + m_timeTillNextWaveMax)); } override public function destroy():void{ GameBroadcaster.removeEventListener(WaveEvent.WAVE_LAUNCHED, onWaveLaunch); GameBroadcaster.removeEventListener(WaveEvent.LOCK_NEXT_WAVE, onNextWaveLock); GameBroadcaster.removeEventListener(WaveEvent.UNLOCK_NEXT_WAVE, onNextWaveUnlock); GameBroadcaster.removeEventListener(GameEvent.LIFE_LOST, onLivesChange); GameBroadcaster.removeEventListener(GameEvent.PAUSE_GAMEPLAY, pauseGameplayHandler); GameBroadcaster.removeEventListener(GameEvent.RESUME_GAMEPLAY, resumeGameplayHandler); m_waveButton.removeEventListener(SingleGraphicGlowButton.CLICKED, m_waveButtonHandler); m_waveButton.destroy(); trace("GameBottomPanel destroy"); super.destroy(); } private function m_waveButtonHandler(_arg1:Event):void{ if (!Console.paused){ trace(((("GameBottomPanel nextWaveButton click, timer: " + m_timeTillNextWaveCounter) + " min: ") + m_timeTillNextWaveMin)); GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.REQUEST_NEXT_WAVE)); }; } private function pauseGameplayHandler(_arg1:GameEvent):void{ m_waveButton.disableEvents(); } private function onNextWaveUnlock(_arg1:WaveEvent):void{ m_nextWaveIsLocked = false; if (!m_nextWavePermanentLock){ m_waveButton.enableEvents(); }; } private function updateWaveRender():void{ var _local1:Number = (m_timeTillNextWaveCounter / m_timeTillNextWaveMin); var _local2:Number = (m_timeTillNextWaveCounter / m_timeTillNextWaveMax); _local1 = ((_local1)>1) ? 1 : _local1; _local2 = ((_local2)>1) ? 1 : _local2; m_container.waveProgress.minMask.scaleX = (int((_local1 * 100)) / 100); m_container.waveProgress.maxMask.scaleX = (int((_local2 * 100)) / 100); } private function updateLivesRender():void{ m_container.livesProgress.aliveMask.scaleX = m_currentPercentage; m_container.livesProgress.deadMask.scaleX = (1 - m_currentPercentage); } override public function doPhysics():void{ if (m_waveCountdownActive){ updateWaveProgress(); }; if (m_isAnimating){ updateLivesProgress(); }; } private function onLivesChange(_arg1:GameEvent):void{ m_goalPercentage = (_arg1.currentLives / _arg1.totalLives); m_isAnimating = true; if (_arg1.currentLives == 0){ m_nextWavePermanentLock = true; m_waveButton.disableButton(); }; } } }//package game.hud
Section 315
//GameDifficultyPanel (game.hud.GameDifficultyPanel) package game.hud { import flash.events.*; import com.markfennell.sound.*; import game.events.*; import ui.*; import assets.hud.*; import gs.*; public class GameDifficultyPanel extends BasePanel { private var m_normalButton:SingleGraphicGlowButton; private var m_difficulty:int; private var m_epicButton:SingleGraphicGlowButton; public function GameDifficultyPanel(){ m_container = new DifficultySelectScreen(); addChild(m_container); m_epicButton = new SingleGraphicGlowButton(m_container.epicButton, m_container.epicGlow); m_normalButton = new SingleGraphicGlowButton(m_container.normalButton, m_container.normalGlow); m_epicButton.addEventListener(SingleGraphicGlowButton.CLICKED, clickHandler, false, 0, true); m_normalButton.addEventListener(SingleGraphicGlowButton.CLICKED, clickHandler, false, 0, true); } override public function destroy():void{ m_epicButton.removeEventListener(SingleGraphicGlowButton.CLICKED, clickHandler); m_normalButton.removeEventListener(SingleGraphicGlowButton.CLICKED, clickHandler); m_epicButton.destroy(); m_normalButton.destroy(); super.destroy(); } private function clickHandler(_arg1:Event):void{ if (_arg1.target == m_epicButton){ m_difficulty = 1; } else { if (_arg1.target == m_normalButton){ m_difficulty = 0; }; }; TweenMax.to(m_container, 0.25, {alpha:0, onComplete:delayComplete}); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } private function delayComplete():void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.DIFFICULTY_SELECTED, "", null, "", false, false, m_difficulty)); } override public function transitionIn():void{ m_container.alpha = 0; TweenMax.to(m_container, 0.25, {alpha:1}); } } }//package game.hud
Section 316
//GameHelpPanel (game.hud.GameHelpPanel) package game.hud { import flash.events.*; import com.markfennell.sound.*; import game.events.*; import ui.*; import pages.helpbrowser.*; import assets.hud.*; import gs.*; public class GameHelpPanel extends BasePanel { private var m_browser:HelpBrowser; private var m_closeButton:SingleGraphicGlowButton; public function GameHelpPanel(){ m_container = new GameHelpScreen(); addChild(m_container); m_closeButton = new SingleGraphicGlowButton(m_container.closeButton, m_container.closeGlow); m_closeButton.addEventListener(SingleGraphicGlowButton.CLICKED, returnClickHandler, false, 0, true); m_browser = new HelpBrowser(); m_browser.x = 70; m_browser.y = 100; addChild(m_browser); } override public function transitionIn():void{ m_container.alpha = 0; TweenMax.to(m_container, 0.25, {alpha:1}); } private function returnClickHandler(_arg1:Event):void{ TweenMax.to(m_container, 0.25, {alpha:0, onComplete:fadeDownComplete}); TweenMax.to(m_browser, 0.25, {alpha:0}); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } override public function destroy():void{ m_closeButton.removeEventListener(SingleGraphicGlowButton.CLICKED, returnClickHandler); m_closeButton.destroy(); m_browser.destroy(); super.destroy(); } private function fadeDownComplete():void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.CLOSE_HELP)); } } }//package game.hud
Section 317
//GameLostPanel (game.hud.GameLostPanel) package game.hud { import game.events.*; import flash.utils.*; import assets.hud.*; import gs.*; public class GameLostPanel extends BasePanel { private var delayInterval:int; public function GameLostPanel(){ m_container = new GameDefeatScreen(); addChild(m_container); delayInterval = setTimeout(delayComplete, 10000); } override public function destroy():void{ super.destroy(); } override public function transitionIn():void{ m_container.alpha = 0; TweenMax.to(m_container, 0.25, {alpha:1}); } private function fadeDownComplete():void{ GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GO_TO_GAME_OVER)); } private function delayComplete():void{ TweenMax.to(m_container, 0.25, {onComplete:fadeDownComplete}); } } }//package game.hud
Section 318
//GamePausedPanel (game.hud.GamePausedPanel) package game.hud { import flash.events.*; import console.*; import com.markfennell.sound.*; import ui.*; import assets.hud.*; import gs.*; public class GamePausedPanel extends BasePanel { private var m_pausedButton:SingleGraphicGlowButton; public function GamePausedPanel(){ m_container = new GamePauseScreen(); addChild(m_container); m_pausedButton = new SingleGraphicGlowButton(m_container.pauseButton, m_container.pauseGlow); m_container.addEventListener(MouseEvent.CLICK, mapClickHandler, false, 0, true); } private function pausedClickHandler(_arg1:Event):void{ TweenMax.to(m_container, 0.25, {alpha:0, onComplete:fadeDownComplete}); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } override public function destroy():void{ m_container.removeEventListener(MouseEvent.CLICK, mapClickHandler); m_pausedButton.destroy(); super.destroy(); } private function fadeDownComplete():void{ GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.PAUSE)); } override public function transitionIn():void{ m_container.alpha = 0; TweenMax.to(m_container, 0.25, {alpha:1}); } private function mapClickHandler(_arg1:Event):void{ TweenMax.to(m_container, 0.25, {alpha:0, onComplete:fadeDownComplete}); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } } }//package game.hud
Section 319
//GameTopPanel (game.hud.GameTopPanel) package game.hud { import flash.events.*; import game.events.*; import hud.*; import game.finance.*; import org.casalib.util.*; import assets.hud.*; public class GameTopPanel extends BaseMarvelHudComponent { public function GameTopPanel(){ m_container = new GameTopPanel(); addChild(m_container); m_container.cash_txt.text = ("$" + NumberUtil.format(FinanceData.instance.playerFunds, 1, ",", "")); m_container.score_txt.text = "0"; m_container.helpBtn.buttonMode = true; m_container.helpBtn.addEventListener(MouseEvent.CLICK, onHelpClick, false, 0, true); GameBroadcaster.addEventListener(FinanceEvent.UPDATE_FINANCE, onFinanceChange, false, 0, true); GameBroadcaster.addEventListener(ScoreEvent.UPDATE_SCORE, onScoreChange, false, 0, true); } private function onScoreChange(_arg1:ScoreEvent):void{ m_container.score_txt.text = NumberUtil.format(_arg1.newScore, 1, ",", ""); } override public function doRender():void{ updateWaveRender(); } override public function doPhysics():void{ updateWaveProgress(); } private function onFinanceChange(_arg1:FinanceEvent):void{ m_container.cash_txt.text = ("$" + NumberUtil.format(_arg1.playerFunds, 1, ",", "")); } private function updateWaveProgress():void{ } override public function destroy():void{ GameBroadcaster.removeEventListener(FinanceEvent.UPDATE_FINANCE, onFinanceChange); GameBroadcaster.removeEventListener(ScoreEvent.UPDATE_SCORE, onScoreChange); m_container.helpBtn.removeEventListener(MouseEvent.CLICK, onHelpClick); super.destroy(); } private function onHelpClick(_arg1:MouseEvent):void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SHOW_HELP)); } private function updateWaveRender():void{ } } }//package game.hud
Section 320
//GameWonPanel (game.hud.GameWonPanel) package game.hud { import flash.events.*; import console.*; import game.events.*; import flash.utils.*; import net.*; import ui.*; import fl.motion.easing.*; import assets.hud.*; import gs.*; public class GameWonPanel extends BasePanel { private var delayInterval:int; private var m_videoPlayerWrapper:VideoPlayerWrapper; private var m_skipBtn:DoubleGraphicButton; public function GameWonPanel(){ m_container = new GameVictoryScreen(); addChild(m_container); delayInterval = setTimeout(delayComplete, 10000); m_container.victoryImage.alpha = 0; TweenMax.to(m_container.victoryImage, 0.5, {alpha:1, delay:1}); m_container.skipBtn.visible = false; m_container.skipGlowBtn.visible = false; } override public function destroy():void{ trace("GameWonPanel destroy"); m_videoPlayerWrapper.removeEventListener(VideoPlayerWrapper.VIDEO_FINISH, videoFinishHandler); m_videoPlayerWrapper.removeEventListener(VideoPlayerWrapper.VIDEO_START, videoStartHandler); m_videoPlayerWrapper.destroy(); m_skipBtn.removeEventListener(DoubleGraphicButton.CLICKED, skipClickHandler); m_skipBtn.destroy(); super.destroy(); } private function videoStartHandler(_arg1:Event):void{ Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "gameWonVideo", "start"); TweenMax.to(m_container.victoryImage, 0.4, {scaleX:2, scaleY:2, x:(-(m_container.victoryImage.width) / 2), y:(-(m_container.victoryImage.height) / 2), alpha:0, onComplete:hideVictoryImage, ease:Quadratic.easeIn}); } private function closePanel():void{ GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GO_TO_GAME_OVER)); } private function hideVictoryImage():void{ m_container.victoryImage.visible = false; } private function videoFinishHandler(_arg1:Event):void{ Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "gameWonVideo", "videoComplete"); closePanel(); } private function skipClickHandler(_arg1:Event):void{ Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "gameWonVideo", "videoSkipped"); closePanel(); } private function delayComplete():void{ m_videoPlayerWrapper = new VideoPlayerWrapper(Constants.GAME_WON_VIDEO_URL, m_container.videoWindow); m_videoPlayerWrapper.addEventListener(VideoPlayerWrapper.VIDEO_FINISH, videoFinishHandler, false, 0, true); m_videoPlayerWrapper.addEventListener(VideoPlayerWrapper.VIDEO_START, videoStartHandler, false, 0, true); m_skipBtn = new DoubleGraphicButton(m_container.skipBtn, m_container.skipGlowBtn); m_skipBtn.addEventListener(DoubleGraphicButton.CLICKED, skipClickHandler, false, 0, true); m_container.skipBtn.visible = true; m_container.skipGlowBtn.visible = true; SoundController.getInstance().pause_music(true); } } }//package game.hud
Section 321
//HUDBuildDisplay (game.hud.HUDBuildDisplay) package game.hud { import flash.display.*; import org.casalib.display.*; import game.*; import flash.filters.*; import assets.hud.*; public class HUDBuildDisplay extends CasaSprite { private var m_redStrokeColour:uint;// = 15869720 private var m_array:Array; private var m_greenFilter:GlowFilter; private var m_redFilter:GlowFilter; private var m_cellClip:MovieClip; private var m_x:int; private var m_y:int; private var m_range:int; private var m_container:CasaSprite; private var m_greenStrokeColour:uint;// = 1299982 private var m_rangeShape:CasaSprite; private function drawRangeCircle(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean):void{ var _local5:uint; var _local6:GlowFilter; if (m_rangeShape != null){ m_rangeShape.destroy(); }; m_rangeShape = new CasaSprite(); m_container.addChild(m_rangeShape); m_rangeShape.x = (_arg1 + Map.tileHalfW); m_rangeShape.y = (_arg2 + Map.tileHalfH); if (_arg4){ _local5 = m_greenStrokeColour; _local6 = m_greenFilter; } else { _local5 = m_redStrokeColour; _local6 = m_redFilter; }; m_rangeShape.graphics.beginFill(0, 0.1); m_rangeShape.graphics.lineStyle(2, _local5, 1); m_rangeShape.graphics.drawCircle(0, 0, _arg3); m_rangeShape.filters = [_local6]; } public function hideDisplay():void{ m_container.visible = false; } public function newCell(_arg1:int, _arg2:int):void{ m_x = _arg1; m_y = _arg2; m_container.visible = true; if (m_cellClip != null){ m_container.removeChild(m_cellClip); m_cellClip = null; }; if (m_rangeShape != null){ m_rangeShape.destroy(); m_rangeShape = null; }; if (m_array[m_y][m_x] == true){ m_cellClip = new HoverAllowed(); } else { m_cellClip = new HoverDenied(); }; m_cellClip.x = (m_x * Map.tileW); m_cellClip.y = (m_y * Map.tileH); m_container.addChild(m_cellClip); drawRangeCircle((m_x * Map.tileW), (m_y * Map.tileH), m_range, m_array[m_y][m_x]); } public function newDrag(_arg1:Array, _arg2:int):void{ if (m_container != null){ m_container.destroy(); }; m_array = _arg1; m_range = _arg2; m_greenFilter = new GlowFilter(1572369, 1, 10, 10, 1, 1); m_redFilter = new GlowFilter(15869720, 1, 10, 10, 1, 1); m_container = new CasaSprite(); addChild(m_container); } override public function destroy():void{ if (m_container != null){ m_container.destroy(); }; super.destroy(); } public function endDrag():void{ if (m_cellClip != null){ m_container.removeChild(m_cellClip); m_cellClip = null; }; if (m_rangeShape != null){ m_rangeShape.destroy(); m_rangeShape = null; }; m_container.destroy(); } } }//package game.hud
Section 322
//HUDController (game.hud.HUDController) package game.hud { import flash.events.*; import flash.display.*; import game.events.*; import game.interfaces.*; import hud.*; import org.casalib.display.*; import game.towers.*; import org.casalib.util.*; import game.*; import assets.hud.*; public class HUDController extends Sprite { private var m_draggingTowerType:String; private var m_buildDisplay:HUDBuildDisplay; private var m_placementOffsetX:int; private var m_placementOffsetY:int; private var m_draggingY:int; private var m_draggingX:int; private var m_draggingTower:MovieClip; private var m_mapRef:CasaSprite; private var m_confirmExitPanel:BasePanel; private var m_bossPanel:BasePanel; private var m_state:String; private var m_towersPanel:BasePanel; private var m_popupPanel:BasePanel; private var m_marvelBottomPanel:BaseMarvelHudComponent; private var m_draggingCellX:int; private var m_draggingCellY:int; private var m_popupState:String; private var m_selectedTower:ITower; private var m_marvelTopPanel:BaseMarvelHudComponent; private var m_gameOverPanel:BasePanel; private var m_bgPanel:MovieClip; private var m_helpPanel:BasePanel; private var m_availableMapCells:Array; private static const POPUP_PAUSE:String = "popupPause"; private static const TOWER_DRAG:String = "towerDrag"; private static const POPUP_NONE:String = "popupNone"; private static const POPUP_DIFFICULTYSELECT:String = "popupDifficultySelect"; private static const POPUP_GAMELOST:String = "popupGameLost"; private static const TOWER_SELECTED:String = "towerSelected"; private static const INACTIVE:String = "inactive"; private static const POPUP_GAMEWON:String = "popupGameWon"; private static const POPUP_MAINMENU:String = "popupMainMenu"; private static const POPUP_HELP:String = "popupHelp"; public function HUDController(_arg1:CasaSprite, _arg2:int, _arg3:int, _arg4:XML){ m_mapRef = _arg1; m_placementOffsetX = _arg2; m_placementOffsetY = _arg3; m_bgPanel = new HudBG(); addChild(m_bgPanel); m_bgPanel.x = 571; m_bgPanel.y = -342; m_buildDisplay = new HUDBuildDisplay(); m_buildDisplay.alpha = 1; addChild(m_buildDisplay); m_buildDisplay.x = m_placementOffsetX; m_buildDisplay.y = m_placementOffsetY; m_bossPanel = new BossPopupController(_arg4); addChild(m_bossPanel); m_bossPanel.x = -12; m_bossPanel.y = -52; m_marvelTopPanel = new GameTopPanel(); m_marvelBottomPanel = new GameBottomPanel(); m_state = INACTIVE; changePanel(m_state); m_popupState = POPUP_NONE; changePopupState(m_popupState); m_mapRef.addEventListener(MouseEvent.CLICK, onMapClick, false, 0, true); m_mapRef.addEventListener(MouseEvent.MOUSE_MOVE, onMapMove, false, 0, true); m_mapRef.addEventListener(MouseEvent.MOUSE_OVER, onMapOver, false, 0, true); m_mapRef.addEventListener(MouseEvent.MOUSE_OUT, onMapOut, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.BUILD_TOWER_COMPLETE, onAddTower, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.SELL_TOWER, onSellTower, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.TOWER_UPGRADE_COMPLETE, onUpgradeTowerComplete, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.PREVIEW_TOWER_ROLL_OVER, onTowerPreviewRollover, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.PREVIEW_TOWER_ROLL_OUT, onTowerPreviewRollout, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.PREVIEW_TOWER_MOUSE_DOWN, onTowerPreviewMouseDown, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.SELECTED_TOWER_SELL, onTowerSellHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.APPLY_UPGRADE, onApplyUpgradeHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.CLOSE_SELECTION_PANEL, onTowerSelectionCloseHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.CHOOSE_DIFFICULTY, chooseDifficultyHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GAME_WON_DISPLAY, gameWonHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GAME_LOST_DISPLAY, gameLostHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.PAUSE_GAME, pauseGameHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.RESUME_GAME, resumeGameHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.EXIT_ATTEMPT, exitAttemptHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.DIFFICULTY_SELECTED, difficultySelectedHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.QUIT_GAME, quitGameHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.CANCEL_EXIT_ATTEMPT, cancelExitHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.SHOW_HELP, showHelpHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.CLOSE_HELP, closeHelpHandler, false, 0, true); trace("HUD online"); } public function doRender():void{ m_marvelBottomPanel.doRender(); if (m_state == TOWER_DRAG){ manageDraggingTowerRender(); }; } private function onTowerPreviewMouseDown(_arg1:HUDEvent):void{ trace(("HUD tower preview mouse down " + _arg1.towerType)); if (m_selectedTower != null){ exitSelectionMode(); }; changePanel(TOWER_DRAG); enterTowerDragMode(_arg1.towerType); } private function resumeGameHandler(_arg1:HUDEvent):void{ trace("HUDController resumeGameHandler - not used anymore!"); } private function onMapOut(_arg1:MouseEvent):void{ } private function changePopupState(_arg1:String, _arg2:Boolean=false, _arg3:Boolean=false):void{ trace(("HUD changePopupState to: " + _arg1)); if (m_popupState != POPUP_NONE){ if (_arg2){ m_popupPanel.transitionOut(); }; m_popupPanel = null; }; switch (_arg1){ case POPUP_NONE: break; case POPUP_PAUSE: m_popupPanel = new GamePausedPanel(); break; case POPUP_HELP: m_popupPanel = new GameHelpPanel(); break; case POPUP_MAINMENU: m_popupPanel = new ConfirmExitPanel(); break; case POPUP_GAMEWON: m_popupPanel = new GameWonPanel(); break; case POPUP_GAMELOST: m_popupPanel = new GameLostPanel(); break; case POPUP_DIFFICULTYSELECT: m_popupPanel = new GameDifficultyPanel(); break; }; if (_arg1 != POPUP_NONE){ addChild(m_popupPanel); m_popupPanel.x = -15; m_popupPanel.y = -342; }; if (_arg3){ m_popupPanel.transitionIn(); }; m_popupState = _arg1; } public function get marvelBottomPanel():BaseMarvelHudComponent{ return (m_marvelBottomPanel); } private function showHelpHandler(_arg1:HUDEvent):void{ if (m_popupState == POPUP_NONE){ changePopupState(POPUP_HELP, false, true); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.PAUSE_GAMEPLAY)); }; } private function pauseGameHandler(_arg1:HUDEvent):void{ if (m_popupState == POPUP_NONE){ changePopupState(POPUP_PAUSE, false, true); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.PAUSE_GAMEPLAY)); } else { if (m_popupState == POPUP_PAUSE){ changePopupState(POPUP_NONE, true, false); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.RESUME_GAMEPLAY)); }; }; } private function onMapClick(_arg1:MouseEvent):void{ var _local2:int = Math.floor((_arg1.localX / Map.tileW)); var _local3:int = Math.floor((_arg1.localY / Map.tileH)); trace((((((((("MAP CLICK! " + _arg1.localX) + ",") + _arg1.localY) + " (") + _local2) + ",") + _local3) + ")")); if (m_state == TOWER_SELECTED){ exitSelectionMode(); changePanel(INACTIVE); }; } private function onUpgradeTowerComplete(_arg1:TowerEvent):void{ trace(("HUDController heard about an upgraded tower! " + _arg1.towerObject)); if (m_state == TOWER_SELECTED){ changePanel(TOWER_SELECTED, "", m_selectedTower); GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SELECTED_TOWER_DRAW_SELECTION, "", m_selectedTower)); }; } private function manageDraggingTowerRender():void{ m_draggingTower.x = m_draggingX; m_draggingTower.y = m_draggingY; } private function enterTowerDragMode(_arg1:String):void{ var _local7:int; var _local8:Object; var _local9:int; var _local10:int; m_draggingTowerType = _arg1; m_availableMapCells = []; var _local2:Array = Map.getMap(); var _local3:int; while (_local3 < _local2.length) { m_availableMapCells[_local3] = []; _local7 = 0; while (_local7 < _local2[_local3].length) { if (_local2[_local3][_local7] == Map.BUILDABLE){ m_availableMapCells[_local3][_local7] = true; } else { m_availableMapCells[_local3][_local7] = false; }; _local7++; }; _local3++; }; var _local4:Array = TowerData.instance.towerArray; var _local5:int; while (_local5 < _local4.length) { _local8 = ITower(_local4[_local5]).getPosition(); _local9 = (_local8.x / Map.tileW); _local10 = (_local8.y / Map.tileH); m_availableMapCells[_local10][_local9] = false; _local5++; }; m_buildDisplay.newDrag(m_availableMapCells, TowerData.instance.rangeTable[_arg1][TowerController.LEVEL_1]); m_draggingCellX = 0; m_draggingCellY = 0; switch (_arg1){ case TowerController.BLASTER: m_draggingTower = new BlasterTowerIcon(); break; case TowerController.SLOWDOWN: m_draggingTower = new SlowdownTowerIcon(); break; case TowerController.ROCKET: m_draggingTower = new RocketTowerIcon(); break; case TowerController.LASER: m_draggingTower = new LaserTowerIcon(); break; case TowerController.LIGHTNING: m_draggingTower = new LightningTowerIcon(); break; }; addChild(m_draggingTower); m_draggingTower.x = this.mouseX; m_draggingTower.y = this.mouseY; var _local6:Stage = StageReference.getStage(); _local6.addEventListener(MouseEvent.MOUSE_UP, exitTowerDragMode, false, 0, true); } private function closeHelpHandler(_arg1:HUDEvent):void{ if (m_popupState == POPUP_HELP){ changePopupState(POPUP_NONE, true, false); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.RESUME_GAMEPLAY)); }; } private function gameLostHandler(_arg1:GameEvent):void{ changePopupState(POPUP_GAMELOST, false, true); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.PAUSE_GAMEPLAY)); } private function onTowerSelectionCloseHandler(_arg1:HUDEvent):void{ if (m_state == TOWER_SELECTED){ exitSelectionMode(); changePanel(INACTIVE); }; } private function exitTowerDragMode(_arg1:MouseEvent):void{ var _local2:Stage = StageReference.getStage(); _local2.removeEventListener(MouseEvent.MOUSE_UP, exitTowerDragMode); var _local3:int = (this.mouseX - m_placementOffsetX); var _local4:int = (this.mouseY - m_placementOffsetY); var _local5:int = Math.floor((_local3 / Map.tileW)); var _local6:int = Math.floor((_local4 / Map.tileH)); var _local7:Boolean; if ((((((((_local5 > 0)) && ((_local5 < 25)))) && ((_local6 > 0)))) && ((_local6 < 16)))){ if (m_availableMapCells[_local6][_local5] == true){ _local7 = true; }; }; removeChild(m_draggingTower); m_draggingTower = null; m_availableMapCells = null; m_buildDisplay.endDrag(); changePanel(INACTIVE); if (_local7){ trace(((((("build tower at " + _local5) + ",") + _local6) + " of type ") + m_draggingTowerType)); GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.BUILD_TOWER, null, 1, false, false, m_draggingTowerType, _local5, _local6)); }; } private function changePanel(_arg1:String, _arg2:String="", _arg3:ITower=null):void{ trace(((((("HUD changePanel to: " + _arg1) + " towerType: ") + _arg2) + " tower: ") + _arg3)); if ((((m_towersPanel is BuyPanel)) && ((((_arg1 == INACTIVE)) || ((_arg1 == TOWER_DRAG)))))){ } else { if (m_towersPanel != null){ m_towersPanel.transitionOut(); m_towersPanel = null; }; switch (_arg1){ case INACTIVE: case TOWER_DRAG: m_towersPanel = new BuyPanel(); addChild(m_towersPanel); m_towersPanel.x = 571; m_towersPanel.y = -342; m_towersPanel.transitionIn(); break; case TOWER_SELECTED: m_towersPanel = new SelectedPanel(_arg3); addChild(m_towersPanel); m_towersPanel.x = 571; m_towersPanel.y = -342; m_towersPanel.transitionIn(); break; }; }; m_state = _arg1; } public function doPhysics():void{ m_marvelBottomPanel.doPhysics(); if (m_state == TOWER_DRAG){ manageDraggingTowerPhysics(); }; } private function onApplyUpgradeHandler(_arg1:HUDEvent):void{ var _local2:int; if (_arg1.towerLevel != null){ _local2 = (m_selectedTower.getLevel() + 1); trace(((("upgrade is a level boost to: " + _arg1.towerLevel) + ", calc'd that as level: ") + _local2)); GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.UPGRADE_TOWER, m_selectedTower, _local2, false, false)); } else { if (_arg1.frequencyBonus != false){ trace("upgrade is a frequency boost"); GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.UPGRADE_TOWER, m_selectedTower, 0, true, false)); } else { if (_arg1.rangeBonus != false){ trace("upgrade is a range boost"); GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.UPGRADE_TOWER, m_selectedTower, 0, false, true)); } else { trace("wtf bonus is that!"); }; }; }; } private function onTowerClick(_arg1:MouseEvent):void{ var _local2:Object = ITower(_arg1.target).getPosition(); var _local3:int = (_local2.x / Map.tileW); var _local4:int = (_local2.y / Map.tileH); trace(((((("TOWER CLICK!! " + _arg1.target) + " ") + _local3) + ",") + _local4)); if (m_state == TOWER_SELECTED){ exitSelectionMode(); }; enterSelectionMode(ITower(_arg1.target)); changePanel(TOWER_SELECTED, "", m_selectedTower); } private function quitGameHandler(_arg1:HUDEvent):void{ trace("HUDController exit confirmed"); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GO_TO_MAIN_MENU)); } private function chooseDifficultyHandler(_arg1:GameEvent):void{ changePopupState(POPUP_DIFFICULTYSELECT, false, false); } public function get marvelTopPanel():BaseMarvelHudComponent{ return (m_marvelTopPanel); } private function exitSelectionMode():void{ trace(("UNSELECTING " + m_selectedTower)); m_selectedTower = null; GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SELECTED_TOWER_CLEAR_SELECTION)); } private function onTowerPreviewRollout(_arg1:HUDEvent):void{ trace(("HUD tower preview rollout " + _arg1.towerType)); if (m_state == TOWER_DRAG){ } else { if (m_selectedTower != null){ } else { if (m_state != TOWER_DRAG){ }; }; }; } private function onTowerSellHandler(_arg1:HUDEvent):void{ var _local2:ITower = m_selectedTower; if (m_state == TOWER_SELECTED){ exitSelectionMode(); }; changePanel(INACTIVE); GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.SELL_TOWER, _local2)); } private function enterSelectionMode(_arg1:ITower):void{ trace(("SELECTING " + _arg1)); m_selectedTower = _arg1; GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SELECTED_TOWER_DRAW_SELECTION, "", m_selectedTower)); } private function onSellTower(_arg1:TowerEvent):void{ trace(("HUDController heard about a sell tower! " + _arg1.towerObject)); BaseTower(_arg1.towerObject).removeEventListener(MouseEvent.CLICK, onTowerClick); } private function gameWonHandler(_arg1:GameEvent):void{ changePopupState(POPUP_GAMEWON, false, true); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.PAUSE_GAMEPLAY)); } private function onAddTower(_arg1:TowerEvent):void{ trace(("HUDController heard about an build tower complete! " + _arg1.towerObject)); BaseTower(_arg1.towerObject).addEventListener(MouseEvent.CLICK, onTowerClick, false, 0, true); } private function onMapMove(_arg1:MouseEvent):void{ } private function onTowerPreviewRollover(_arg1:HUDEvent):void{ trace(("HUD tower preview rollover " + _arg1.towerType)); if (m_state != TOWER_DRAG){ }; } private function cancelExitHandler(_arg1:HUDEvent):void{ if (m_popupState == POPUP_MAINMENU){ changePopupState(POPUP_NONE, true, false); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.RESUME_GAMEPLAY)); }; } private function difficultySelectedHandler(_arg1:HUDEvent):void{ changePopupState(POPUP_NONE, true, false); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.START_GAME, 0, 0, _arg1.difficulty)); GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SHOW_GAME_HUD_FRAME)); } private function onMapOver(_arg1:MouseEvent):void{ } private function manageDraggingTowerPhysics():void{ var _local1:int = (this.mouseX - m_placementOffsetX); var _local2:int = (this.mouseY - m_placementOffsetY); var _local3:int = Math.floor((_local1 / Map.tileW)); var _local4:int = Math.floor((_local2 / Map.tileH)); if ((((((((_local3 > 0)) && ((_local3 < 22)))) && ((_local4 > 0)))) && ((_local4 < 16)))){ m_draggingX = (((_local3 * Map.tileW) + Map.tileHalfW) + m_placementOffsetX); m_draggingY = (((_local4 * Map.tileH) + Map.tileHalfH) + m_placementOffsetY); if (((!((_local3 == m_draggingCellX))) || (!((_local4 == m_draggingCellY))))){ m_draggingCellX = _local3; m_draggingCellY = _local4; m_buildDisplay.newCell(m_draggingCellX, m_draggingCellY); }; } else { m_draggingX = this.mouseX; m_draggingY = this.mouseY; m_buildDisplay.hideDisplay(); }; } public function destroy():void{ m_mapRef.removeEventListener(MouseEvent.CLICK, onMapClick); m_mapRef.removeEventListener(MouseEvent.MOUSE_MOVE, onMapMove); m_mapRef.removeEventListener(MouseEvent.MOUSE_OVER, onMapOver); m_mapRef.removeEventListener(MouseEvent.MOUSE_OUT, onMapOut); GameBroadcaster.removeEventListener(TowerEvent.BUILD_TOWER_COMPLETE, onAddTower); GameBroadcaster.removeEventListener(TowerEvent.SELL_TOWER, onSellTower); GameBroadcaster.removeEventListener(TowerEvent.TOWER_UPGRADE_COMPLETE, onUpgradeTowerComplete); GameBroadcaster.removeEventListener(HUDEvent.PREVIEW_TOWER_ROLL_OVER, onTowerPreviewRollover); GameBroadcaster.removeEventListener(HUDEvent.PREVIEW_TOWER_ROLL_OUT, onTowerPreviewRollout); GameBroadcaster.removeEventListener(HUDEvent.PREVIEW_TOWER_MOUSE_DOWN, onTowerPreviewMouseDown); GameBroadcaster.removeEventListener(HUDEvent.SELECTED_TOWER_SELL, onTowerSellHandler); GameBroadcaster.removeEventListener(HUDEvent.APPLY_UPGRADE, onApplyUpgradeHandler); GameBroadcaster.removeEventListener(HUDEvent.CLOSE_SELECTION_PANEL, onTowerSelectionCloseHandler); GameBroadcaster.removeEventListener(GameEvent.CHOOSE_DIFFICULTY, chooseDifficultyHandler); GameBroadcaster.removeEventListener(GameEvent.GAME_WON_DISPLAY, gameWonHandler); GameBroadcaster.removeEventListener(GameEvent.GAME_LOST_DISPLAY, gameLostHandler); GameBroadcaster.removeEventListener(HUDEvent.PAUSE_GAME, pauseGameHandler); GameBroadcaster.removeEventListener(HUDEvent.RESUME_GAME, resumeGameHandler); GameBroadcaster.removeEventListener(HUDEvent.EXIT_ATTEMPT, exitAttemptHandler); GameBroadcaster.removeEventListener(HUDEvent.DIFFICULTY_SELECTED, difficultySelectedHandler); GameBroadcaster.removeEventListener(HUDEvent.CANCEL_EXIT_ATTEMPT, cancelExitHandler); GameBroadcaster.removeEventListener(HUDEvent.QUIT_GAME, quitGameHandler); GameBroadcaster.removeEventListener(HUDEvent.SHOW_HELP, showHelpHandler); GameBroadcaster.removeEventListener(HUDEvent.CLOSE_HELP, closeHelpHandler); var _local1:Stage = StageReference.getStage(); _local1.removeEventListener(MouseEvent.MOUSE_UP, exitTowerDragMode); if (m_state == TOWER_DRAG){ removeChild(m_draggingTower); m_draggingTower = null; m_availableMapCells = null; m_buildDisplay.endDrag(); }; if (m_towersPanel != null){ m_towersPanel.destroy(); }; m_buildDisplay.destroy(); m_bossPanel.destroy(); m_marvelBottomPanel = null; m_marvelTopPanel = null; if (m_popupPanel != null){ m_popupPanel.destroy(); }; var _local2:Array = TowerData.instance.towerArray; var _local3:int; while (_local3 < _local2.length) { _local2[_local3].removeEventListener(MouseEvent.CLICK, onTowerClick); _local3++; }; } private function exitAttemptHandler(_arg1:HUDEvent):void{ if (m_popupState == POPUP_NONE){ changePopupState(POPUP_MAINMENU, false, true); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.PAUSE_GAMEPLAY)); }; } } }//package game.hud
Section 323
//HUDRangeDisplay (game.hud.HUDRangeDisplay) package game.hud { import game.events.*; import game.interfaces.*; import org.casalib.display.*; import game.*; import gs.easing.*; import gs.*; public class HUDRangeDisplay extends CasaSprite { private var m_shape:CasaSprite; public function HUDRangeDisplay(){ GameBroadcaster.addEventListener(HUDEvent.SELECTED_TOWER_DRAW_SELECTION, drawSelectionHandler, false, 0, true); GameBroadcaster.addEventListener(HUDEvent.SELECTED_TOWER_CLEAR_SELECTION, clearSelectionHandler, false, 0, true); this.mouseEnabled = false; this.mouseChildren = false; } private function clearRangeCircle():void{ m_shape.destroy(); } override public function destroy():void{ GameBroadcaster.removeEventListener(HUDEvent.SELECTED_TOWER_DRAW_SELECTION, drawSelectionHandler); GameBroadcaster.removeEventListener(HUDEvent.SELECTED_TOWER_CLEAR_SELECTION, clearSelectionHandler); TweenMax.killTweensOf(this); TweenMax.killTweensOf(m_shape); if (m_shape != null){ m_shape.destroy(); }; super.destroy(); } private function drawSelectionHandler(_arg1:HUDEvent):void{ var _local2:ITower = _arg1.towerObject; var _local3:Object = _local2.getPosition(); var _local4:int = _local3.x; var _local5:int = _local3.y; var _local6:int = _local2.getRange(); drawRangeCircle(_local4, _local5, _local6); } private function drawRangeCircle(_arg1:int, _arg2:int, _arg3:int):void{ if (m_shape != null){ m_shape.destroy(); }; m_shape = new CasaSprite(); addChild(m_shape); m_shape.x = (_arg1 + Map.tileHalfW); m_shape.y = (_arg2 + Map.tileHalfH); m_shape.graphics.beginFill(0, 0.1); m_shape.graphics.lineStyle(2, 1299982, 1); m_shape.graphics.drawCircle(0, 0, _arg3); m_shape.scaleX = 0.1; m_shape.scaleY = 0.1; TweenMax.to(m_shape, 0.25, {glowFilter:{color:1572369, alpha:1, blurX:10, blurY:10, strength:1, quality:1}, scaleX:1, scaleY:1, ease:Back.easeOut}); } private function clearSelectionHandler(_arg1:HUDEvent):void{ clearRangeCircle(); } } }//package game.hud
Section 324
//SelectedPanel (game.hud.SelectedPanel) package game.hud { import flash.events.*; import game.events.*; import game.interfaces.*; import game.finance.*; import game.towers.*; import ui.*; import assets.hud.*; public class SelectedPanel extends BasePanel { private var m_towerLevel:String; private var m_towerType:String; private var m_stats:StatBar; private var m_closeBtn:DoubleGraphicButton; private var m_sellBtn:DoubleGraphicButton; private var m_towerUpgradeLevelValid:Boolean; private var m_towerUpgradeLevel:String; private var m_levelCostText:String; private var m_upgradeBtn:DoubleGraphicButton; private var m_tower:ITower; public function SelectedPanel(_arg1:ITower){ var _local2:String; super(); m_container = new SelectedPanel(); addChild(m_container); m_tower = _arg1; m_towerType = TowerController.getTowerTypeString(m_tower); m_towerLevel = TowerController.getTowerLevelString(m_tower); switch (m_towerType){ case TowerController.BLASTER: _local2 = "msmarvel"; break; case TowerController.SLOWDOWN: _local2 = "spiderman"; break; case TowerController.ROCKET: _local2 = "ironman"; break; case TowerController.LASER: _local2 = "cyclops"; break; case TowerController.LIGHTNING: _local2 = "thor"; break; }; m_container.label.gotoAndStop(_local2); m_container.icon.gotoAndStop(_local2); m_container.badge.gotoAndStop(m_tower.getLevel()); m_stats = new StatBar(m_container.statBar); m_stats.initialiseWithTower(m_tower); m_closeBtn = new DoubleGraphicButton(m_container.closeOff, m_container.closeOver); m_closeBtn.addEventListener(DoubleGraphicButton.CLICKED, onCloseClick, false, 0, true); var _local3:int = FinanceController.evaluateTowerForSale(m_tower); m_container.sellOver.txt.text = ("$" + _local3); m_container.sellOver.mouseChildren = false; m_container.sellOff.txt.text = "SELL"; m_container.sellOff.mouseChildren = false; m_sellBtn = new DoubleGraphicButton(m_container.sellOff, m_container.sellOver); m_sellBtn.addEventListener(DoubleGraphicButton.CLICKED, onSellClick, false, 0, true); var _local4 = "LEVEL UP (MAX 3)"; var _local5:int = (m_tower.getLevel() + 1); if (_local5 > 3){ m_towerUpgradeLevelValid = false; _local5 = 3; } else { m_towerUpgradeLevelValid = true; }; m_towerUpgradeLevel = TowerController.getTowerLevelString(null, _local5); m_levelCostText = ("$" + FinanceData.instance.costTable[m_towerType][m_towerUpgradeLevel]); m_container.upgradeOver.txt.text = m_levelCostText; m_container.upgradeOver.mouseChildren = false; m_container.upgradeOff.txt.text = "UPGRADE"; m_container.upgradeOff.mouseChildren = false; m_upgradeBtn = new DoubleGraphicButton(m_container.upgradeOff, m_container.upgradeOver); m_upgradeBtn.addEventListener(DoubleGraphicButton.CLICKED, onUpgradeClick, false, 0, true); m_upgradeBtn.addEventListener(DoubleGraphicButton.OVER, onUpgradeOver, false, 0, true); m_upgradeBtn.addEventListener(DoubleGraphicButton.OFF, onUpgradeOff, false, 0, true); refreshButtonStates(); GameBroadcaster.addEventListener(FinanceEvent.UPDATE_FINANCE, financeUpdateHandler, false, 0, true); } private function onSellClick(_arg1:Event):void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.SELECTED_TOWER_SELL)); } private function financeUpdateHandler(_arg1:FinanceEvent):void{ refreshButtonStates(); } private function onUpgradeClick(_arg1:Event):void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.APPLY_UPGRADE, null, null, m_towerUpgradeLevel, false, false)); } private function refreshButtonStates():void{ var _local1:Object = m_tower.getUpgrades(); var _local2:int = FinanceData.instance.playerFunds; if (!m_towerUpgradeLevelValid){ m_container.upgradeOver.mouseEnabled = false; m_container.upgradeOff.mouseEnabled = false; m_container.upgradeOff.alpha = 0; } else { if (_local2 >= FinanceData.instance.costTable[m_towerType][m_towerUpgradeLevel]){ m_container.upgradeOver.mouseEnabled = true; m_container.upgradeOff.mouseEnabled = true; m_container.upgradeOff.alpha = 1; m_upgradeBtn.enableCursorAndEvents(); } else { m_container.upgradeOff.alpha = 0.5; m_upgradeBtn.disableCursorAndEvents(); }; }; } override public function destroy():void{ m_upgradeBtn.removeEventListener(DoubleGraphicButton.CLICKED, onUpgradeClick); m_upgradeBtn.removeEventListener(DoubleGraphicButton.OVER, onUpgradeOver); m_upgradeBtn.removeEventListener(DoubleGraphicButton.OFF, onUpgradeOff); m_sellBtn.removeEventListener(DoubleGraphicButton.CLICKED, onSellClick); m_closeBtn.removeEventListener(DoubleGraphicButton.CLICKED, onCloseClick); GameBroadcaster.removeEventListener(FinanceEvent.UPDATE_FINANCE, financeUpdateHandler); m_upgradeBtn.destroy(); m_sellBtn.destroy(); m_closeBtn.destroy(); super.destroy(); } private function onCloseClick(_arg1:Event):void{ GameBroadcaster.dispatchEvent(new HUDEvent(HUDEvent.CLOSE_SELECTION_PANEL)); } private function onUpgradeOver(_arg1:Event):void{ m_stats.showUpgrades(m_towerUpgradeLevel, false, false); } private function onUpgradeOff(_arg1:Event):void{ m_stats.clearUpgradeStats(); } } }//package game.hud
Section 325
//StatBar (game.hud.StatBar) package game.hud { import flash.events.*; import flash.display.*; import game.interfaces.*; import game.towers.*; import game.weapons.*; import gs.easing.*; import gs.*; public class StatBar extends EventDispatcher { private var m_hasRangeBonus:Boolean; private var m_hasFrequencyBonus:Boolean; private var m_towerLevel:String; private var m_container:MovieClip; private var m_towerType:String; private static const DAMAGE_MAX:int = 40; private static const RANGE_BEST:int = 150; private static const RANGE_WORST:int = 0; private static const DAMAGE_WORST:int = 0; public function StatBar(_arg1:MovieClip){ m_container = _arg1; } public function destroy():void{ } private function displayBaseStats(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:Boolean):void{ var _local5:Number = calculateFrequency(_arg1, _arg2, _arg3); var _local6:Number = calculateRange(_arg1, _arg2, _arg4); var _local7:Number = calculateDamage(_arg1, _arg2); m_container.frequency.currentBar.scaleX = _local5; m_container.frequency.upgradeBar.scaleX = 0; m_container.range.currentBar.scaleX = _local6; m_container.range.upgradeBar.scaleX = 0; m_container.damage.currentBar.scaleX = _local7; m_container.damage.upgradeBar.scaleX = 0; } private function displayUpgradeStats(_arg1:String, _arg2:String, _arg3:Boolean, _arg4:Boolean):void{ var _local5:Number = calculateFrequency(_arg1, _arg2, _arg3); var _local6:Number = calculateRange(_arg1, _arg2, _arg4); var _local7:Number = calculateDamage(_arg1, _arg2); m_container.frequency.upgradeBar.scaleX = _local5; m_container.range.upgradeBar.scaleX = _local6; m_container.damage.upgradeBar.scaleX = _local7; } private function calculateRange(_arg1:String, _arg2:String, _arg3:Boolean):Number{ var _local4:Number = TowerData.instance.rangeTable[_arg1][_arg2]; if (_arg3){ _local4 = (_local4 * TowerData.instance.rangeTable[_arg1][TowerController.RANGE_BONUS]); }; var _local5:Number = percentageBetween(RANGE_WORST, RANGE_BEST, _local4); if (_local5 > 1){ _local5 = 1; } else { if (_local5 < 0){ _local5 = 0; }; }; return (_local5); } public function initialiseWithTower(_arg1:ITower):void{ m_towerType = TowerController.getTowerTypeString(_arg1); m_towerLevel = TowerController.getTowerLevelString(_arg1); var _local2:Object = _arg1.getUpgrades(); m_hasFrequencyBonus = _local2.hasFrequencyBonus; m_hasRangeBonus = _local2.hasRangeBonus; displayBaseStats(m_towerType, m_towerLevel, m_hasFrequencyBonus, m_hasRangeBonus); } private function percentageBetween(_arg1:Number, _arg2:Number, _arg3:Number):Number{ var _local4:Number; var _local5:Number; if (_arg2 >= _arg1){ _local4 = (_arg2 - _arg1); _local5 = ((_arg3 - _arg1) / _local4); } else { _local4 = (_arg1 - _arg2); _local5 = (1 - ((_arg3 - _arg2) / _local4)); }; return (_local5); } public function clearUpgradeStats():void{ m_container.frequency.upgradeBar.scaleX = 0; m_container.range.upgradeBar.scaleX = 0; m_container.damage.upgradeBar.scaleX = 0; } private function calculateDamage(_arg1:String, _arg2:String):Number{ var _local3:Number; if (_arg1 == TowerController.SLOWDOWN){ _local3 = ((1 - WeaponData.instance.damageTable[_arg1][_arg2]) * DAMAGE_MAX); } else { _local3 = WeaponData.instance.damageTable[_arg1][_arg2]; }; var _local4:Number = percentageBetween(DAMAGE_WORST, DAMAGE_MAX, _local3); if (_local4 > 1){ _local4 = 1; } else { if (_local4 < 0){ _local4 = 0; }; }; return (_local4); } public function initialiseWithType(_arg1:String, _arg2:String):void{ m_towerType = _arg1; m_towerLevel = _arg2; m_hasFrequencyBonus = false; m_hasRangeBonus = false; displayBaseStats(m_towerType, m_towerLevel, m_hasFrequencyBonus, m_hasRangeBonus); } public function showUpgrades(_arg1:String, _arg2:Boolean, _arg3:Boolean):void{ displayUpgradeStats(m_towerType, _arg1, _arg2, _arg3); } private function calculateFrequency(_arg1:String, _arg2:String, _arg3:Boolean):Number{ var _local4:Number = TowerData.instance.frequencyTable[_arg1][_arg2]; if (_arg3){ _local4 = (_local4 * TowerData.instance.frequencyTable[_arg1][TowerController.FREQUENCY_BONUS]); }; var _local5:Number = (0.1 + (2 / _local4)); if (_local5 > 1){ _local5 = 1; } else { if (_local5 < 0){ _local5 = 0; }; }; return (_local5); } } }//package game.hud
Section 326
//TowerSelectionButton (game.hud.TowerSelectionButton) package game.hud { import flash.events.*; import flash.display.*; import gs.*; public class TowerSelectionButton extends EventDispatcher { private var m_over:MovieClip; private var m_disabled:MovieClip; private var m_enabled:MovieClip; private var m_disableClick:Boolean;// = false public static var ROLL_OVER:String = "TowerSelectionRollover"; public static var MOUSE_DOWN:String = "TowerSelectionMouseDown"; public static var ROLL_OUT:String = "TowerSelectionRollout"; public function TowerSelectionButton(_arg1:MovieClip, _arg2:MovieClip, _arg3:MovieClip){ m_disabled = _arg1; m_enabled = _arg2; m_over = _arg3; m_over.buttonMode = true; m_over.alpha = 0; m_over.addEventListener(MouseEvent.ROLL_OUT, handleRollOut, false, 0, true); m_over.addEventListener(MouseEvent.ROLL_OVER, handleRollOver, false, 0, true); m_over.addEventListener(MouseEvent.MOUSE_DOWN, handleMouseDown, false, 0, true); } public function destroy():void{ m_over.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut); m_over.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver); m_over.removeEventListener(MouseEvent.CLICK, handleMouseDown); } private function handleRollOut(_arg1:MouseEvent=null):void{ if (!m_disableClick){ TweenMax.to(m_over, 0.25, {alpha:0}); }; dispatchEvent(new Event(ROLL_OUT)); } public function enableButton():void{ m_disableClick = false; m_over.buttonMode = true; TweenMax.to(m_enabled, 0.25, {alpha:1}); } private function handleRollOver(_arg1:MouseEvent=null):void{ if (!m_disableClick){ TweenMax.to(m_over, 0.25, {alpha:1}); }; dispatchEvent(new Event(ROLL_OVER)); } public function disableButton():void{ m_disableClick = true; m_over.buttonMode = false; TweenMax.to(m_over, 0.25, {alpha:0}); TweenMax.to(m_enabled, 0.25, {alpha:0}); } private function handleMouseDown(_arg1:MouseEvent=null):void{ if (!m_disableClick){ dispatchEvent(new Event(MOUSE_DOWN)); }; } } }//package game.hud
Section 327
//IAirEnemy (game.interfaces.IAirEnemy) package game.interfaces { public interface IAirEnemy { } }//package game.interfaces
Section 328
//IEnemy (game.interfaces.IEnemy) package game.interfaces { public interface IEnemy { function getSpeedFactor():Number; function doRender():void; function getScore():int; function isTargetable():Boolean; function getMoney():int; function doHurt(_arg1:int):void; function doPhysics():void; function doSlowdown(_arg1:Number, _arg2:Number):void; function getPosition():Object; } }//package game.interfaces
Section 329
//IHUDPanel (game.interfaces.IHUDPanel) package game.interfaces { public interface IHUDPanel { function doRender():void; function destroy():void; function transitionOut():void; function transitionIn():void; function doPhysics():void; } }//package game.interfaces
Section 330
//ILandEnemy (game.interfaces.ILandEnemy) package game.interfaces { public interface ILandEnemy { } }//package game.interfaces
Section 331
//ITower (game.interfaces.ITower) package game.interfaces { public interface ITower { function doUpgrade(_arg1:int=0, _arg2:Boolean=false, _arg3:Boolean=false):void; function getRange():int; function doRender():void; function destroy():void; function doPhysics():void; function getUpgrades():Object; function getLevel():int; function getPosition():Object; } }//package game.interfaces
Section 332
//IWeapon (game.interfaces.IWeapon) package game.interfaces { public interface IWeapon { function doRender():void; function destroy():void; function doPhysics():void; function getLevel():int; function getPosition():Object; } }//package game.interfaces
Section 333
//FortressController (game.map.FortressController) package game.map { import flash.display.*; import game.events.*; import org.casalib.display.*; import assets.level01.fortress.*; import gs.*; public class FortressController extends CasaSprite { private var m_currentLives:int; private var m_flash:MovieClip; private var m_container:MovieClip; private var m_level:int; private var m_initialLives:int; public function FortressController(){ GameBroadcaster.addEventListener(GameEvent.LIVES_SET, livesSetHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.LIFE_LOST, lifeLostHandler, false, 0, true); m_flash = new DamageFlash(); addChild(m_flash); m_flash.visible = false; m_level = 2; updateFortressGraphic(); } private function updateFortressGraphic():void{ trace(("FortressController update graphic, now level: " + m_level)); if (m_container != null){ removeChild(m_container); }; m_container = null; if (m_level == 0){ m_container = new HealthLow(); } else { if (m_level == 1){ m_container = new HealthMedium(); } else { m_container = new HealthFull(); }; }; addChildAt(m_container, 0); } private function flashComplete():void{ m_flash.visible = false; } private function lifeLostHandler(_arg1:GameEvent):void{ var _local3:int; trace("FortressController life lost"); m_currentLives = _arg1.currentLives; var _local2:Number = (m_currentLives / m_initialLives); if (_local2 < 0.33){ _local3 = 0; } else { if (_local2 < 0.66){ _local3 = 1; } else { _local3 = 2; }; }; if (_local3 != m_level){ m_level = _local3; updateFortressGraphic(); }; flashDamage(); } private function livesSetHandler(_arg1:GameEvent):void{ m_initialLives = _arg1.totalLives; m_currentLives = _arg1.currentLives; } override public function destroy():void{ GameBroadcaster.removeEventListener(GameEvent.LIVES_SET, livesSetHandler); GameBroadcaster.removeEventListener(GameEvent.LIFE_LOST, lifeLostHandler); TweenMax.killTweensOf(m_flash); } private function flashDamage():void{ m_flash.visible = true; m_flash.alpha = 1; TweenMax.to(m_flash, 0.2, {alpha:0, onComplete:flashComplete}); } } }//package game.map
Section 334
//ScoreController (game.score.ScoreController) package game.score { import game.events.*; import game.finance.*; import mochi.as3.*; public class ScoreController { private var m_score:int; private var m_md1:MochiDigits; private var m_md2:MochiDigits; public function ScoreController(){ m_md1 = new MochiDigits(0); m_md2 = new MochiDigits(0); m_score = 0; GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler, false, 0, true); GameBroadcaster.addEventListener(WaveEvent.WAVE_LAUNCHED, waveLaunchedHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GAME_WON_WAIT, gameWonHandler, false, 0, true); } public function mdx():int{ return ((m_md1.value + m_md2.value)); } private function enemyKilledHandler(_arg1:EnemyEvent):void{ m_md1.addValue(_arg1.enemyObject.getScore()); m_score = (m_score + _arg1.enemyObject.getScore()); GameBroadcaster.dispatchEvent(new ScoreEvent(ScoreEvent.UPDATE_SCORE, m_score)); } private function gameWonHandler(_arg1:GameEvent):void{ var _local2:int = FinanceData.instance.playerEarnings; var _local3:int = FinanceData.instance.playerSpendings; var _local4:int = (_local2 - _local3); var _local5 = 100; var _local6:int = (_local4 * _local5); trace(("SC game won bonus: " + _local6)); m_score = (m_score + _local6); m_md2.addValue(_local6); GameBroadcaster.dispatchEvent(new ScoreEvent(ScoreEvent.UPDATE_SCORE, m_score, _local6)); } public function score():int{ return (m_score); } public function destroy():void{ GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyKilledHandler); GameBroadcaster.removeEventListener(WaveEvent.WAVE_LAUNCHED, waveLaunchedHandler); GameBroadcaster.removeEventListener(GameEvent.GAME_WON_WAIT, gameWonHandler); } private function waveLaunchedHandler(_arg1:WaveEvent):void{ var _local2:int = _arg1.wave.scoreBonus; var _local3:Number = (1 - (_arg1.previousWaveTime / _arg1.previousWaveMaxTime)); var _local4:int = int((_local3 * _local2)); trace(((("SC wave launch bonus: " + _local4) + ", full wave scoreBonus: ") + _arg1.wave.scoreBonus)); m_score = (m_score + _local4); m_md2.addValue(_local4); GameBroadcaster.dispatchEvent(new ScoreEvent(ScoreEvent.UPDATE_SCORE, m_score, _local4)); } } }//package game.score
Section 335
//BaseEnergyTower (game.towers.BaseEnergyTower) package game.towers { import game.interfaces.*; import game.enemies.*; public class BaseEnergyTower extends BaseTower { protected const REATTACK_MODE:String = "reattackMode"; protected const AIMING_MODE:String = "aimingMode"; protected var m_targetTimeArray:Array; protected var m_maxTargets:int;// = 1 protected var m_targetObjectArray:Array; protected var m_maxTargetsLevel1:int;// = 1 protected var m_maxTargetsLevel2:int;// = 2 protected var m_maxTargetsLevel3:int;// = 3 protected function doAttackAttempt(_arg1:IEnemy):Boolean{ var _local2:Array = EnemyData.instance.enemyArray; var _local3:Number = _local2.indexOf(_arg1); if (_local3 < 0){ return (false); }; var _local4:Object = _arg1.getPosition(); var _local5:Number = _local4.x; var _local6:Number = _local4.y; var _local7:Boolean = rangeCheck(m_x, m_y, _local5, _local6, m_range); if (!_local7){ return (false); }; doEnergyFire(_arg1); return (true); } override public function doPhysics():void{ var _local2:Boolean; var _local1:int; while (_local1 < m_targetTimeArray.length) { var _local3 = m_targetTimeArray; var _local4 = _local1; var _local5 = (_local3[_local4] - 1); _local3[_local4] = _local5; if (m_targetTimeArray[_local1] <= 0){ _local2 = doAttackAttempt(m_targetObjectArray[_local1]); if (_local2){ m_targetTimeArray[_local1] = m_frequency; } else { m_targetTimeArray.splice(_local1, 1); m_targetObjectArray.splice(_local1, 1); _local1--; }; }; _local1++; }; if (m_targetObjectArray.length < m_maxTargets){ doSearchMode(); }; doEnergyRotation(); } protected function doEnergyRotation():void{ var _local1:IEnemy; var _local2:Object; var _local3:Number; var _local4:Number; var _local5:Number; if (m_targetObjectArray.length > 0){ _local1 = m_targetObjectArray[0]; _local2 = _local1.getPosition(); _local3 = _local2.x; _local4 = _local2.y; _local5 = ((getAngleDifference(_local3, _local4, m_rotation) * 180) / Math.PI); if ((((_local5 > 0)) && ((_local5 > m_rotationSpeedCap)))){ _local5 = m_rotationSpeedCap; } else { if ((((_local5 < 0)) && ((_local5 < -(m_rotationSpeedCap))))){ _local5 = -(m_rotationSpeedCap); }; }; m_rotation = (m_rotation + _local5); }; } override protected function recalculateStats():void{ super.recalculateStats(); if (m_level == 1){ m_maxTargets = m_maxTargetsLevel1; } else { if (m_level == 2){ m_maxTargets = m_maxTargetsLevel2; } else { if (m_level == 3){ m_maxTargets = m_maxTargetsLevel3; }; }; }; } override protected function doSearchMode():void{ var _local3:IEnemy; var _local5:IEnemy; var _local6:Boolean; var _local7:Boolean; var _local8:Boolean; var _local9:Object; var _local10:Number; var _local11:Number; var _local12:Boolean; var _local1:Array = EnemyData.instance.enemyArray; var _local2:Boolean; var _local4:int; while (_local4 < _local1.length) { _local5 = IEnemy(_local1[_local4]); _local6 = true; if ((_local5 is ILandEnemy)){ if (!m_canTargetLand){ _local6 = false; }; }; _local7 = true; if ((_local5 is IAirEnemy)){ if (!m_canTargetAir){ _local7 = false; }; }; _local8 = _local5.isTargetable(); if (((((_local6) && (_local7))) && (_local8))){ if (m_targetObjectArray.indexOf(_local5) < 0){ _local9 = _local5.getPosition(); _local10 = _local9.x; _local11 = _local9.y; _local12 = rangeCheck(m_x, m_y, _local10, _local11, m_range); if (_local12){ _local2 = true; _local3 = _local5; break; }; }; }; _local4++; }; if (_local2){ m_targetObjectArray.push(_local3); m_targetTimeArray.push(0); }; } protected function doEnergyFire(_arg1:IEnemy):void{ } } }//package game.towers
Section 336
//BaseTower (game.towers.BaseTower) package game.towers { import flash.display.*; import game.events.*; import game.interfaces.*; import org.casalib.display.*; import game.enemies.*; import game.*; public class BaseTower extends CasaSprite implements ITower { protected const m_AIMING:int = 1; protected const m_ATTACKING:int = 2; protected const m_SEARCHING:int = 0; protected const m_SEARCH_AND_ATTACK:int = 3; protected var m_rangeLevel3:int; protected var m_gunfireEffectDuration:int; protected var m_frequency:int; protected var m_hasFrequencyBonus:Boolean; protected var m_rotation:Number; protected var m_canTargetAir:Boolean; protected var m_x:Number; protected var m_y:Number; protected var m_target:IEnemy; protected var m_container:MovieClip; protected var m_level:int; protected var m_canTargetLand:Boolean; protected var m_rotationSpeedCap:Number; protected var m_state:int; protected var m_shadow:MovieClip; protected var m_frequencyCountdown:int; protected var m_hasRangeBonus:Boolean; protected var m_frequencyLevel1:int; protected var m_frequencyLevel2:int; protected var m_frequencyLevel3:int; protected var m_gunfireEffectCountdown:int; protected var m_rangeBonusFactor:Number; protected var m_range:int; protected var m_rangeLevel1:int; protected var m_rangeLevel2:int; protected var m_frequencyBonusFactor:Number; public function BaseTower(){ this.mouseChildren = false; } protected function calculateDistance(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ var _local5:Number = (((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2))); _local5 = Math.sqrt(_local5); return (_local5); } protected function updateTowerGraphics():void{ } public function getRange():int{ return (m_range); } public function doRender():void{ m_container.rotation = m_rotation; m_shadow.rotation = m_rotation; this.x = m_x; this.y = m_y; } public function doUpgrade(_arg1:int=0, _arg2:Boolean=false, _arg3:Boolean=false):void{ trace(((((("BaseTower doing upgrade. level: " + _arg1) + " frequencyBonus: ") + _arg2) + " rangeBonus: ") + _arg3)); var _local4:Boolean; if (((!((_arg1 == 0))) && (!((_arg1 == m_level))))){ m_level = _arg1; _local4 = true; }; if (_arg2){ m_hasFrequencyBonus = true; }; if (_arg3){ m_hasRangeBonus = true; }; recalculateStats(); if (_local4){ updateTowerGraphics(); }; GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.TOWER_UPGRADE_COMPLETE, this)); } override public function destroy():void{ super.destroy(); } public function getPosition():Object{ var _local1:Object = {}; _local1.x = m_x; _local1.y = m_y; _local1.rotation = m_rotation; return (_local1); } protected function drawRangeCircle():void{ this.graphics.clear(); this.graphics.beginFill(1144644, 0.2); this.graphics.lineStyle(1, 10057489, 1); this.graphics.drawCircle(Map.tileHalfW, Map.tileHalfH, m_range); } public function doPhysics():void{ m_frequencyCountdown--; doFireEffect(); if (m_state == m_SEARCHING){ doSearchMode(); } else { if (m_state == m_ATTACKING){ doAttackMode(); }; }; } protected function getAngleDifference(_arg1:Number, _arg2:Number, _arg3:Number):Number{ var _local4:Number = ((_arg3 * Math.PI) / 180); var _local5:Number = (Math.PI * 2); _local4 = (_local4 % _local5); var _local6:Number = ((Math.PI / 2) + Math.atan2((_arg2 - m_y), (_arg1 - m_x))); if (_local6 < 0){ _local6 = (_local6 + _local5); }; var _local7:Number = (_local6 - _local4); if (_local7 > Math.PI){ _local7 = (_local7 - _local5); } else { if (_local7 < -(Math.PI)){ _local7 = (_local7 + _local5); }; }; return (_local7); } protected function rangeCheck(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Boolean{ if (!(((((((_arg3 > (_arg1 - m_range))) && ((_arg3 < (_arg1 + m_range))))) && ((_arg4 > (_arg2 - m_range))))) && ((_arg4 < (_arg2 + m_range))))){ return (false); }; var _local6:Number = (((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2))); var _local7:Number = (_arg5 * _arg5); if (_local6 > _local7){ return (false); }; var _local8:Number = Math.sqrt(_local6); return (true); } protected function doFireEffect():void{ } protected function recalculateStats():void{ if (m_level == 1){ m_frequency = m_frequencyLevel1; } else { if (m_level == 2){ m_frequency = m_frequencyLevel2; } else { if (m_level == 3){ m_frequency = m_frequencyLevel3; }; }; }; if (m_hasFrequencyBonus){ m_frequency = (m_frequency * m_frequencyBonusFactor); }; if (m_level == 1){ m_range = m_rangeLevel1; } else { if (m_level == 2){ m_range = m_rangeLevel2; } else { if (m_level == 3){ m_range = m_rangeLevel3; }; }; }; if (m_hasRangeBonus){ m_range = (m_range * m_rangeBonusFactor); }; } public function getUpgrades():Object{ var _local1:Object = {}; _local1.hasFrequencyBonus = m_hasFrequencyBonus; _local1.hasRangeBonus = m_hasRangeBonus; return (_local1); } public function getLevel():int{ return (m_level); } protected function doFire():void{ } protected function doSearchMode():void{ var _local3:IEnemy; var _local5:IEnemy; var _local6:Boolean; var _local7:Boolean; var _local8:Boolean; var _local9:Object; var _local10:Number; var _local11:Number; var _local12:Boolean; var _local1:Array = EnemyData.instance.enemyArray; var _local2:Boolean; var _local4:int; while (_local4 < _local1.length) { _local5 = IEnemy(_local1[_local4]); _local6 = true; if ((_local5 is ILandEnemy)){ if (!m_canTargetLand){ _local6 = false; }; }; _local7 = true; if ((_local5 is IAirEnemy)){ if (!m_canTargetAir){ _local7 = false; }; }; _local8 = _local5.isTargetable(); if (((((_local6) && (_local7))) && (_local8))){ _local9 = _local5.getPosition(); _local10 = _local9.x; _local11 = _local9.y; _local12 = rangeCheck(m_x, m_y, _local10, _local11, m_range); if (_local12){ _local2 = true; _local3 = _local5; break; }; }; _local4++; }; if (_local2){ m_target = _local3; m_state = m_ATTACKING; }; } protected function doAttackMode():void{ var _local7:Number; var _local8:Boolean; var _local1:Array = EnemyData.instance.enemyArray; var _local2:Number = _local1.indexOf(m_target); if (_local2 < 0){ m_target = null; m_state = m_SEARCHING; return; }; var _local3:Object = m_target.getPosition(); var _local4:Number = _local3.x; var _local5:Number = _local3.y; var _local6:Boolean = rangeCheck(m_x, m_y, _local4, _local5, m_range); if (!_local6){ m_target = null; m_state = m_SEARCHING; } else { _local7 = ((getAngleDifference(_local4, _local5, m_rotation) * 180) / Math.PI); _local8 = false; if ((((_local7 > 0)) && ((_local7 > m_rotationSpeedCap)))){ _local7 = m_rotationSpeedCap; _local8 = true; } else { if ((((_local7 < 0)) && ((_local7 < -(m_rotationSpeedCap))))){ _local7 = -(m_rotationSpeedCap); _local8 = true; }; }; m_rotation = (m_rotation + _local7); if ((((m_frequencyCountdown <= 0)) && (!(_local8)))){ doFire(); m_frequencyCountdown = m_frequency; }; }; } } }//package game.towers
Section 337
//BlasterTower (game.towers.BlasterTower) package game.towers { import game.events.*; import game.*; import assets.towers.*; public class BlasterTower extends BaseTower { public function BlasterTower(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ m_x = _arg1; m_y = _arg2; m_rotation = 0; m_rotationSpeedCap = 25; m_level = _arg3; m_gunfireEffectDuration = 2; if (m_level == 1){ m_shadow = new BlasterTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new BlasterTowerL1(); } else { if (m_level == 2){ m_shadow = new BlasterTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new BlasterTowerL2(); } else { m_shadow = new BlasterTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new BlasterTowerL3(); }; }; m_container.gunfire.visible = false; addChild(m_shadow); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_canTargetLand = true; m_canTargetAir = false; m_frequencyLevel1 = TowerData.instance.frequencyTable[TowerController.BLASTER][TowerController.LEVEL_1]; m_frequencyLevel2 = TowerData.instance.frequencyTable[TowerController.BLASTER][TowerController.LEVEL_2]; m_frequencyLevel3 = TowerData.instance.frequencyTable[TowerController.BLASTER][TowerController.LEVEL_3]; m_frequencyBonusFactor = TowerData.instance.frequencyTable[TowerController.BLASTER][TowerController.FREQUENCY_BONUS]; m_hasFrequencyBonus = _arg4; m_rangeLevel1 = TowerData.instance.rangeTable[TowerController.BLASTER][TowerController.LEVEL_1]; m_rangeLevel2 = TowerData.instance.rangeTable[TowerController.BLASTER][TowerController.LEVEL_2]; m_rangeLevel3 = TowerData.instance.rangeTable[TowerController.BLASTER][TowerController.LEVEL_3]; m_rangeBonusFactor = TowerData.instance.rangeTable[TowerController.BLASTER][TowerController.RANGE_BONUS]; m_hasRangeBonus = _arg5; recalculateStats(); m_state = m_SEARCHING; doRender(); } override protected function doFire():void{ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.BLASTER_FIRE, this, m_target, null, m_level)); m_gunfireEffectCountdown = m_gunfireEffectDuration; m_container.gunfire.visible = true; } override protected function doFireEffect():void{ if (m_gunfireEffectCountdown > 0){ m_gunfireEffectCountdown--; if (m_gunfireEffectCountdown == 0){ m_container.gunfire.visible = false; }; }; } override public function destroy():void{ super.destroy(); } override protected function updateTowerGraphics():void{ removeChild(m_shadow); m_shadow = null; removeChild(m_container); m_container = null; if (m_level == 1){ m_shadow = new BlasterTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new BlasterTowerL1(); } else { if (m_level == 2){ m_shadow = new BlasterTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new BlasterTowerL2(); } else { m_shadow = new BlasterTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new BlasterTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_container.gunfire.visible = false; } } }//package game.towers
Section 338
//LaserTower (game.towers.LaserTower) package game.towers { import flash.events.*; import flash.display.*; import game.events.*; import game.interfaces.*; import game.*; import assets.towers.*; public class LaserTower extends BaseEnergyTower { protected var m_weaponContainer:MovieClip; public function LaserTower(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ m_x = _arg1; m_y = _arg2; m_rotation = 0; m_rotationSpeedCap = 25; m_level = _arg3; m_gunfireEffectDuration = 0; m_maxTargetsLevel1 = 1; m_maxTargetsLevel2 = 2; m_maxTargetsLevel3 = 3; m_maxTargets = 1; if (m_level == 1){ m_shadow = new LaserTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LaserTowerL1(); } else { if (m_level == 2){ m_shadow = new LaserTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LaserTowerL2(); } else { m_shadow = new LaserTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LaserTowerL3(); }; }; addChild(m_shadow); m_weaponContainer = new MovieClip(); addChild(m_weaponContainer); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_canTargetLand = true; m_canTargetAir = true; m_frequencyLevel1 = TowerData.instance.frequencyTable[TowerController.LASER][TowerController.LEVEL_1]; m_frequencyLevel2 = TowerData.instance.frequencyTable[TowerController.LASER][TowerController.LEVEL_2]; m_frequencyLevel3 = TowerData.instance.frequencyTable[TowerController.LASER][TowerController.LEVEL_3]; m_frequencyBonusFactor = TowerData.instance.frequencyTable[TowerController.LASER][TowerController.FREQUENCY_BONUS]; m_hasFrequencyBonus = _arg4; m_rangeLevel1 = TowerData.instance.rangeTable[TowerController.LASER][TowerController.LEVEL_1]; m_rangeLevel2 = TowerData.instance.rangeTable[TowerController.LASER][TowerController.LEVEL_2]; m_rangeLevel3 = TowerData.instance.rangeTable[TowerController.LASER][TowerController.LEVEL_3]; m_rangeBonusFactor = TowerData.instance.rangeTable[TowerController.LASER][TowerController.RANGE_BONUS]; m_hasRangeBonus = _arg5; m_container.gunfire.visible = false; recalculateStats(); m_targetObjectArray = []; m_targetTimeArray = []; m_state = m_SEARCH_AND_ATTACK; doRender(); m_container.buttonMode = true; m_weaponContainer.mouseEnabled = false; m_weaponContainer.mouseChildren = false; m_shadow.mouseEnabled = false; m_shadow.mouseChildren = false; m_container.addEventListener(MouseEvent.MOUSE_MOVE, moveHandler, false, 0, true); } override protected function doEnergyFire(_arg1:IEnemy):void{ var _local2:Object = {clipRef:m_weaponContainer, x:m_x, y:m_y}; GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.LASER_FIRE, this, _arg1, null, m_level, _local2)); } override public function destroy():void{ super.destroy(); } private function moveHandler(_arg1:MouseEvent):void{ } override protected function updateTowerGraphics():void{ removeChild(m_shadow); m_shadow = null; removeChild(m_container); m_container = null; if (m_level == 1){ m_shadow = new LaserTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LaserTowerL1(); } else { if (m_level == 2){ m_shadow = new LaserTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LaserTowerL2(); } else { m_shadow = new LaserTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LaserTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.gunfire.visible = false; m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; } } }//package game.towers
Section 339
//LightningTower (game.towers.LightningTower) package game.towers { import game.events.*; import game.interfaces.*; import game.*; import assets.towers.*; public class LightningTower extends BaseEnergyTower { public function LightningTower(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ m_x = _arg1; m_y = _arg2; m_rotation = 0; m_rotationSpeedCap = 25; m_level = _arg3; m_gunfireEffectDuration = 0; m_maxTargetsLevel1 = 2; m_maxTargetsLevel2 = 3; m_maxTargetsLevel3 = 4; m_maxTargets = 1; if (m_level == 1){ m_shadow = new LightningTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LightningTowerL1(); } else { if (m_level == 2){ m_shadow = new LightningTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 4); m_container = new LightningTowerL2(); } else { m_shadow = new LightningTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 5); m_container = new LightningTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_canTargetLand = true; m_canTargetAir = true; m_frequencyLevel1 = TowerData.instance.frequencyTable[TowerController.LIGHTNING][TowerController.LEVEL_1]; m_frequencyLevel2 = TowerData.instance.frequencyTable[TowerController.LIGHTNING][TowerController.LEVEL_2]; m_frequencyLevel3 = TowerData.instance.frequencyTable[TowerController.LIGHTNING][TowerController.LEVEL_3]; m_frequencyBonusFactor = TowerData.instance.frequencyTable[TowerController.LIGHTNING][TowerController.FREQUENCY_BONUS]; m_hasFrequencyBonus = _arg4; m_rangeLevel1 = TowerData.instance.rangeTable[TowerController.LIGHTNING][TowerController.LEVEL_1]; m_rangeLevel2 = TowerData.instance.rangeTable[TowerController.LIGHTNING][TowerController.LEVEL_2]; m_rangeLevel3 = TowerData.instance.rangeTable[TowerController.LIGHTNING][TowerController.LEVEL_3]; m_rangeBonusFactor = TowerData.instance.rangeTable[TowerController.LIGHTNING][TowerController.RANGE_BONUS]; m_hasRangeBonus = _arg5; m_container.gunfire.visible = false; recalculateStats(); m_targetObjectArray = []; m_targetTimeArray = []; m_state = m_SEARCH_AND_ATTACK; doRender(); } override protected function doEnergyFire(_arg1:IEnemy):void{ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.LIGHTNING_FIRE, this, _arg1, null, m_level)); } override public function destroy():void{ super.destroy(); } override protected function updateTowerGraphics():void{ removeChild(m_shadow); m_shadow = null; removeChild(m_container); m_container = null; if (m_level == 1){ m_shadow = new LightningTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new LightningTowerL1(); } else { if (m_level == 2){ m_shadow = new LightningTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 4); m_container = new LightningTowerL2(); } else { m_shadow = new LightningTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 5); m_container = new LightningTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.gunfire.visible = false; m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; } } }//package game.towers
Section 340
//RocketTower (game.towers.RocketTower) package game.towers { import game.events.*; import game.*; import assets.towers.*; public class RocketTower extends BaseTower { public function RocketTower(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ m_x = _arg1; m_y = _arg2; m_rotation = 0; m_rotationSpeedCap = 25; m_level = _arg3; m_gunfireEffectDuration = 0; if (m_level == 1){ m_shadow = new RocketTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new RocketTowerL1(); } else { if (m_level == 2){ m_shadow = new RocketTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new RocketTowerL2(); } else { m_shadow = new RocketTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new RocketTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_canTargetLand = true; m_canTargetAir = true; m_frequencyLevel1 = TowerData.instance.frequencyTable[TowerController.ROCKET][TowerController.LEVEL_1]; m_frequencyLevel2 = TowerData.instance.frequencyTable[TowerController.ROCKET][TowerController.LEVEL_2]; m_frequencyLevel3 = TowerData.instance.frequencyTable[TowerController.ROCKET][TowerController.LEVEL_3]; m_frequencyBonusFactor = TowerData.instance.frequencyTable[TowerController.ROCKET][TowerController.FREQUENCY_BONUS]; m_hasFrequencyBonus = _arg4; m_rangeLevel1 = TowerData.instance.rangeTable[TowerController.ROCKET][TowerController.LEVEL_1]; m_rangeLevel2 = TowerData.instance.rangeTable[TowerController.ROCKET][TowerController.LEVEL_2]; m_rangeLevel3 = TowerData.instance.rangeTable[TowerController.ROCKET][TowerController.LEVEL_3]; m_rangeBonusFactor = TowerData.instance.rangeTable[TowerController.ROCKET][TowerController.RANGE_BONUS]; m_hasRangeBonus = _arg5; m_container.gunfire.visible = false; recalculateStats(); m_state = m_SEARCHING; doRender(); } override protected function doFire():void{ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.ROCKET_FIRE, this, m_target, null, m_level)); m_container.gunfire.visible = true; m_container.gunfire.gotoAndPlay("fire"); m_target = null; m_state = m_SEARCHING; } override public function destroy():void{ super.destroy(); } override protected function updateTowerGraphics():void{ removeChild(m_shadow); m_shadow = null; removeChild(m_container); m_container = null; if (m_level == 1){ m_shadow = new RocketTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new RocketTowerL1(); } else { if (m_level == 2){ m_shadow = new RocketTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new RocketTowerL2(); } else { m_shadow = new RocketTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 4); m_container = new RocketTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.gunfire.visible = false; m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; } } }//package game.towers
Section 341
//SlowdownTower (game.towers.SlowdownTower) package game.towers { import game.events.*; import game.interfaces.*; import game.enemies.*; import game.*; import assets.towers.*; public class SlowdownTower extends BaseTower { public function SlowdownTower(_arg1:int, _arg2:int, _arg3:int, _arg4:Boolean, _arg5:Boolean){ m_x = _arg1; m_y = _arg2; m_rotation = 0; m_rotationSpeedCap = 25; m_level = _arg3; m_gunfireEffectDuration = 4; if (m_level == 1){ m_shadow = new SlowdownTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 2); m_container = new SlowdownTowerL1(); } else { if (m_level == 2){ m_shadow = new SlowdownTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 2); m_container = new SlowdownTowerL2(); } else { m_shadow = new SlowdownTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new SlowdownTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_canTargetLand = true; m_canTargetAir = true; m_frequencyLevel1 = TowerData.instance.frequencyTable[TowerController.SLOWDOWN][TowerController.LEVEL_1]; m_frequencyLevel2 = TowerData.instance.frequencyTable[TowerController.SLOWDOWN][TowerController.LEVEL_2]; m_frequencyLevel3 = TowerData.instance.frequencyTable[TowerController.SLOWDOWN][TowerController.LEVEL_3]; m_frequencyBonusFactor = TowerData.instance.frequencyTable[TowerController.SLOWDOWN][TowerController.FREQUENCY_BONUS]; m_hasFrequencyBonus = _arg4; m_rangeLevel1 = TowerData.instance.rangeTable[TowerController.SLOWDOWN][TowerController.LEVEL_1]; m_rangeLevel2 = TowerData.instance.rangeTable[TowerController.SLOWDOWN][TowerController.LEVEL_2]; m_rangeLevel3 = TowerData.instance.rangeTable[TowerController.SLOWDOWN][TowerController.LEVEL_3]; m_rangeBonusFactor = TowerData.instance.rangeTable[TowerController.SLOWDOWN][TowerController.RANGE_BONUS]; m_hasRangeBonus = _arg5; m_container.gunfire.visible = false; recalculateStats(); m_state = m_SEARCHING; doRender(); } override public function destroy():void{ super.destroy(); } override protected function doFireEffect():void{ if (m_gunfireEffectCountdown > 0){ m_gunfireEffectCountdown--; if (m_gunfireEffectCountdown == 0){ m_container.gunfire.visible = false; }; }; } override protected function doSearchMode():void{ var _local3:IEnemy; var _local6:IEnemy; var _local7:Boolean; var _local8:Boolean; var _local9:Boolean; var _local10:Object; var _local11:Number; var _local12:Number; var _local13:Boolean; var _local14:Number; var _local15:Object; var _local16:IEnemy; var _local1:Array = EnemyData.instance.enemyArray; var _local2:Boolean; var _local4:Array = []; var _local5:int; while (_local5 < _local1.length) { _local6 = IEnemy(_local1[_local5]); _local7 = true; if ((_local6 is ILandEnemy)){ if (!m_canTargetLand){ _local7 = false; }; }; _local8 = true; if ((_local6 is IAirEnemy)){ if (!m_canTargetAir){ _local8 = false; }; }; _local9 = _local6.isTargetable(); if (((((_local7) && (_local8))) && (_local9))){ _local10 = _local6.getPosition(); _local11 = _local10.x; _local12 = _local10.y; _local13 = rangeCheck(m_x, m_y, _local11, _local12, m_range); if (_local13){ _local14 = calculateDistance(m_x, m_y, _local11, _local12); _local15 = {}; _local15.enemy = _local6; _local15.dist = _local14; _local15.speedFactor = _local6.getSpeedFactor(); _local4.push(_local15); }; }; _local5++; }; if (_local4.length > 0){ _local4.sortOn("dist", Array.NUMERIC); _local16 = IEnemy(_local4[0].enemy); _local5 = 0; while (_local5 < _local4.length) { _local5++; }; _local5 = 0; while (_local5 < _local4.length) { if (_local4[_local5].speedFactor < 1){ _local4.splice(_local5, 1); _local5--; }; _local5++; }; _local5 = 0; while (_local5 < _local4.length) { _local5++; }; if (_local4.length > 0){ m_target = IEnemy(_local4[0].enemy); } else { m_target = _local16; }; m_state = m_ATTACKING; }; } override protected function doFire():void{ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.SLOWDOWN_FIRE, this, m_target, null, m_level)); m_gunfireEffectCountdown = m_gunfireEffectDuration; m_target = null; m_state = m_SEARCHING; } override protected function updateTowerGraphics():void{ removeChild(m_shadow); m_shadow = null; removeChild(m_container); m_container = null; if (m_level == 1){ m_shadow = new SlowdownTowerShadowL1(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 2); m_container = new SlowdownTowerL1(); } else { if (m_level == 2){ m_shadow = new SlowdownTowerShadowL2(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 2); m_container = new SlowdownTowerL2(); } else { m_shadow = new SlowdownTowerShadowL3(); m_shadow.x = Map.tileHalfW; m_shadow.y = (Map.tileHalfH + 3); m_container = new SlowdownTowerL3(); }; }; addChild(m_shadow); addChild(m_container); m_container.gunfire.visible = false; m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; } } }//package game.towers
Section 342
//TowerController (game.towers.TowerController) package game.towers { import com.markfennell.sound.*; import game.events.*; import flash.utils.*; import game.interfaces.*; import org.casalib.display.*; import game.*; public class TowerController extends CasaSprite { public static const SLOWDOWN:String = "Slowdown"; public static const RANGE_BONUS:String = "RangeBonus"; public static const BLASTER:String = "Blaster"; public static const LIGHTNING:String = "Lightning"; public static const LASER:String = "Laser"; public static const ROCKET:String = "Rocket"; public static const LEVEL_2:String = "Level2"; public static const LEVEL_3:String = "Level3"; public static const FREQUENCY_BONUS:String = "FrequencyBonus"; public static const LEVEL_1:String = "Level1"; public function TowerController(_arg1:XML){ TowerData.instance.emptyArray(); initTables(_arg1); GameBroadcaster.addEventListener(TowerEvent.BUILD_TOWER, buildTowerHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.SELL_TOWER, sellTowerHandler, false, 0, true); GameBroadcaster.addEventListener(TowerEvent.UPGRADE_TOWER, upgradeTowerHandler, false, 0, true); trace("TC online"); } public function doRender():void{ var _local1:Array = TowerData.instance.towerArray; var _local2:int; while (_local2 < _local1.length) { BaseTower(_local1[_local2]).doRender(); _local2++; }; } private function sellTowerHandler(_arg1:TowerEvent):void{ var _local2:ITower = _arg1.towerObject; TowerData.instance.towerArray.splice(TowerData.instance.towerArray.indexOf(_local2), 1); _local2.destroy(); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.towers.TowerSell", 0.7, 1, false)); } private function initTables(_arg1:XML):void{ var _local2:Dictionary = TowerData.instance.frequencyTable; var _local3:Dictionary = TowerData.instance.rangeTable; _local2[BLASTER] = new Dictionary(); _local2[BLASTER][LEVEL_1] = int(_arg1.blasterTower.frequency.@level1); _local2[BLASTER][LEVEL_2] = int(_arg1.blasterTower.frequency.@level2); _local2[BLASTER][LEVEL_3] = int(_arg1.blasterTower.frequency.@level3); _local2[BLASTER][FREQUENCY_BONUS] = 0.5; _local3[BLASTER] = new Dictionary(); _local3[BLASTER][LEVEL_1] = int(_arg1.blasterTower.range.@level1); _local3[BLASTER][LEVEL_2] = int(_arg1.blasterTower.range.@level2); _local3[BLASTER][LEVEL_3] = int(_arg1.blasterTower.range.@level3); _local3[BLASTER][RANGE_BONUS] = 1.6; _local2[SLOWDOWN] = new Dictionary(); _local2[SLOWDOWN][LEVEL_1] = int(_arg1.slowdownTower.frequency.@level1); _local2[SLOWDOWN][LEVEL_2] = int(_arg1.slowdownTower.frequency.@level2); _local2[SLOWDOWN][LEVEL_3] = int(_arg1.slowdownTower.frequency.@level3); _local2[SLOWDOWN][FREQUENCY_BONUS] = 0.5; _local3[SLOWDOWN] = new Dictionary(); _local3[SLOWDOWN][LEVEL_1] = int(_arg1.slowdownTower.range.@level1); _local3[SLOWDOWN][LEVEL_2] = int(_arg1.slowdownTower.range.@level2); _local3[SLOWDOWN][LEVEL_3] = int(_arg1.slowdownTower.range.@level3); _local3[SLOWDOWN][RANGE_BONUS] = 1.5; _local2[ROCKET] = new Dictionary(); _local2[ROCKET][LEVEL_1] = int(_arg1.rocketTower.frequency.@level1); _local2[ROCKET][LEVEL_2] = int(_arg1.rocketTower.frequency.@level2); _local2[ROCKET][LEVEL_3] = int(_arg1.rocketTower.frequency.@level3); _local2[ROCKET][FREQUENCY_BONUS] = 0.5; _local3[ROCKET] = new Dictionary(); _local3[ROCKET][LEVEL_1] = int(_arg1.rocketTower.range.@level1); _local3[ROCKET][LEVEL_2] = int(_arg1.rocketTower.range.@level2); _local3[ROCKET][LEVEL_3] = int(_arg1.rocketTower.range.@level3); _local3[ROCKET][RANGE_BONUS] = 1.5; _local2[LASER] = new Dictionary(); _local2[LASER][LEVEL_1] = int(_arg1.laserTower.frequency.@level1); _local2[LASER][LEVEL_2] = int(_arg1.laserTower.frequency.@level2); _local2[LASER][LEVEL_3] = int(_arg1.laserTower.frequency.@level3); _local2[LASER][FREQUENCY_BONUS] = 0.5; _local3[LASER] = new Dictionary(); _local3[LASER][LEVEL_1] = int(_arg1.laserTower.range.@level1); _local3[LASER][LEVEL_2] = int(_arg1.laserTower.range.@level2); _local3[LASER][LEVEL_3] = int(_arg1.laserTower.range.@level3); _local3[LASER][RANGE_BONUS] = 1.3; _local2[LIGHTNING] = new Dictionary(); _local2[LIGHTNING][LEVEL_1] = int(_arg1.lightningTower.frequency.@level1); _local2[LIGHTNING][LEVEL_2] = int(_arg1.lightningTower.frequency.@level2); _local2[LIGHTNING][LEVEL_3] = int(_arg1.lightningTower.frequency.@level3); _local2[LIGHTNING][FREQUENCY_BONUS] = 0.5; _local3[LIGHTNING] = new Dictionary(); _local3[LIGHTNING][LEVEL_1] = int(_arg1.lightningTower.range.@level1); _local3[LIGHTNING][LEVEL_2] = int(_arg1.lightningTower.range.@level2); _local3[LIGHTNING][LEVEL_3] = int(_arg1.lightningTower.range.@level3); _local3[LIGHTNING][RANGE_BONUS] = 1.3; } override public function destroy():void{ var _local1:Array = TowerData.instance.towerArray; var _local2:int; while (_local2 < _local1.length) { BaseTower(_local1[_local2]).destroy(); _local1[_local2] = null; _local2++; }; GameBroadcaster.removeEventListener(TowerEvent.BUILD_TOWER, buildTowerHandler); GameBroadcaster.removeEventListener(TowerEvent.SELL_TOWER, sellTowerHandler); GameBroadcaster.removeEventListener(TowerEvent.UPGRADE_TOWER, upgradeTowerHandler); TowerData.instance.emptyArray(); trace("TowerData destroy"); super.destroy(); } public function doPhysics():void{ var _local1:Array = TowerData.instance.towerArray; var _local2:int; while (_local2 < _local1.length) { BaseTower(_local1[_local2]).doPhysics(); _local2++; }; } private function upgradeTowerHandler(_arg1:TowerEvent):void{ var _local2:ITower = _arg1.towerObject; _local2.doUpgrade(_arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus); if (((_arg1.hasFrequencyBonus) || (_arg1.hasRangeBonus))){ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.towers.TowerBonus", 0.7, 1, false)); } else { GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.towers.TowerUpgrade", 0.7, 1, false)); }; } private function buildTowerHandler(_arg1:TowerEvent):void{ var _local4:BaseTower; var _local2:int = (_arg1.tower_cell_x * Map.tileW); var _local3:int = (_arg1.tower_cell_y * Map.tileH); if (_arg1.towerType == BLASTER){ _local4 = new BlasterTower(_local2, _local3, _arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus); } else { if (_arg1.towerType == SLOWDOWN){ _local4 = new SlowdownTower(_local2, _local3, _arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus); } else { if (_arg1.towerType == ROCKET){ _local4 = new RocketTower(_local2, _local3, _arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus); } else { if (_arg1.towerType == LASER){ _local4 = new LaserTower(_local2, _local3, _arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus); } else { if (_arg1.towerType == LIGHTNING){ _local4 = new LightningTower(_local2, _local3, _arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus); }; }; }; }; }; addChild(_local4); TowerData.instance.towerArray.push(_local4); GameBroadcaster.dispatchEvent(new TowerEvent(TowerEvent.BUILD_TOWER_COMPLETE, _local4, _arg1.levelID, _arg1.hasFrequencyBonus, _arg1.hasRangeBonus, _arg1.towerType, _arg1.tower_cell_x, _arg1.tower_cell_y)); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.towers.TowerBuild", 0.7, 1, false)); } public static function getTowerLevelString(_arg1:ITower=null, _arg2:int=0):String{ var _local4:int; var _local3 = ""; if (_arg1 != null){ _local4 = _arg1.getLevel(); } else { _local4 = _arg2; }; if (_local4 == 1){ _local3 = TowerController.LEVEL_1; } else { if (_local4 == 2){ _local3 = TowerController.LEVEL_2; } else { _local3 = TowerController.LEVEL_3; }; }; return (_local3); } public static function getTowerTypeString(_arg1:ITower):String{ var _local2:String; if ((_arg1 is BlasterTower)){ _local2 = TowerController.BLASTER; } else { if ((_arg1 is SlowdownTower)){ _local2 = TowerController.SLOWDOWN; } else { if ((_arg1 is RocketTower)){ _local2 = TowerController.ROCKET; } else { if ((_arg1 is LaserTower)){ _local2 = TowerController.LASER; } else { if ((_arg1 is LightningTower)){ _local2 = TowerController.LIGHTNING; }; }; }; }; }; return (_local2); } } }//package game.towers
Section 343
//TowerData (game.towers.TowerData) package game.towers { import flash.events.*; import flash.utils.*; public class TowerData extends EventDispatcher { private var m_towerArray:Array; private var m_rangeTable:Dictionary; private var m_frequencyTable:Dictionary; private static var m_instance:TowerData = new (TowerData); ; public function TowerData(){ if (m_instance){ throw (new Error("Error: TowerData is a Singleton, and can only be accessed through TowerData.instance")); }; m_instance = this; m_towerArray = []; m_frequencyTable = new Dictionary(); m_rangeTable = new Dictionary(); } public function get towerArray():Array{ return (m_towerArray); } public function get rangeTable():Dictionary{ return (m_rangeTable); } public function get frequencyTable():Dictionary{ return (m_frequencyTable); } public function emptyArray():void{ m_towerArray = []; m_frequencyTable = new Dictionary(); m_rangeTable = new Dictionary(); } public static function get instance():TowerData{ return (m_instance); } } }//package game.towers
Section 344
//Wave (game.waves.Wave) package game.waves { public class Wave { public var bossRound:Boolean; public var timeToLaunchArray:Array; public var cashBonus:int; public var scoreBonus:int; public var routeArray:Array; public var maxTime:int; public var waveID:int; public var enemyTypeArray:Array; public var enemyObjectArray:Array; public var healthArray:Array; public var minTime:int; public static const WAVE_NOT_LAUNCHED:String = "waveNotLaunched"; public static const WAVE_ACTIVE:String = "waveActive"; public static const WAVE_COMPLETE:String = "waveComplete"; public function Wave(){ enemyTypeArray = []; healthArray = []; routeArray = []; timeToLaunchArray = []; enemyObjectArray = []; super(); } } }//package game.waves
Section 345
//WaveController (game.waves.WaveController) package game.waves { import console.*; import game.events.*; import flash.utils.*; import game.enemies.*; import org.casalib.util.*; import game.*; public class WaveController { private var m_totalWaves:int; private var m_spawnLockState:int; private var m_currentWaveID:int; private var m_inactiveWaves:Array; private var m_currentWaveMinTime:int; private var m_activeWaves:Array; private var m_allWavesComplete:Boolean;// = false private var m_currentWaveTime:int; private var m_firstWaveLaunched:Boolean;// = false private var m_currentWaveMaxTime:int; private var m_waveTimers:Array; private var m_allWavesLaunched:Boolean;// = false private var m_orderedWaves:Array; private static const SPAWN_BOSS_ROUND:int = 2; private static const SPAWN_NORMAL:int = 0; private static const SPAWN_PRE_BOSS:int = 1; public function WaveController(){ trace("WaveController online"); GameBroadcaster.addEventListener(WaveEvent.REQUEST_NEXT_WAVE, requestNextWaveHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_SPAWNED, enemySpawnedHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyTerminatedHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyTerminatedHandler, false, 0, true); } private function newWave(_arg1:int):void{ trace(("WaveController launching waveID: " + _arg1)); var _local2:String = ("level" + NumberUtil.addLeadingZero((_arg1 + 1))); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, _local2, "start"); m_waveTimers[_arg1] = getTimer(); var _local3:Wave = m_inactiveWaves.shift(); m_activeWaves.push(_local3); var _local4:int = m_currentWaveMaxTime; var _local5:int = m_currentWaveTime; m_currentWaveTime = 0; m_currentWaveMinTime = _local3.minTime; m_currentWaveMaxTime = _local3.maxTime; GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.WAVE_LAUNCHED, m_currentWaveMinTime, m_currentWaveMaxTime, m_currentWaveID, m_totalWaves, _local5, _local4, _local3)); if (_local3.bossRound == true){ m_spawnLockState = SPAWN_BOSS_ROUND; GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.LOCK_NEXT_WAVE)); }; if (m_inactiveWaves.length == 0){ trace("newWave ALL WAVES LAUNCHED"); m_allWavesLaunched = true; } else { if (Wave(m_inactiveWaves[0]).bossRound == true){ m_spawnLockState = SPAWN_PRE_BOSS; GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.LOCK_NEXT_WAVE)); }; }; } private function incrementWaveAndLaunch():void{ m_currentWaveID++; newWave(m_currentWaveID); } private function enemyTerminatedHandler(_arg1:EnemyEvent):void{ var _local2:BaseEnemy = _arg1.enemyObject; var _local3:int = _local2.getWaveID(); var _local4:Wave = m_orderedWaves[_local3]; _local4.enemyObjectArray.splice(_local4.enemyObjectArray.indexOf(_local2), 1); if ((((_local4.timeToLaunchArray.length == 0)) && ((_local4.enemyObjectArray.length == 0)))){ waveLifecycleComplete(_local4); }; } public function calculateWaveTimes():void{ var _local2:Wave; var _local3:int; var _local4:Array; var _local5:int; var _local6:int; var _local7:int; var _local8:String; var _local9:int; var _local10:Dictionary; var _local11:Number; var _local12:int; var _local1:int; while (_local1 < m_inactiveWaves.length) { _local2 = m_inactiveWaves[_local1]; _local3 = 0; _local4 = Map.getRoutes(); _local5 = 0; while (_local5 < _local2.timeToLaunchArray.length) { _local6 = _local4[_local2.routeArray[_local5]].length; _local7 = (_local6 * Map.tileW); _local8 = _local2.enemyTypeArray[_local5]; _local9 = _local2.timeToLaunchArray[_local5]; _local10 = EnemyData.instance.speedTable; _local11 = 0; if (_local8 == EnemyController.MOLEOID){ _local11 = _local10[EnemyController.MOLEOID]; } else { if (_local8 == EnemyController.AIMSENTRY_BLUE){ _local11 = _local10[EnemyController.AIMSENTRY]; } else { if (_local8 == EnemyController.AIMSENTRY_RED){ _local11 = _local10[EnemyController.AIMSENTRY]; } else { if (_local8 == EnemyController.AIMSENTRY_YELLOW){ _local11 = _local10[EnemyController.AIMSENTRY]; } else { if (_local8 == EnemyController.DOOMBOT){ _local11 = _local10[EnemyController.DOOMBOT]; } else { if (_local8 == EnemyController.JEEP){ _local11 = _local10[EnemyController.JEEP]; } else { if (_local8 == EnemyController.HELICOPTER){ _local11 = _local10[EnemyController.HELICOPTER]; } else { if (_local8 == EnemyController.ATTACKAPC){ _local11 = _local10[EnemyController.ATTACKAPC]; } else { if (_local8 == EnemyController.LIGHTTANK){ _local11 = _local10[EnemyController.LIGHTTANK]; } else { if (_local8 == EnemyController.CRUISEMISSILE){ _local11 = _local10[EnemyController.CRUISEMISSILE]; } else { if (_local8 == EnemyController.HEAVYTANK){ _local11 = _local10[EnemyController.HEAVYTANK]; } else { if (_local8 == EnemyController.MOLEMAN){ _local11 = _local10[EnemyController.MOLEMAN]; } else { if (_local8 == EnemyController.MODOK){ _local11 = _local10[EnemyController.MODOK]; } else { if (_local8 == EnemyController.DRDOOM){ _local11 = _local10[EnemyController.DRDOOM]; }; }; }; }; }; }; }; }; }; }; }; }; }; }; _local12 = ((_local7 / _local11) + _local9); if (_local12 > _local3){ _local3 = _local12; }; _local5++; }; _local2.maxTime = _local3; _local1++; }; } private function waveLifecycleComplete(_arg1:Wave):void{ trace(("> Wave execution complete " + _arg1.waveID)); var _local2:int = int(((getTimer() - m_waveTimers[_arg1.waveID]) / 1000)); var _local3:String = ("level" + NumberUtil.addLeadingZero((_arg1.waveID + 1))); trace((((((("GA Event: " + Constants.TRACKING_TITLE) + ", ") + _local3) + ", ") + "complete, ") + _local2)); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, _local3, "complete", _local2); GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.WAVE_DEFEATED, 0, 0, 0, 0, 0, 0, _arg1)); if (m_activeWaves.length == 0){ if (m_spawnLockState == SPAWN_PRE_BOSS){ m_spawnLockState = SPAWN_NORMAL; GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.UNLOCK_NEXT_WAVE)); } else { if (m_spawnLockState == SPAWN_BOSS_ROUND){ m_spawnLockState = SPAWN_NORMAL; GameBroadcaster.dispatchEvent(new WaveEvent(WaveEvent.UNLOCK_NEXT_WAVE)); }; }; }; } private function launchEnemy(_arg1:String, _arg2:int, _arg3:int, _arg4:int):void{ if ((((((((((((((((((((((((((((_arg1 == EnemyController.MOLEOID)) || ((_arg1 == EnemyController.AIMSENTRY_BLUE)))) || ((_arg1 == EnemyController.AIMSENTRY_RED)))) || ((_arg1 == EnemyController.AIMSENTRY_YELLOW)))) || ((_arg1 == EnemyController.DOOMBOT)))) || ((_arg1 == EnemyController.JEEP)))) || ((_arg1 == EnemyController.HELICOPTER)))) || ((_arg1 == EnemyController.ATTACKAPC)))) || ((_arg1 == EnemyController.LIGHTTANK)))) || ((_arg1 == EnemyController.CRUISEMISSILE)))) || ((_arg1 == EnemyController.HEAVYTANK)))) || ((_arg1 == EnemyController.MOLEMAN)))) || ((_arg1 == EnemyController.MODOK)))) || ((_arg1 == EnemyController.DRDOOM)))){ GameBroadcaster.dispatchEvent(new EnemyEvent(EnemyEvent.SPAWN_ENEMY, null, _arg1, _arg2, _arg3, _arg4)); } else { throw (new Error(("Unknown enemy type!: " + _arg1))); }; } public function setWaveDifficulty(_arg1:Number):void{ var _local3:Wave; var _local4:int; var _local2:int; while (_local2 < m_inactiveWaves.length) { _local3 = m_inactiveWaves[_local2]; _local4 = 0; while (_local4 < _local3.healthArray.length) { _local3.healthArray[_local4] = (_local3.healthArray[_local4] * _arg1); _local4++; }; _local2++; }; } public function startWaves():void{ trace("WaveController is beginning the game"); m_currentWaveID = 0; m_currentWaveTime = 0; m_currentWaveMinTime = 0; m_currentWaveMaxTime = 0; m_firstWaveLaunched = true; m_spawnLockState = SPAWN_NORMAL; newWave(m_currentWaveID); } private function manageTime():void{ var _local2:Wave; var _local3:int; var _local4:String; var _local5:int; var _local6:int; var _local7:int; m_currentWaveTime++; if ((((((m_currentWaveTime >= m_currentWaveMaxTime)) && (!(m_allWavesLaunched)))) && ((m_spawnLockState == SPAWN_NORMAL)))){ incrementWaveAndLaunch(); }; if ((((m_activeWaves.length == 0)) && ((m_inactiveWaves.length == 0)))){ m_allWavesComplete = true; }; var _local1:int; while (_local1 < m_activeWaves.length) { _local2 = m_activeWaves[_local1]; _local3 = 0; while (_local3 < _local2.timeToLaunchArray.length) { var _local8 = _local2.timeToLaunchArray; var _local9 = _local3; var _local10 = (_local8[_local9] - 1); _local8[_local9] = _local10; if (_local2.timeToLaunchArray[_local3] <= 0){ _local4 = _local2.enemyTypeArray[_local3]; _local5 = _local2.healthArray[_local3]; _local6 = _local2.routeArray[_local3]; _local7 = _local2.waveID; _local2.enemyTypeArray.splice(_local3, 1); _local2.healthArray.splice(_local3, 1); _local2.routeArray.splice(_local3, 1); _local2.timeToLaunchArray.splice(_local3, 1); launchEnemy(_local4, _local5, _local6, _local7); _local3--; }; _local3++; }; if (_local2.timeToLaunchArray.length == 0){ m_activeWaves.splice(_local1, 1); _local1--; }; _local1++; }; } public function checkAllWavesComplete():Boolean{ if (m_allWavesComplete){ return (true); }; return (false); } private function requestNextWaveHandler(_arg1:WaveEvent):void{ if ((((m_currentWaveTime >= m_currentWaveMinTime)) && (!(m_allWavesLaunched)))){ if (m_inactiveWaves.length == 0){ throw (new Error("requestNextWaveHandler BUT ALL WAVES LAUNCHED")); }; incrementWaveAndLaunch(); }; } public function destroy():void{ GameBroadcaster.removeEventListener(WaveEvent.REQUEST_NEXT_WAVE, requestNextWaveHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_SPAWNED, enemySpawnedHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyTerminatedHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyTerminatedHandler); } public function initWaves(_arg1:XML):void{ var _local4:Wave; var _local5:XML; var _local6:Array; var _local7:int; var _local8:String; var _local9:int; var _local10:int; var _local11:int; var _local12:int; var _local13:int; var _local14:int; var _local15:Object; var _local2:XML = _arg1; m_inactiveWaves = []; m_activeWaves = []; m_orderedWaves = []; m_waveTimers = []; m_totalWaves = _local2.wave.length(); var _local3:int; while (_local3 < _local2.wave.length()) { _local4 = new Wave(); m_inactiveWaves.push(_local4); m_orderedWaves.push(_local4); _local5 = _local2.wave[_local3]; _local4.waveID = _local3; _local4.minTime = int(_local5.@minTime); _local4.maxTime = 0; _local4.bossRound = Boolean(int(_local5.@bossRound)); _local4.cashBonus = int(_local5.@cashBonus); _local4.scoreBonus = int(_local5.@scoreBonus); _local6 = []; _local7 = 0; while (_local7 < _local5.cluster.length()) { _local8 = String(_local5.cluster[_local7].@type); _local9 = int(_local5.cluster[_local7].@health); _local10 = int(_local5.cluster[_local7].@routeid); if ((((_local10 < 0)) || ((_local10 > 5)))){ trace(("WC ERROR: enemy had route outside of 0<route<5: " + _local10)); _local10 = 0; }; _local11 = int(_local5.cluster[_local7].@units); _local12 = int(_local5.cluster[_local7].@timeoffset); _local13 = int(_local5.cluster[_local7].@timegap); _local14 = 0; while (_local14 < _local11) { _local15 = {}; _local15.enemyType = _local8; _local15.health = _local9; _local15.routeID = _local10; _local15.time = int((_local12 + (_local13 * _local14))); _local6.push(_local15); _local14++; }; _local7++; }; _local6.sortOn("time", [Array.NUMERIC]); _local14 = 0; while (_local14 < _local6.length) { _local4.enemyTypeArray[_local14] = _local6[_local14].enemyType; _local4.healthArray[_local14] = _local6[_local14].health; _local4.routeArray[_local14] = _local6[_local14].routeID; _local4.timeToLaunchArray[_local14] = _local6[_local14].time; _local14++; }; _local3++; }; } public function currentWaveID():int{ return (m_currentWaveID); } private function enemySpawnedHandler(_arg1:EnemyEvent):void{ var _local2:BaseEnemy = _arg1.enemyObject; var _local3:int = _local2.getWaveID(); var _local4:Wave = m_orderedWaves[_local3]; _local4.enemyObjectArray.push(_local2); } public function doPhysics():void{ if (((!(m_allWavesComplete)) && (m_firstWaveLaunched))){ manageTime(); }; } } }//package game.waves
Section 346
//LaserBeam (game.weapons.LaserBeam) package game.weapons { import game.events.*; import game.interfaces.*; import org.casalib.display.*; import game.*; import gs.*; public class LaserBeam extends CasaSprite implements IWeapon { protected var m_glowStrength:Number; protected var m_laserDurationCountdown:int; protected var level1LineWidth:Number;// = 2 protected var level2GlowColour:Number;// = 0xDE0000 protected var m_rotation:Number; protected var m_drawDeltaX:int; protected var m_drawDeltaY:int; protected var m_target:IEnemy; protected var level2LineWidth:Number;// = 3 protected var m_x:Number; protected var m_y:Number; protected var level2BeamColour:Number;// = 0xFF0000 protected var m_container:CasaSprite; protected var m_level:int; protected var m_tower:ITower; protected var m_laserDurationLevel1:int;// = 20 protected var m_laserDurationLevel2:int;// = 15 protected var m_laserDurationLevel3:int;// = 25 protected var level3GlowStrength:Number;// = 3 protected var level1GlowStrength:Number;// = 1 protected var level3LineWidth:Number;// = 3 protected var level3GlowColour:Number;// = 0xDE0000 protected var m_glowColour:Number; protected var level1GlowColour:Number;// = 0xDE0000 protected var m_lineWidth:Number; protected var level1BeamColour:Number;// = 0xFF0000 protected var level2GlowStrength:Number;// = 1 protected var level3BeamColour:Number;// = 0xFF0000 protected var m_beamColour:Number; public function LaserBeam(_arg1:IEnemy, _arg2:ITower, _arg3:int, _arg4:int, _arg5:int){ m_level = _arg3; m_target = _arg1; m_tower = _arg2; m_container = new CasaSprite(); addChild(m_container); m_container.mouseEnabled = false; m_container.mouseChildren = false; m_container.x = -(_arg4); m_container.y = -(_arg5); m_x = _arg2.getPosition().x; m_y = _arg2.getPosition().y; if (m_level == 1){ m_laserDurationCountdown = m_laserDurationLevel1; m_beamColour = level1BeamColour; m_glowColour = level1GlowColour; m_lineWidth = level1LineWidth; m_glowStrength = level1GlowStrength; } else { if (m_level == 2){ m_laserDurationCountdown = m_laserDurationLevel2; m_beamColour = level2BeamColour; m_glowColour = level2GlowColour; m_lineWidth = level2LineWidth; m_glowStrength = level2GlowStrength; } else { m_laserDurationCountdown = m_laserDurationLevel3; m_beamColour = level3BeamColour; m_glowColour = level3GlowColour; m_lineWidth = level3LineWidth; m_glowStrength = level3GlowStrength; }; }; TweenMax.to(m_container, 0.25, {glowFilter:{color:m_glowColour, alpha:1, blurX:10, blurY:10, strength:m_glowStrength, quality:1}}); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyLostHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyLostHandler, false, 0, true); } override public function destroy():void{ TweenMax.killTweensOf(m_container); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyLostHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyLostHandler); m_container.destroy(); super.destroy(); } public function doRender():void{ this.x = m_x; this.y = m_y; m_container.graphics.clear(); m_container.graphics.lineStyle(m_lineWidth, m_beamColour, 1); m_container.graphics.moveTo(Map.tileHalfW, Map.tileHalfH); m_container.graphics.lineTo((m_drawDeltaX + Map.tileHalfW), (m_drawDeltaY + Map.tileHalfH)); } public function getPosition():Object{ var _local1:Object = {}; _local1.x = m_x; _local1.y = m_y; _local1.rotation = m_rotation; return (_local1); } public function getLevel():int{ return (m_level); } private function enemyLostHandler(_arg1:EnemyEvent):void{ if (_arg1.enemyObject == m_target){ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.LASER_STOP, m_tower, null, this, m_level)); }; } public function doPhysics():void{ if (m_target == null){ trace("ERROR: laserBeam do physics couldnt get the enemy"); }; var _local1:Object = m_target.getPosition(); var _local2:int = _local1.x; var _local3:int = _local1.y; m_drawDeltaX = (_local2 - m_x); m_drawDeltaY = (_local3 - m_y); m_laserDurationCountdown--; if (m_laserDurationCountdown <= 0){ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.LASER_STOP, m_tower, m_target, this, m_level)); }; } } }//package game.weapons
Section 347
//LightningBeam (game.weapons.LightningBeam) package game.weapons { import flash.display.*; import game.events.*; import game.interfaces.*; import org.casalib.display.*; import game.*; import flash.filters.*; import com.foxaweb.utils.*; public class LightningBeam extends CasaSprite implements IWeapon { private var w:Number; protected var m_rotation:Number; protected var m_drawDeltaX:int; protected var m_drawDeltaY:int; private var curDisplace:Number;// = 50 protected var m_target:IEnemy; protected var m_x:Number; protected var m_y:Number; protected var level2BeamColour:Number;// = 4294967295 private var curDetail:Number;// = 1 protected var m_tower:ITower; private var filter0:BitmapFilter; private var filter1:BitmapFilter; private var curNbrBolts:int;// = 1 private var matrix:Array; protected var m_level:int; protected var m_lightningDurationCountdown:int; protected var level1BeamColour:Number;// = 4294967295 private var i:int; protected var level3BeamColour:Number;// = 4294967295 protected var m_beamColour:Number; private var h:Number; private var filter:BitmapFilter; protected var m_lightningDurationLevel1:int;// = 4 protected var m_lightningDurationLevel2:int;// = 8 protected var m_lightningDurationLevel3:int;// = 15 private var fade:Number;// = 0.7 private var m_effectsBitmap:BitmapData; public function LightningBeam(_arg1:IEnemy, _arg2:ITower, _arg3:int, _arg4:BitmapData){ m_level = _arg3; m_target = _arg1; m_tower = _arg2; m_effectsBitmap = _arg4; m_x = _arg2.getPosition().x; m_y = _arg2.getPosition().y; if (m_level == 1){ m_lightningDurationCountdown = m_lightningDurationLevel1; m_beamColour = level1BeamColour; } else { if (m_level == 2){ m_lightningDurationCountdown = m_lightningDurationLevel2; m_beamColour = level2BeamColour; } else { m_lightningDurationCountdown = m_lightningDurationLevel3; m_beamColour = level3BeamColour; }; }; GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyLostHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyLostHandler, false, 0, true); } public function doRender():void{ var _local1:int = (m_x + Map.tileHalfW); var _local2:int = (m_y + Map.tileHalfH); lightningBolt(_local1, _local2, ((m_x + m_drawDeltaX) + Map.tileHalfW), ((m_y + m_drawDeltaY) + Map.tileHalfH)); } private function lightningBolt(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):void{ i = 0; while (i < curNbrBolts) { _arg3 = (_arg3 + int(((Math.random() * 6) - 3))); _arg4 = (_arg4 + int(((Math.random() * 6) - 3))); strike(_arg1, _arg2, _arg3, _arg4, curDisplace); i++; }; } override public function destroy():void{ GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyLostHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyLostHandler); super.destroy(); } public function getPosition():Object{ var _local1:Object = {}; _local1.x = m_x; _local1.y = m_y; _local1.rotation = m_rotation; return (_local1); } public function doPhysics():void{ if (m_target == null){ trace("ERROR: LightningBeam do physics couldnt get the enemy"); }; var _local1:Object = m_target.getPosition(); var _local2:int = _local1.x; var _local3:int = _local1.y; m_drawDeltaX = (_local2 - m_x); m_drawDeltaY = (_local3 - m_y); m_lightningDurationCountdown--; if (m_lightningDurationCountdown <= 0){ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.LIGHTNING_STOP, m_tower, m_target, this, m_level)); }; } public function getLevel():int{ return (m_level); } private function enemyLostHandler(_arg1:EnemyEvent):void{ if (_arg1.enemyObject == m_target){ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.LIGHTNING_STOP, m_tower, null, this, m_level)); }; } private function strike(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):void{ var _local6:Number; var _local7:Number; if (_arg5 < curDetail){ Raster.line(m_effectsBitmap, _arg1, _arg2, _arg3, _arg4, m_beamColour); } else { _local6 = ((_arg3 + _arg1) / 2); _local7 = ((_arg4 + _arg2) / 2); _local6 = (_local6 + ((Math.random() - 0.5) * _arg5)); _local7 = (_local7 + ((Math.random() - 0.5) * _arg5)); strike(_arg1, _arg2, _local6, _local7, (_arg5 / 2)); strike(_arg3, _arg4, _local6, _local7, (_arg5 / 2)); }; } } }//package game.weapons
Section 348
//RocketProjectile (game.weapons.RocketProjectile) package game.weapons { import flash.display.*; import game.events.*; import game.interfaces.*; import org.casalib.display.*; import game.enemies.*; import game.*; import assets.weapons.*; public class RocketProjectile extends CasaSprite implements IWeapon { protected const m_searchTimeLevel1:int = 2; protected const m_searchTimeLevel3:int = 240; protected const m_searchTimeLevel2:int = 2; protected const m_SEARCHING:int = 1; protected const m_HOMING:int = 0; protected const m_rangeLevel1:int = 20; protected const m_rangeLevel2:int = 20; protected const m_rangeLevel3:int = 100; private var m_debugLog:String;// = "" protected var m_rotation:Number; protected var m_searchCountdown:int; protected var m_yMove:Number; protected var m_flaggedForDestroy:Boolean;// = false protected var m_xMove:Number; protected var m_target:IEnemy; protected var m_x:Number; protected var m_y:Number; protected var m_searchTotal:int; protected var m_rotationHomingCap:Number;// = 8 protected var m_container:MovieClip; protected var m_speedHoming:Number;// = 6 protected var m_physicsTick:int;// = 0 protected var m_level:int; protected var m_state:int; protected var m_speedSearching:Number;// = 4 private var m_forceDebugLogShow:Boolean;// = false protected var m_rotationSearchingCap:Number;// = 6 protected var m_range:Number; private var m_debugTime:Number; public function RocketProjectile(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:IEnemy){ m_x = _arg1; m_y = _arg2; m_rotation = _arg3; m_level = _arg4; m_target = _arg5; m_state = m_HOMING; log(((((((("startX: " + m_x) + " startY: ") + m_y) + " rotation: ") + m_rotation) + " level: ") + m_level)); if (m_level == 1){ m_container = new RocketProjectileL1(); m_range = m_rangeLevel1; m_searchTotal = m_searchTimeLevel1; } else { if (m_level == 2){ m_container = new RocketProjectileL2(); m_range = m_rangeLevel2; m_searchTotal = m_searchTimeLevel2; } else { if (m_level == 3){ m_container = new RocketProjectileL3(); m_range = m_rangeLevel3; m_searchTotal = m_searchTimeLevel3; }; }; }; addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, enemyLostHandler, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyLostHandler, false, 0, true); m_debugTime = new Date().time; log(">>constructor complete. we dont do a physics call here"); } public function doRender():void{ m_container.rotation = m_rotation; this.x = m_x; this.y = m_y; } override public function destroy():void{ if (this.parent != null){ removeChild(m_container); } else { trace("ERROR: ROCKET PROJECTILE parent null already"); m_forceDebugLogShow = true; }; if (m_forceDebugLogShow){ printLog(); }; GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, enemyLostHandler); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, enemyLostHandler); super.destroy(); } public function getPosition():Object{ var _local1:Object = {}; _local1.x = m_x; _local1.y = m_y; _local1.rotation = m_rotation; return (_local1); } public function doPhysics():void{ var _local1:Boolean; log(("physics tick: " + m_physicsTick)); m_physicsTick++; if (m_state == m_HOMING){ doAttackMode(); } else { if (m_state == m_SEARCHING){ _local1 = doSearchMode(); if (_local1){ doAttackMode(); } else { doWaitMode(); }; }; }; } private function log(_arg1:String):void{ m_debugLog = (m_debugLog + ("\n" + _arg1)); } private function getAngleDifference(_arg1:Number, _arg2:Number, _arg3:Number):Number{ var _local4:Number = ((_arg3 * Math.PI) / 180); var _local5:Number = (Math.PI * 2); _local4 = (_local4 % _local5); var _local6:Number = ((Math.PI / 2) + Math.atan2((_arg2 - m_y), (_arg1 - m_x))); if (_local6 < 0){ _local6 = (_local6 + _local5); }; var _local7:Number = (_local6 - _local4); if (_local7 > Math.PI){ _local7 = (_local7 - _local5); } else { if (_local7 < -(Math.PI)){ _local7 = (_local7 + _local5); }; }; return (_local7); } private function rangeCheck(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Boolean{ if (!(((((((_arg3 > (_arg1 - m_range))) && ((_arg3 < (_arg1 + m_range))))) && ((_arg4 > (_arg2 - m_range))))) && ((_arg4 < (_arg2 + m_range))))){ return (false); }; var _local6:Number = (((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2))); var _local7:Number = (_arg5 * _arg5); if (_local6 > _local7){ return (false); }; var _local8:Number = Math.sqrt(_local6); return (true); } public function getLevel():int{ return (m_level); } private function printLog():void{ var _local1:int = (new Date().time - m_debugTime); trace((((">>>>>RocketProjectile log >> we were on screen for: " + _local1) + "ms, and physics ticks: ") + m_physicsTick)); trace((("Log file\n>>>>>>" + m_debugLog) + "\n>>>>>>>")); } protected function doSearchMode():Boolean{ var _local3:IEnemy; var _local5:IEnemy; var _local6:Boolean; var _local7:Object; var _local8:Number; var _local9:Number; var _local10:Boolean; var _local1:Array = EnemyData.instance.enemyArray; var _local2:Boolean; var _local4:int; while (_local4 < _local1.length) { _local5 = IEnemy(_local1[_local4]); _local6 = _local5.isTargetable(); if (_local6){ _local7 = _local5.getPosition(); _local8 = _local7.x; _local9 = _local7.y; _local10 = rangeCheck(m_x, m_y, _local8, _local9, m_range); if (_local10){ _local2 = true; _local3 = _local5; break; }; }; _local4++; }; if (_local2){ m_target = _local3; m_state = m_HOMING; return (true); }; return (false); } private function enemyLostHandler(_arg1:EnemyEvent):void{ if (_arg1.enemyObject == m_target){ m_state = m_SEARCHING; m_searchCountdown = m_searchTotal; }; } protected function doAttackMode():void{ var _local5:Number; var _local1:Object = m_target.getPosition(); var _local2:int = _local1.x; var _local3:int = _local1.y; var _local4:Number = ((getAngleDifference(_local2, _local3, m_rotation) * 180) / Math.PI); if ((((_local4 > 0)) && ((_local4 > m_rotationHomingCap)))){ _local4 = m_rotationHomingCap; } else { if ((((_local4 < 0)) && ((_local4 < -(m_rotationHomingCap))))){ _local4 = -(m_rotationHomingCap); }; }; m_rotation = (m_rotation + _local4); if ((((((((m_x <= (_local2 + m_speedHoming))) && ((m_x >= (_local2 - m_speedHoming))))) && ((m_y <= (_local3 + m_speedHoming))))) && ((m_y >= (_local3 - m_speedHoming))))){ log(((((((((("Detected hit target. m_x: " + m_x) + " targetX: ") + _local2) + " speed: ") + m_speedHoming) + " m_y: ") + m_y) + " targetY: ") + _local3)); m_flaggedForDestroy = true; if (m_physicsTick <= 1){ log((("This hit was detected in physics ticks: " + m_physicsTick) + ", hence forced debug log show")); }; } else { _local5 = (m_rotation * (Math.PI / 180)); m_xMove = (m_speedHoming * Math.sin(_local5)); m_yMove = (m_speedHoming * Math.cos(_local5)); m_x = (m_x + m_xMove); m_y = (m_y - m_yMove); }; if (m_flaggedForDestroy){ log(("Flagged for destroy. physics ticks: " + m_physicsTick)); if (m_physicsTick > 2){ log("Physics ticks sufficient, dispatching destroy"); m_container.alpha = 0.1; GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.ROCKET_DETONATE, null, null, this, m_level)); }; }; } protected function doWaitMode():void{ m_rotation = (m_rotation + m_rotationSearchingCap); var _local1:Number = (m_rotation * (Math.PI / 180)); m_xMove = (m_speedSearching * Math.sin(_local1)); m_yMove = (m_speedSearching * Math.cos(_local1)); m_x = (m_x + m_xMove); m_y = (m_y - m_yMove); m_searchCountdown--; if (m_searchCountdown <= 0){ GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.ROCKET_DETONATE, null, null, this, m_level)); }; } } }//package game.weapons
Section 349
//SlowdownProjectile (game.weapons.SlowdownProjectile) package game.weapons { import flash.display.*; import game.events.*; import game.interfaces.*; import org.casalib.display.*; import game.*; import assets.weapons.*; public class SlowdownProjectile extends CasaSprite implements IWeapon { protected var m_physicsTick:int;// = 0 private var m_debugLog:String;// = "" private var m_forceDebugLogShow:Boolean;// = false protected var m_rotation:Number; protected var m_targetX:Number; protected var m_targetY:Number; protected var m_flaggedForDestroy:Boolean;// = false protected var m_x:Number; protected var m_y:Number; private var m_debugTime:Number; protected var m_container:MovieClip; protected var m_speed:Number;// = 5 protected var m_level:int; public function SlowdownProjectile(_arg1:int, _arg2:int, _arg3:int, _arg4:int, _arg5:Number, _arg6:Number){ m_x = _arg1; m_y = _arg2; m_rotation = _arg3; m_level = _arg4; m_targetX = _arg5; m_targetY = _arg6; log(((((((((((("startX: " + m_x) + " startY: ") + m_y) + " targetX: ") + m_targetX) + " targetY: ") + m_targetY) + " rotation: ") + m_rotation) + " level: ") + m_level)); m_container = new SlowdownProjectile(); addChild(m_container); m_container.x = Map.tileHalfW; m_container.y = Map.tileHalfH; m_debugTime = new Date().time; doPhysics(); doRender(); log(">>completed first physics and render"); } private function log(_arg1:String):void{ m_debugLog = (m_debugLog + ("\n" + _arg1)); } public function doRender():void{ m_container.rotation = m_rotation; this.x = m_x; this.y = m_y; } override public function destroy():void{ if (this.parent != null){ removeChild(m_container); } else { trace("ERROR: SLOWDOWN PROJECTILE parent already null"); m_forceDebugLogShow = true; }; if (m_forceDebugLogShow){ printLog(); }; super.destroy(); } private function printLog():void{ var _local1:int = (new Date().time - m_debugTime); trace((((">>>>>SlowdownProjectile log >> we were on screen for: " + _local1) + "ms, and physics ticks: ") + m_physicsTick)); trace((("Log file\n>>>>>>" + m_debugLog) + "\n>>>>>>>")); } public function getPosition():Object{ var _local1:Object = {}; _local1.x = m_x; _local1.y = m_y; _local1.rotation = m_rotation; return (_local1); } public function getLevel():int{ return (m_level); } public function doPhysics():void{ var _local1:Number; var _local2:Number; var _local3:Number; log(("physics tick: " + m_physicsTick)); m_physicsTick++; if ((((((((m_x <= (m_targetX + m_speed))) && ((m_x >= (m_targetX - m_speed))))) && ((m_y <= (m_targetY + m_speed))))) && ((m_y >= (m_targetY - m_speed))))){ log(((((((((("Detected hit target. m_x: " + m_x) + " targetX: ") + m_targetX) + " speed: ") + m_speed) + " m_y: ") + m_y) + " targetY: ") + m_targetY)); m_flaggedForDestroy = true; if (m_physicsTick <= 1){ log((("This hit was detected in physics ticks: " + m_physicsTick) + ", hence forced debug log show")); }; } else { _local1 = (m_rotation * (Math.PI / 180)); _local2 = (m_speed * Math.sin(_local1)); _local3 = (m_speed * Math.cos(_local1)); m_x = (m_x + _local2); m_y = (m_y - _local3); }; if (m_flaggedForDestroy){ log(("Flagged for destroy. physics ticks: " + m_physicsTick)); if (m_physicsTick > 2){ log("Physics ticks sufficient, dispatching destroy"); m_container.alpha = 0.1; GameBroadcaster.dispatchEvent(new WeaponEvent(WeaponEvent.SLOWDOWN_DETONATE, null, null, this, m_level)); }; }; } } }//package game.weapons
Section 350
//WeaponController (game.weapons.WeaponController) package game.weapons { import com.markfennell.sound.*; import flash.display.*; import game.events.*; import flash.utils.*; import game.interfaces.*; import org.casalib.display.*; import game.enemies.*; import game.towers.*; import assets.weapons.*; import gs.*; public class WeaponController extends CasaSprite { private var m_drawEffectsLayer:BitmapData; public function WeaponController(_arg1:XML){ WeaponData.instance.emptyArray(); this.mouseChildren = false; this.mouseEnabled = false; initTables(_arg1); GameBroadcaster.addEventListener(WeaponEvent.BLASTER_FIRE, blasterFireHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.SLOWDOWN_FIRE, slowdownFireHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.SLOWDOWN_DETONATE, slowdownDetonationHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.ROCKET_FIRE, rocketFireHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.ROCKET_DETONATE, rocketDetonationHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.LASER_FIRE, laserFireHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.LASER_STOP, laserStopHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.LIGHTNING_FIRE, lightningFireHandler, false, 0, true); GameBroadcaster.addEventListener(WeaponEvent.LIGHTNING_STOP, lightningStopHandler, false, 0, true); trace("WC online"); } private function rocketFireHandler(_arg1:WeaponEvent):void{ var _local2:IEnemy = _arg1.enemyObject; var _local3:Number = _arg1.enemyObject.getPosition().x; var _local4:Number = _arg1.enemyObject.getPosition().y; var _local5:Number = _arg1.towerObject.getPosition().x; var _local6:Number = _arg1.towerObject.getPosition().y; var _local7:int = _arg1.towerLevel; var _local8:Number = _arg1.towerObject.getPosition().rotation; var _local9:RocketProjectile = new RocketProjectile(_local5, _local6, _local8, _local7, _local2); addChild(_local9); WeaponData.instance.weaponArray.push(_local9); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.weapons.RocketFire", 1, 1, false)); } public function doRender():void{ var _local1:Array = WeaponData.instance.weaponArray; var _local2:int; while (_local2 < _local1.length) { IWeapon(_local1[_local2]).doRender(); _local2++; }; } private function rocketDetonationHandler(_arg1:WeaponEvent):void{ var _local11:IEnemy; var _local12:Object; var _local13:Number; var _local14:Number; var _local15:Boolean; var _local16:IEnemy; var _local17:Number; var _local18:Number; var _local2:IWeapon = _arg1.weaponObject; var _local3:Number = _local2.getPosition().x; var _local4:Number = _local2.getPosition().y; var _local5:String = getLevelOfTower(_local2.getLevel()); WeaponData.instance.weaponArray.splice(WeaponData.instance.weaponArray.indexOf(_local2), 1); _local2.destroy(); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.weapons.RocketExplosion", 0.8, 1, false)); var _local6:Number = WeaponData.instance.rocketSplashRangeTable[_local5]; var _local7:Array = EnemyData.instance.enemyArray; var _local8:Array = []; var _local9:int; while (_local9 < _local7.length) { _local11 = IEnemy(_local7[_local9]); _local12 = _local11.getPosition(); _local13 = _local12.x; _local14 = _local12.y; _local15 = rangeCheck(_local3, _local4, _local13, _local14, _local6); if (_local15){ _local8.push(_local11); }; _local9++; }; var _local10:Number = WeaponData.instance.damageTable[TowerController.ROCKET][_local5]; _local9 = 0; while (_local9 < _local8.length) { _local16 = IEnemy(_local8[_local9]); _local17 = WeaponData.instance.multiplierTable[TowerController.ROCKET][EnemyController.getTypeOfEnemy(_local16)]; _local18 = (_local10 * _local17); _local16.doHurt(_local18); _local9++; }; } private function slowdownDetonationHandler(_arg1:WeaponEvent):void{ var _local4:Number; var _local5:String; var _local6:MovieClip; var _local13:IEnemy; var _local14:Object; var _local15:Number; var _local16:Number; var _local17:Boolean; var _local18:IEnemy; var _local19:Number; var _local20:Number; var _local2:IWeapon = _arg1.weaponObject; var _local3:Number = _local2.getPosition().x; _local4 = _local2.getPosition().y; _local5 = getLevelOfTower(_local2.getLevel()); WeaponData.instance.weaponArray.splice(WeaponData.instance.weaponArray.indexOf(_local2), 1); _local2.destroy(); _local6 = new SlowdownExplosion(); addChild(_local6); _local6.x = _local3; _local6.y = _local4; TweenMax.to(_local6, 1, {alpha:0, onComplete:killSlowdownExplosion, onCompleteParams:[_local6]}); var _local7:Number = WeaponData.instance.slowdownSplashRangeTable[_local5]; var _local8:Array = EnemyData.instance.enemyArray; var _local9:Array = []; var _local10:int; while (_local10 < _local8.length) { _local13 = IEnemy(_local8[_local10]); _local14 = _local13.getPosition(); _local15 = _local14.x; _local16 = _local14.y; _local17 = rangeCheck(_local3, _local4, _local15, _local16, _local7); if (_local17){ _local9.push(_local13); }; _local10++; }; var _local11:Number = WeaponData.instance.damageTable[TowerController.SLOWDOWN][_local5]; var _local12:Number = WeaponData.instance.slowdownDurationTable[_local5]; _local10 = 0; while (_local10 < _local9.length) { _local18 = IEnemy(_local9[_local10]); _local19 = WeaponData.instance.multiplierTable[TowerController.SLOWDOWN][EnemyController.getTypeOfEnemy(_local18)]; _local20 = (_local11 * _local19); _local18.doSlowdown(_local20, _local12); _local10++; }; } override public function destroy():void{ var _local1:Array = WeaponData.instance.weaponArray; var _local2:int; while (_local2 < _local1.length) { IWeapon(_local1[_local2]).destroy(); _local1[_local2] = null; _local2++; }; GameBroadcaster.removeEventListener(WeaponEvent.BLASTER_FIRE, blasterFireHandler); GameBroadcaster.removeEventListener(WeaponEvent.SLOWDOWN_FIRE, slowdownFireHandler); GameBroadcaster.removeEventListener(WeaponEvent.SLOWDOWN_DETONATE, slowdownDetonationHandler); GameBroadcaster.removeEventListener(WeaponEvent.ROCKET_FIRE, rocketFireHandler); GameBroadcaster.removeEventListener(WeaponEvent.ROCKET_DETONATE, rocketDetonationHandler); GameBroadcaster.removeEventListener(WeaponEvent.LASER_FIRE, laserFireHandler); GameBroadcaster.removeEventListener(WeaponEvent.LASER_STOP, laserStopHandler); GameBroadcaster.removeEventListener(WeaponEvent.LIGHTNING_FIRE, lightningFireHandler); GameBroadcaster.removeEventListener(WeaponEvent.LIGHTNING_STOP, lightningStopHandler); WeaponData.instance.emptyArray(); trace("WeaponController destroy"); super.destroy(); } private function getLevelOfTower(_arg1:int):String{ if (_arg1 > 3){ throw (new Error((("getLevelOfTower: " + _arg1) + " unknown!"))); }; var _local2:String = TowerController.getTowerLevelString(null, _arg1); return (_local2); } private function blasterFireHandler(_arg1:WeaponEvent):void{ var _local2:String = EnemyController.getTypeOfEnemy(_arg1.enemyObject); var _local3:String = getLevelOfTower(_arg1.towerLevel); var _local4:Number = WeaponData.instance.damageTable[TowerController.BLASTER][_local3]; var _local5:Number = WeaponData.instance.multiplierTable[TowerController.BLASTER][_local2]; var _local6:Number = (_local4 * _local5); IEnemy(_arg1.enemyObject).doHurt(_local6); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.weapons.BlasterFire", 0.4, 1, false)); } private function laserFireHandler(_arg1:WeaponEvent):void{ var _local2:String = EnemyController.getTypeOfEnemy(_arg1.enemyObject); var _local3:String = getLevelOfTower(_arg1.towerLevel); var _local4:LaserBeam = new LaserBeam(_arg1.enemyObject, _arg1.towerObject, _arg1.towerLevel, _arg1.spawnOffset.x, _arg1.spawnOffset.y); _arg1.spawnOffset.clipRef.addChild(_local4); WeaponData.instance.weaponArray.push(_local4); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.weapons.LaserFire", 0.4, 1, false)); } private function slowdownFireHandler(_arg1:WeaponEvent):void{ var _local2:Number = _arg1.enemyObject.getPosition().x; var _local3:Number = _arg1.enemyObject.getPosition().y; var _local4:Number = _arg1.towerObject.getPosition().x; var _local5:Number = _arg1.towerObject.getPosition().y; var _local6:int = _arg1.towerLevel; var _local7:Number = _arg1.towerObject.getPosition().rotation; var _local8:SlowdownProjectile = new SlowdownProjectile(_local4, _local5, _local7, _local6, _local2, _local3); addChild(_local8); WeaponData.instance.weaponArray.push(_local8); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.weapons.SlowdownFire", 0.5, 1, false)); } private function rangeCheck(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Boolean{ if (!(((((((_arg3 > (_arg1 - _arg5))) && ((_arg3 < (_arg1 + _arg5))))) && ((_arg4 > (_arg2 - _arg5))))) && ((_arg4 < (_arg2 + _arg5))))){ return (false); }; var _local6:Number = (((_arg3 - _arg1) * (_arg3 - _arg1)) + ((_arg4 - _arg2) * (_arg4 - _arg2))); var _local7:Number = (_arg5 * _arg5); if (_local6 > _local7){ return (false); }; var _local8:Number = Math.sqrt(_local6); return (true); } private function killSlowdownExplosion(_arg1):void{ removeChild(_arg1); _arg1 = null; } private function initTables(_arg1:XML):void{ var _local2:Dictionary = WeaponData.instance.damageTable; var _local3:Dictionary = WeaponData.instance.multiplierTable; _local2[TowerController.BLASTER] = new Dictionary(); _local2[TowerController.BLASTER][TowerController.LEVEL_1] = Number(_arg1.blaster.damage.@level1); _local2[TowerController.BLASTER][TowerController.LEVEL_2] = Number(_arg1.blaster.damage.@level2); _local2[TowerController.BLASTER][TowerController.LEVEL_3] = Number(_arg1.blaster.damage.@level3); _local3[TowerController.BLASTER] = new Dictionary(); _local3[TowerController.BLASTER][EnemyController.MOLEOID] = 1; _local3[TowerController.BLASTER][EnemyController.AIMSENTRY] = 1; _local3[TowerController.BLASTER][EnemyController.DOOMBOT] = 1; _local3[TowerController.BLASTER][EnemyController.JEEP] = 1; _local3[TowerController.BLASTER][EnemyController.HELICOPTER] = 1; _local3[TowerController.BLASTER][EnemyController.ATTACKAPC] = 1; _local3[TowerController.BLASTER][EnemyController.LIGHTTANK] = 1; _local3[TowerController.BLASTER][EnemyController.CRUISEMISSILE] = 1; _local3[TowerController.BLASTER][EnemyController.HEAVYTANK] = 1; _local3[TowerController.BLASTER][EnemyController.MOLEMAN] = 1; _local3[TowerController.BLASTER][EnemyController.MODOK] = 1; _local3[TowerController.BLASTER][EnemyController.DRDOOM] = 1; _local2[TowerController.SLOWDOWN] = new Dictionary(); _local2[TowerController.SLOWDOWN][TowerController.LEVEL_1] = Number(_arg1.slowdown.damage.@level1); _local2[TowerController.SLOWDOWN][TowerController.LEVEL_2] = Number(_arg1.slowdown.damage.@level2); _local2[TowerController.SLOWDOWN][TowerController.LEVEL_3] = Number(_arg1.slowdown.damage.@level3); _local3[TowerController.SLOWDOWN] = new Dictionary(); _local3[TowerController.SLOWDOWN][EnemyController.MOLEOID] = 1; _local3[TowerController.SLOWDOWN][EnemyController.AIMSENTRY] = 1; _local3[TowerController.SLOWDOWN][EnemyController.DOOMBOT] = 1; _local3[TowerController.SLOWDOWN][EnemyController.JEEP] = 1; _local3[TowerController.SLOWDOWN][EnemyController.HELICOPTER] = 1; _local3[TowerController.SLOWDOWN][EnemyController.ATTACKAPC] = 1; _local3[TowerController.SLOWDOWN][EnemyController.LIGHTTANK] = 1; _local3[TowerController.SLOWDOWN][EnemyController.CRUISEMISSILE] = 1; _local3[TowerController.SLOWDOWN][EnemyController.HEAVYTANK] = 1; _local3[TowerController.SLOWDOWN][EnemyController.MOLEMAN] = 1; _local3[TowerController.SLOWDOWN][EnemyController.MODOK] = 1; _local3[TowerController.SLOWDOWN][EnemyController.DRDOOM] = 1; var _local4:Dictionary = WeaponData.instance.slowdownDurationTable; _local4[TowerController.LEVEL_1] = Number(_arg1.slowdown.duration.@level1); _local4[TowerController.LEVEL_2] = Number(_arg1.slowdown.duration.@level2); _local4[TowerController.LEVEL_3] = Number(_arg1.slowdown.duration.@level3); var _local5:Dictionary = WeaponData.instance.slowdownSplashRangeTable; _local5[TowerController.LEVEL_1] = Number(_arg1.slowdown.splashdamage.@level1); _local5[TowerController.LEVEL_2] = Number(_arg1.slowdown.splashdamage.@level2); _local5[TowerController.LEVEL_3] = Number(_arg1.slowdown.splashdamage.@level3); _local2[TowerController.ROCKET] = new Dictionary(); _local2[TowerController.ROCKET][TowerController.LEVEL_1] = Number(_arg1.rocket.damage.@level1); _local2[TowerController.ROCKET][TowerController.LEVEL_2] = Number(_arg1.rocket.damage.@level2); _local2[TowerController.ROCKET][TowerController.LEVEL_3] = Number(_arg1.rocket.damage.@level3); _local3[TowerController.ROCKET] = new Dictionary(); _local3[TowerController.ROCKET][EnemyController.MOLEOID] = 1; _local3[TowerController.ROCKET][EnemyController.AIMSENTRY] = 1; _local3[TowerController.ROCKET][EnemyController.DOOMBOT] = 1; _local3[TowerController.ROCKET][EnemyController.JEEP] = 1; _local3[TowerController.ROCKET][EnemyController.HELICOPTER] = 1; _local3[TowerController.ROCKET][EnemyController.ATTACKAPC] = 1; _local3[TowerController.ROCKET][EnemyController.LIGHTTANK] = 1; _local3[TowerController.ROCKET][EnemyController.CRUISEMISSILE] = 1; _local3[TowerController.ROCKET][EnemyController.HEAVYTANK] = 1; _local3[TowerController.ROCKET][EnemyController.MOLEMAN] = 1; _local3[TowerController.ROCKET][EnemyController.MODOK] = 1; _local3[TowerController.ROCKET][EnemyController.DRDOOM] = 1; var _local6:Dictionary = WeaponData.instance.rocketSplashRangeTable; _local6[TowerController.LEVEL_1] = Number(_arg1.rocket.splashdamage.@level1); _local6[TowerController.LEVEL_2] = Number(_arg1.rocket.splashdamage.@level2); _local6[TowerController.LEVEL_3] = Number(_arg1.rocket.splashdamage.@level3); _local2[TowerController.LASER] = new Dictionary(); _local2[TowerController.LASER][TowerController.LEVEL_1] = Number(_arg1.laser.damage.@level1); _local2[TowerController.LASER][TowerController.LEVEL_2] = Number(_arg1.laser.damage.@level2); _local2[TowerController.LASER][TowerController.LEVEL_3] = Number(_arg1.laser.damage.@level3); _local3[TowerController.LASER] = new Dictionary(); _local3[TowerController.LASER][EnemyController.MOLEOID] = 1; _local3[TowerController.LASER][EnemyController.AIMSENTRY] = 1; _local3[TowerController.LASER][EnemyController.DOOMBOT] = 1; _local3[TowerController.LASER][EnemyController.JEEP] = 1; _local3[TowerController.LASER][EnemyController.HELICOPTER] = 1; _local3[TowerController.LASER][EnemyController.ATTACKAPC] = 1; _local3[TowerController.LASER][EnemyController.LIGHTTANK] = 1; _local3[TowerController.LASER][EnemyController.CRUISEMISSILE] = 1; _local3[TowerController.LASER][EnemyController.HEAVYTANK] = 1; _local3[TowerController.LASER][EnemyController.MOLEMAN] = 1; _local3[TowerController.LASER][EnemyController.MODOK] = 1; _local3[TowerController.LASER][EnemyController.DRDOOM] = 1; _local2[TowerController.LIGHTNING] = new Dictionary(); _local2[TowerController.LIGHTNING][TowerController.LEVEL_1] = Number(_arg1.lightning.damage.@level1); _local2[TowerController.LIGHTNING][TowerController.LEVEL_2] = Number(_arg1.lightning.damage.@level2); _local2[TowerController.LIGHTNING][TowerController.LEVEL_3] = Number(_arg1.lightning.damage.@level3); _local3[TowerController.LIGHTNING] = new Dictionary(); _local3[TowerController.LIGHTNING][EnemyController.MOLEOID] = 1; _local3[TowerController.LIGHTNING][EnemyController.AIMSENTRY] = 1; _local3[TowerController.LIGHTNING][EnemyController.DOOMBOT] = 1; _local3[TowerController.LIGHTNING][EnemyController.JEEP] = 1; _local3[TowerController.LIGHTNING][EnemyController.HELICOPTER] = 1; _local3[TowerController.LIGHTNING][EnemyController.ATTACKAPC] = 1; _local3[TowerController.LIGHTNING][EnemyController.LIGHTTANK] = 1; _local3[TowerController.LIGHTNING][EnemyController.CRUISEMISSILE] = 1; _local3[TowerController.LIGHTNING][EnemyController.HEAVYTANK] = 1; _local3[TowerController.LIGHTNING][EnemyController.MOLEMAN] = 1; _local3[TowerController.LIGHTNING][EnemyController.MODOK] = 1; _local3[TowerController.LIGHTNING][EnemyController.DRDOOM] = 1; trace(((((("Blaster damage: " + _local2[TowerController.BLASTER][TowerController.LEVEL_1]) + ",") + _local2[TowerController.BLASTER][TowerController.LEVEL_2]) + ",") + _local2[TowerController.BLASTER][TowerController.LEVEL_3])); trace(((((((((((((((((("Slowdown damage: " + _local2[TowerController.SLOWDOWN][TowerController.LEVEL_1]) + ",") + _local2[TowerController.SLOWDOWN][TowerController.LEVEL_2]) + ",") + _local2[TowerController.SLOWDOWN][TowerController.LEVEL_3]) + ", splash: ") + _local5[TowerController.LEVEL_1]) + ",") + _local5[TowerController.LEVEL_2]) + ",") + _local5[TowerController.LEVEL_3]) + ", duration: ") + _local4[TowerController.LEVEL_1]) + ",") + _local4[TowerController.LEVEL_2]) + ", ") + _local4[TowerController.LEVEL_3])); trace(((((((((((("Rocket damage: " + _local2[TowerController.ROCKET][TowerController.LEVEL_1]) + ",") + _local2[TowerController.ROCKET][TowerController.LEVEL_2]) + ",") + _local2[TowerController.ROCKET][TowerController.LEVEL_3]) + ", splash: ") + _local6[TowerController.LEVEL_1]) + ",") + _local6[TowerController.LEVEL_2]) + ",") + _local6[TowerController.LEVEL_3])); trace(((((("Laser damage: " + _local2[TowerController.LASER][TowerController.LEVEL_1]) + ",") + _local2[TowerController.LASER][TowerController.LEVEL_2]) + ",") + _local2[TowerController.LASER][TowerController.LEVEL_3])); trace(((((("Lightning damage: " + _local2[TowerController.LIGHTNING][TowerController.LEVEL_1]) + ",") + _local2[TowerController.LIGHTNING][TowerController.LEVEL_2]) + ",") + _local2[TowerController.LIGHTNING][TowerController.LEVEL_3])); } public function setEffectsLayer(_arg1:BitmapData):void{ m_drawEffectsLayer = _arg1; } private function lightningFireHandler(_arg1:WeaponEvent):void{ var _local2:String = EnemyController.getTypeOfEnemy(_arg1.enemyObject); var _local3:String = getLevelOfTower(_arg1.towerLevel); var _local4:LightningBeam = new LightningBeam(_arg1.enemyObject, _arg1.towerObject, _arg1.towerLevel, m_drawEffectsLayer); addChild(_local4); WeaponData.instance.weaponArray.push(_local4); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.weapons.LightningFire", 0.5, 1, false)); } public function doPhysics():void{ var _local1:Array = WeaponData.instance.weaponArray; var _local2:int; while (_local2 < _local1.length) { IWeapon(_local1[_local2]).doPhysics(); _local2++; }; } private function laserStopHandler(_arg1:WeaponEvent):void{ var _local3:String; var _local4:String; var _local5:Number; var _local6:Number; var _local7:Number; var _local2:IWeapon = _arg1.weaponObject; WeaponData.instance.weaponArray.splice(WeaponData.instance.weaponArray.indexOf(_local2), 1); _local2.destroy(); if (_arg1.enemyObject != null){ _local3 = EnemyController.getTypeOfEnemy(_arg1.enemyObject); _local4 = getLevelOfTower(_arg1.towerLevel); _local5 = WeaponData.instance.damageTable[TowerController.LASER][_local4]; _local6 = WeaponData.instance.multiplierTable[TowerController.LASER][_local3]; _local7 = (_local5 * _local6); IEnemy(_arg1.enemyObject).doHurt(_local7); }; } private function lightningStopHandler(_arg1:WeaponEvent):void{ var _local3:String; var _local4:String; var _local5:Number; var _local6:Number; var _local7:Number; var _local2:IWeapon = _arg1.weaponObject; WeaponData.instance.weaponArray.splice(WeaponData.instance.weaponArray.indexOf(_local2), 1); _local2.destroy(); if (_arg1.enemyObject != null){ _local3 = EnemyController.getTypeOfEnemy(_arg1.enemyObject); _local4 = getLevelOfTower(_arg1.towerLevel); _local5 = WeaponData.instance.damageTable[TowerController.LIGHTNING][_local4]; _local6 = WeaponData.instance.multiplierTable[TowerController.LIGHTNING][_local3]; _local7 = (_local5 * _local6); IEnemy(_arg1.enemyObject).doHurt(_local7); }; } } }//package game.weapons
Section 351
//WeaponData (game.weapons.WeaponData) package game.weapons { import flash.events.*; import flash.utils.*; public class WeaponData extends EventDispatcher { private var m_slowdownDurationTable:Dictionary; private var m_weaponArray:Array; private var m_slowdownSplashRangeTable:Dictionary; private var m_damageTable:Dictionary; private var m_multiplierTable:Dictionary; private var m_rocketSplashRangeTable:Dictionary; private static var m_instance:WeaponData = new (WeaponData); ; public function WeaponData(){ if (m_instance){ throw (new Error("Error: WeaponData is a Singleton, and can only be accessed through WeaponData.instance")); }; m_instance = this; m_weaponArray = []; m_damageTable = new Dictionary(); m_multiplierTable = new Dictionary(); m_slowdownDurationTable = new Dictionary(); m_slowdownSplashRangeTable = new Dictionary(); m_rocketSplashRangeTable = new Dictionary(); } public function get slowdownSplashRangeTable():Dictionary{ return (m_slowdownSplashRangeTable); } public function get weaponArray():Array{ return (m_weaponArray); } public function emptyArray():void{ m_weaponArray = []; } public function get rocketSplashRangeTable():Dictionary{ return (m_rocketSplashRangeTable); } public function get multiplierTable():Dictionary{ return (m_multiplierTable); } public function get slowdownDurationTable():Dictionary{ return (m_slowdownDurationTable); } public function get damageTable():Dictionary{ return (m_damageTable); } public static function get instance():WeaponData{ return (m_instance); } } }//package game.weapons
Section 352
//GameController (game.GameController) package game { import flash.events.*; import console.*; import com.markfennell.sound.*; import flash.display.*; import game.achievements.*; import game.events.*; import flash.utils.*; import org.casalib.display.*; import game.enemies.*; import game.waves.*; import game.finance.*; import game.towers.*; import game.hud.*; import game.weapons.*; import interfaces.*; import pages.*; import com.markfennell.display.*; import game.effects.*; import game.score.*; import assets.*; import game.map.*; import assets.ui.*; import gs.easing.*; import gs.*; public class GameController extends BasePage implements IGameController { public const GAME_WON:String = "gameWon"; public const GAME_PAUSED:String = "gamePaused"; public const GAME_PLAYING:String = "gamePlaying"; public const GAME_CLOSING_GAME_OVER:String = "gameClosingGameOver"; public const GAME_LOST:String = "gameLost"; public const GAME_WAITING:String = "gameWaiting"; public const GAME_CLOSING_MAIN_MENU:String = "gameClosingMainMenu"; private var m_HUD:HUDController; private var m_waveController:WaveController; private var m_isPaused:Boolean;// = false private var m_weaponController:WeaponController; private var m_airEnemies:CasaSprite; private var m_mapUnderbody:MovieClip; private var m_mapContainer:CasaSprite; private var gameWaitingTimer:Timer; private var m_mapStatic:CasaSprite; private var m_gameOverTimer:int; private var m_timeKeeper:TimeKeeper; private var m_gameMask:MovieClip; private var m_towerController:TowerController; private var m_totalLives:int; private var m_lives:int; private var m_debugHUD:MovieClip; private var m_state:String; private var m_financeController:FinanceController; private var m_mapFortress:CasaSprite; private var m_mapAnimated:MovieClip; private var m_landEnemies:CasaSprite; private var m_effectsController:EffectsController; private var m_enemyController:EnemyController; private var m_HUDRangeDisplay:HUDRangeDisplay; private var m_scoreController:ScoreController; public function GameController(){ var _local1 = -17; var _local2 = 33; var _local3:XML = EmbeddedData.getData().levels.level[0]; Map.initMap(_local3); m_waveController = new WaveController(); m_waveController.initWaves(_local3.waves[0]); m_financeController = new FinanceController(); m_financeController.initFinance(EmbeddedData.getData().finance[0]); m_scoreController = new ScoreController(); m_mapUnderbody = new Level01Background(); addChild(m_mapUnderbody); m_mapContainer = new CasaSprite(); addChild(m_mapContainer); m_mapContainer.x = _local1; m_mapContainer.y = _local2; m_gameMask = new GameMask(); m_gameMask.x = 26; m_gameMask.y = 82; m_mapStatic = new CasaSprite(); var _local4:MovieClip = new Level01(); m_mapStatic.addChild(_local4); m_mapContainer.addChild(m_mapStatic); m_mapFortress = new FortressController(); m_mapContainer.addChild(m_mapFortress); m_mapFortress.x = 616; m_mapFortress.y = 224; m_landEnemies = new CasaSprite(); m_mapContainer.addChild(m_landEnemies); m_towerController = new TowerController(EmbeddedData.getData().towers[0]); m_mapContainer.addChild(m_towerController); m_airEnemies = new CasaSprite(); m_mapContainer.addChild(m_airEnemies); m_enemyController = new EnemyController(m_landEnemies, m_airEnemies, EmbeddedData.getData().enemies[0]); m_mapContainer.addChild(m_enemyController); m_weaponController = new WeaponController(EmbeddedData.getData().weapons[0]); m_mapContainer.addChild(m_weaponController); m_effectsController = new EffectsController(m_mapStatic); m_mapContainer.addChild(m_effectsController); m_weaponController.setEffectsLayer(m_effectsController.getDrawEffectsLayer()); m_mapAnimated = new Level01_animated(); m_mapContainer.addChild(m_mapAnimated); m_mapAnimated.mouseEnabled = false; m_mapAnimated.mouseChildren = false; m_HUDRangeDisplay = new HUDRangeDisplay(); m_mapContainer.addChild(m_HUDRangeDisplay); m_ui = new MovieClip(); addChild(m_ui); m_ui.mouseEnabled = false; m_ui.x = 11; m_ui.y = 61; var _local5 = 24; var _local6 = 400; m_HUD = new HUDController(m_mapStatic, (_local1 - _local5), (_local2 - _local6), EmbeddedData.getData().bosspopup[0]); addChild(m_HUD); m_HUD.x = _local5; m_HUD.y = _local6; m_waveController.calculateWaveTimes(); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_KILLED, onEnemyKilled, false, 0, true); GameBroadcaster.addEventListener(EnemyEvent.ENEMY_OBJECTIVE, onEnemyObjective, false, 0, true); GameBroadcaster.addEventListener(GameEvent.START_GAME, startGameHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GO_TO_MAIN_MENU, gotoMainMenuHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.GO_TO_GAME_OVER, gotoGameOverHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.PAUSE_GAMEPLAY, pauseGameplayHandler, false, 0, true); GameBroadcaster.addEventListener(GameEvent.RESUME_GAMEPLAY, resumeGameplayHandler, false, 0, true); m_state = GAME_WAITING; GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.CHOOSE_DIFFICULTY)); } override public function destroy():void{ trace("GameController DESTROY"); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_KILLED, onEnemyKilled); GameBroadcaster.removeEventListener(EnemyEvent.ENEMY_OBJECTIVE, onEnemyObjective); GameBroadcaster.removeEventListener(GameEvent.START_GAME, startGameHandler); GameBroadcaster.removeEventListener(GameEvent.GO_TO_MAIN_MENU, gotoMainMenuHandler); GameBroadcaster.removeEventListener(GameEvent.GO_TO_GAME_OVER, gotoGameOverHandler); GameBroadcaster.removeEventListener(GameEvent.PAUSE_GAMEPLAY, pauseGameplayHandler); GameBroadcaster.removeEventListener(GameEvent.RESUME_GAMEPLAY, resumeGameplayHandler); this.removeEventListener(Event.ENTER_FRAME, onEnterFrameHandler); m_waveController.destroy(); m_financeController.destroy(); m_scoreController.destroy(); m_enemyController.destroy(); m_landEnemies.destroy(); m_airEnemies.destroy(); m_towerController.destroy(); m_weaponController.destroy(); m_effectsController.destroy(); m_HUDRangeDisplay.destroy(); m_HUD.destroy(); m_mapStatic.destroy(); m_mapFortress.destroy(); m_timeKeeper = null; m_mapContainer.destroy(); super.destroy(); } private function gotoMainMenuHandler(_arg1:GameEvent):void{ var _local4:String; m_timeKeeper.stop(); var _local2:int = (m_timeKeeper.getMili() / 1000); var _local3:int = (m_waveController.currentWaveID() + 1); if (_local3 < 10){ _local4 = ("level0" + _local3); } else { _local4 = ("level" + _local3); }; Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, _local4, "quit"); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "game", "quit", _local2); m_state = GAME_CLOSING_MAIN_MENU; animateClosingPlaceholder(); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_COMPLETE_EVALUATE_ACHIEVEMENTS, 0, 0, 0, m_scoreController.mdx(), FinanceData.instance.playerEarnings)); AchievementController.instance.endWatchingGame(); } private function gotoGameOverHandler(_arg1:GameEvent):void{ m_state = GAME_CLOSING_GAME_OVER; animateClosingPlaceholder(); } private function doProcessGameResults():void{ var _local4:String; m_timeKeeper.stop(); var _local1:int = ((m_timeKeeper.getMili() * m_gameMask.x) % m_gameMask.y); m_financeController.freeze(); var _local2:int = (m_waveController.currentWaveID() + 1); var _local3:int = (m_timeKeeper.getMili() / 1000); if (_local2 < 10){ _local4 = ("level0" + _local2); } else { _local4 = ("level" + _local2); }; if (m_state == GAME_LOST){ Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, _local4, "fail"); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "game", "fail", _local3); if (_local2 == 30){ _local2 = 29; }; GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_LOST_DISPLAY)); } else { if (m_state == GAME_WON){ Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "game", "complete", _local3); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_WON_DISPLAY)); }; }; GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_COMPLETE_EVALUATE_ACHIEVEMENTS, 0, 0, 0, m_scoreController.mdx(), FinanceData.instance.playerEarnings)); AchievementController.instance.endWatchingGame(); } override public function doPause():void{ m_state = GAME_PAUSED; m_timeKeeper.stop(); } override public function doResume():void{ m_state = GAME_PLAYING; m_timeKeeper.start(); } private function onEnemyKilled(_arg1:EnemyEvent):void{ if (m_waveController.checkAllWavesComplete()){ if (EnemyData.instance.enemyArray.length == 0){ trace("GC game won"); m_state = GAME_WON; m_gameOverTimer = 60; TweenMax.to(m_mapContainer, 2, {alpha:0.3}); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_WON_WAIT)); }; }; } private function startGameHandler(_arg1:GameEvent):void{ var _local2:String; AchievementController.instance.beginWatchingGame(); trace(("Game start, difficulty is: " + _arg1.difficulty)); if (_arg1.difficulty == 0){ m_totalLives = 40; m_waveController.setWaveDifficulty(1); _local2 = "normal"; } else { m_totalLives = 20; m_waveController.setWaveDifficulty(1.1); _local2 = "epic"; }; m_lives = m_totalLives; GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.LIVES_SET, m_lives, m_totalLives, _arg1.difficulty)); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "difficulty", _local2); m_state = GAME_PLAYING; m_waveController.startWaves(); m_timeKeeper = new TimeKeeper(); m_timeKeeper.start(); this.addEventListener(Event.ENTER_FRAME, onEnterFrameHandler, false, 0, true); GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.STARTED, {topPanel:m_HUD.marvelTopPanel, bottomPanel:m_HUD.marvelBottomPanel})); GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.PAUSE_ENABLED)); GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.TRANSITION_COMPLETE)); } private function onEnemyObjective(_arg1:EnemyEvent):void{ var _local2:String = EnemyController.getTypeOfEnemy(_arg1.enemyObject); if (_local2 == EnemyController.DRDOOM){ m_lives = (m_lives - 40); } else { if (_local2 == EnemyController.MODOK){ m_lives = (m_lives - 3); } else { if (_local2 == EnemyController.MOLEMAN){ m_lives = (m_lives - 2); } else { m_lives--; }; }; }; GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.LIFE_LOST, m_lives, m_totalLives)); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.explosions.EnemyObjective", 1, 1, false, 1)); var _local3:Boolean; var _local4:Boolean; if (m_lives <= 0){ _local3 = true; }; if (m_waveController.checkAllWavesComplete()){ if (EnemyData.instance.enemyArray.length == 0){ _local4 = true; }; }; if (((_local4) && (!(_local3)))){ trace("GC game over and won, at the time of enemy objective"); m_state = GAME_WON; m_gameOverTimer = 60; m_mapContainer.blendMode = BlendMode.LAYER; TweenMax.to(m_mapContainer, 2, {alpha:0.3}); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_WON_WAIT)); GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.PAUSE_DISABLED)); } else { if (_local3){ trace("GC game over and lost, at the time of enemy objective"); m_state = GAME_LOST; m_gameOverTimer = 60; m_mapContainer.blendMode = BlendMode.LAYER; TweenMax.to(m_mapContainer, 2, {colorMatrixFilter:{colorize:0xCCCCCC, amount:1}}); GameBroadcaster.dispatchEvent(new GameEvent(GameEvent.GAME_LOST_WAIT)); GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.PAUSE_DISABLED)); }; }; } private function resumeGameplayHandler(_arg1:GameEvent):void{ doResume(); } private function animateClosingPlaceholder():void{ if (m_state == GAME_CLOSING_MAIN_MENU){ GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.DISPLAY_INTRO)); } else { if (m_state == GAME_CLOSING_GAME_OVER){ GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.DISPLAY_INTRO)); }; }; } private function pauseGameplayHandler(_arg1:GameEvent):void{ doPause(); } private function onEnterFrameHandler(_arg1:Event):void{ if (m_state == GAME_PLAYING){ m_waveController.doPhysics(); m_enemyController.doPhysics(); m_enemyController.doRender(); m_towerController.doPhysics(); m_towerController.doRender(); m_effectsController.doPhysics(); m_effectsController.doRender(); m_weaponController.doPhysics(); m_weaponController.doRender(); m_HUD.doPhysics(); m_HUD.doRender(); } else { if ((((m_state == GAME_LOST)) || ((m_state == GAME_WON)))){ m_gameOverTimer--; if (m_gameOverTimer == 0){ doProcessGameResults(); }; m_HUD.doPhysics(); m_HUD.doRender(); }; }; } } }//package game
Section 353
//Map (game.Map) package game { public class Map { public static const GOAL:int = 1; public static const SPAWN:int = 3; public static const PATH:int = 2; public static const BUILDABLE:int = 4; public static const BACKGROUND:int = 0; public static var tileH:int; public static var tileHalfH:int; public static var tileW:int; private static var m_mapArray:Array; private static var m_routeArray:Array; public static var tileHalfW:int; public static function getRoutes():Array{ return (m_routeArray); } public static function getMap():Array{ return (m_mapArray); } public static function initMap(_arg1:XML):void{ var _local5:int; var _local6:int; var _local7:Object; var _local2:XML = _arg1; tileW = int(_local2.cell.@width); tileH = int(_local2.cell.@height); tileHalfW = (tileW / 2); tileHalfH = (tileH / 2); m_mapArray = []; var _local3:int; while (_local3 < _local2.map.y.length()) { m_mapArray[_local3] = []; _local5 = 0; while (_local5 < _local2.map.y[_local3].x.length()) { m_mapArray[_local3][_local5] = int(_local2.map.y[_local3].x[_local5]); _local5++; }; _local3++; }; m_routeArray = []; var _local4:int; while (_local4 < _local2.routes.route.length()) { m_routeArray[_local4] = []; _local6 = 0; while (_local6 < _local2.routes.route[_local4].cell.length()) { _local7 = {}; _local7.x = int(_local2.routes.route[_local4].cell[_local6].x); _local7.y = int(_local2.routes.route[_local4].cell[_local6].y); m_routeArray[_local4][_local6] = _local7; _local6++; }; _local4++; }; } } }//package game
Section 354
//Back (gs.easing.Back) package gs.easing { public class Back { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / _arg4); return (((((_arg3 * _arg1) * _arg1) * (((_arg5 + 1) * _arg1) - _arg5)) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number=1.70158):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * ((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) - _arg5))) + _arg2)); }; _arg1 = (_arg1 - 2); _arg5 = (_arg5 * 1.525); return ((((_arg3 / 2) * (((_arg1 * _arg1) * (((_arg5 + 1) * _arg1) + _arg5)) + 2)) + _arg2)); } } }//package gs.easing
Section 355
//Strong (gs.easing.Strong) package gs.easing { public class Strong { public static function easeOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = ((_arg1 / _arg4) - 1); return (((_arg3 * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 1)) + _arg2)); } public static function easeIn(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / _arg4); return (((((((_arg3 * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); } public static function easeInOut(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ _arg1 = (_arg1 / (_arg4 / 2)); if (_arg1 < 1){ return ((((((((_arg3 / 2) * _arg1) * _arg1) * _arg1) * _arg1) * _arg1) + _arg2)); }; _arg1 = (_arg1 - 2); return ((((_arg3 / 2) * (((((_arg1 * _arg1) * _arg1) * _arg1) * _arg1) + 2)) + _arg2)); } } }//package gs.easing
Section 356
//TweenEvent (gs.events.TweenEvent) package gs.events { import flash.events.*; public class TweenEvent extends Event { public var info:Object; public static const UPDATE:String = "update"; public static const START:String = "start"; public static const version:Number = 0.9; public static const COMPLETE:String = "complete"; public function TweenEvent(_arg1:String, _arg2:Object=null, _arg3:Boolean=false, _arg4:Boolean=false){ super(_arg1, _arg3, _arg4); this.info = _arg2; } override public function clone():Event{ return (new TweenEvent(this.type, this.info, this.bubbles, this.cancelable)); } } }//package gs.events
Section 357
//AutoAlphaPlugin (gs.plugins.AutoAlphaPlugin) package gs.plugins { import flash.display.*; import gs.*; public class AutoAlphaPlugin extends TweenPlugin { protected var _tweenVisible:Boolean; protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; 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 killProps(_arg1:Object):void{ super.killProps(_arg1); _tweenVisible = !(Boolean(("visible" in _arg1))); } 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 set changeFactor(_arg1:Number):void{ updateTweens(_arg1); if (((!((_target.visible == true))) && (_tweenVisible))){ _target.visible = true; }; } } }//package gs.plugins
Section 358
//BevelFilterPlugin (gs.plugins.BevelFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BevelFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BevelFilterPlugin(){ this.propName = "bevelFilter"; this.overwriteProps = ["bevelFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BevelFilter; initFilter(_arg2, new BevelFilter(0, 0, 0xFFFFFF, 0.5, 0, 0.5, 2, 2, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 359
//BezierPlugin (gs.plugins.BezierPlugin) package gs.plugins { import gs.*; import gs.utils.tween.*; public class BezierPlugin extends TweenPlugin { protected var _future:Object; protected var _orient:Boolean; protected var _orientData:Array; protected var _target:Object; protected var _beziers:Object; protected static const _RAD2DEG:Number = 57.2957795130823; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function BezierPlugin(){ _future = {}; super(); this.propName = "bezier"; this.overwriteProps = []; } override public function killProps(_arg1:Object):void{ var _local2:String; for (_local2 in _beziers) { if ((_local2 in _arg1)){ delete _beziers[_local2]; }; }; super.killProps(_arg1); } protected function init(_arg1:TweenLite, _arg2:Array, _arg3:Boolean):void{ var _local5:int; var _local6:String; _target = _arg1.target; if (_arg1.exposedVars.orientToBezier == true){ _orientData = [["x", "y", "rotation", 0]]; _orient = true; } else { if ((_arg1.exposedVars.orientToBezier is Array)){ _orientData = _arg1.exposedVars.orientToBezier; _orient = true; }; }; var _local4:Object = {}; _local5 = 0; while (_local5 < _arg2.length) { for (_local6 in _arg2[_local5]) { if (_local4[_local6] == undefined){ _local4[_local6] = [_arg1.target[_local6]]; }; if (typeof(_arg2[_local5][_local6]) == "number"){ _local4[_local6].push(_arg2[_local5][_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg2[_local5][_local6]))); }; }; _local5++; }; for (_local6 in _local4) { this.overwriteProps[this.overwriteProps.length] = _local6; if (_arg1.exposedVars[_local6] != undefined){ if (typeof(_arg1.exposedVars[_local6]) == "number"){ _local4[_local6].push(_arg1.exposedVars[_local6]); } else { _local4[_local6].push((_arg1.target[_local6] + Number(_arg1.exposedVars[_local6]))); }; delete _arg1.exposedVars[_local6]; _local5 = (_arg1.tweens.length - 1); while (_local5 > -1) { if (_arg1.tweens[_local5].name == _local6){ _arg1.tweens.splice(_local5, 1); }; _local5--; }; }; }; _beziers = parseBeziers(_local4, _arg3); } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), false); return (true); } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:String; var _local4:Object; var _local5:Number; var _local6:uint; var _local7:Number; var _local8:int; var _local9:Object; var _local10:Boolean; var _local11:Number; var _local12:Number; var _local13:Array; var _local14:Number; if (_arg1 == 1){ for (_local3 in _beziers) { _local2 = (_beziers[_local3].length - 1); _target[_local3] = _beziers[_local3][_local2][2]; }; } else { for (_local3 in _beziers) { _local6 = _beziers[_local3].length; if (_arg1 < 0){ _local2 = 0; } else { if (_arg1 >= 1){ _local2 = (_local6 - 1); } else { _local2 = int((_local6 * _arg1)); }; }; _local5 = ((_arg1 - (_local2 * (1 / _local6))) * _local6); _local4 = _beziers[_local3][_local2]; if (this.round){ _local7 = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); _local8 = ((_local7)<0) ? -1 : 1; _target[_local3] = ((((_local7 % 1) * _local8))>0.5) ? (int(_local7) + _local8) : int(_local7); } else { _target[_local3] = (_local4[0] + (_local5 * (((2 * (1 - _local5)) * (_local4[1] - _local4[0])) + (_local5 * (_local4[2] - _local4[0]))))); }; }; }; if (_orient){ _local9 = _target; _local10 = this.round; _target = _future; this.round = false; _orient = false; this.changeFactor = (_arg1 + 0.01); _target = _local9; this.round = _local10; _orient = true; _local2 = 0; while (_local2 < _orientData.length) { _local13 = _orientData[_local2]; _local14 = ((_local13[3]) || (0)); _local11 = (_future[_local13[0]] - _target[_local13[0]]); _local12 = (_future[_local13[1]] - _target[_local13[1]]); _target[_local13[2]] = ((Math.atan2(_local12, _local11) * _RAD2DEG) + _local14); _local2++; }; }; } public static function parseBeziers(_arg1:Object, _arg2:Boolean=false):Object{ var _local3:int; var _local4:Array; var _local5:Object; var _local6:String; var _local7:Object = {}; if (_arg2){ for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 2){ _local5[_local5.length] = [_local4[0], (_local4[1] - ((_local4[2] - _local4[0]) / 4)), _local4[1]]; _local3 = 1; while (_local3 < (_local4.length - 1)) { _local5[_local5.length] = [_local4[_local3], (_local4[_local3] + (_local4[_local3] - _local5[(_local3 - 1)][1])), _local4[(_local3 + 1)]]; _local3++; }; } else { _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; } else { for (_local6 in _arg1) { _local4 = _arg1[_local6]; _local5 = []; _local7[_local6] = _local5; if (_local4.length > 3){ _local5[_local5.length] = [_local4[0], _local4[1], ((_local4[1] + _local4[2]) / 2)]; _local3 = 2; while (_local3 < (_local4.length - 2)) { _local5[_local5.length] = [_local5[(_local3 - 2)][2], _local4[_local3], ((_local4[_local3] + _local4[(_local3 + 1)]) / 2)]; _local3++; }; _local5[_local5.length] = [_local5[(_local5.length - 1)][2], _local4[(_local4.length - 2)], _local4[(_local4.length - 1)]]; } else { if (_local4.length == 3){ _local5[_local5.length] = [_local4[0], _local4[1], _local4[2]]; } else { if (_local4.length == 2){ _local5[_local5.length] = [_local4[0], ((_local4[0] + _local4[1]) / 2), _local4[1]]; }; }; }; }; }; return (_local7); } } }//package gs.plugins
Section 360
//BezierThroughPlugin (gs.plugins.BezierThroughPlugin) package gs.plugins { import gs.*; public class BezierThroughPlugin extends BezierPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BezierThroughPlugin(){ this.propName = "bezierThrough"; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ if (!(_arg2 is Array)){ return (false); }; init(_arg3, (_arg2 as Array), true); return (true); } } }//package gs.plugins
Section 361
//BlurFilterPlugin (gs.plugins.BlurFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class BlurFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function BlurFilterPlugin(){ this.propName = "blurFilter"; this.overwriteProps = ["blurFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = BlurFilter; initFilter(_arg2, new BlurFilter(0, 0, ((_arg2.quality) || (2)))); return (true); } } }//package gs.plugins
Section 362
//ColorMatrixFilterPlugin (gs.plugins.ColorMatrixFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class ColorMatrixFilterPlugin extends FilterPlugin { protected var _matrix:Array; protected var _matrixTween:EndArrayPlugin; public static const API:Number = 1; public static const VERSION:Number = 1.1; protected static var _lumG:Number = 0.71516; protected static var _lumR:Number = 0.212671; protected static var _idMatrix:Array = [1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0]; protected static var _lumB:Number = 0.072169; public function ColorMatrixFilterPlugin(){ this.propName = "colorMatrixFilter"; this.overwriteProps = ["colorMatrixFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = ColorMatrixFilter; var _local4:Object = _arg2; initFilter({remove:_arg2.remove, index:_arg2.index, addFilter:_arg2.addFilter}, new ColorMatrixFilter(_idMatrix.slice())); _matrix = ColorMatrixFilter(_filter).matrix; var _local5:Array = []; if (((!((_local4.matrix == null))) && ((_local4.matrix is Array)))){ _local5 = _local4.matrix; } else { if (_local4.relative == true){ _local5 = _matrix.slice(); } else { _local5 = _idMatrix.slice(); }; _local5 = setBrightness(_local5, _local4.brightness); _local5 = setContrast(_local5, _local4.contrast); _local5 = setHue(_local5, _local4.hue); _local5 = setSaturation(_local5, _local4.saturation); _local5 = setThreshold(_local5, _local4.threshold); if (!isNaN(_local4.colorize)){ _local5 = colorize(_local5, _local4.colorize, _local4.amount); }; }; _matrixTween = new EndArrayPlugin(); _matrixTween.init(_matrix, _local5); return (true); } override public function set changeFactor(_arg1:Number):void{ _matrixTween.changeFactor = _arg1; ColorMatrixFilter(_filter).matrix = _matrix; super.changeFactor = _arg1; } public static function setSaturation(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Number = (1 - _arg2); var _local4:Number = (_local3 * _lumR); var _local5:Number = (_local3 * _lumG); var _local6:Number = (_local3 * _lumB); var _local7:Array = [(_local4 + _arg2), _local5, _local6, 0, 0, _local4, (_local5 + _arg2), _local6, 0, 0, _local4, _local5, (_local6 + _arg2), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local7, _arg1)); } public static function setHue(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 * (Math.PI / 180)); var _local3:Number = Math.cos(_arg2); var _local4:Number = Math.sin(_arg2); var _local5:Array = [((_lumR + (_local3 * (1 - _lumR))) + (_local4 * -(_lumR))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * -(_lumG))), ((_lumB + (_local3 * -(_lumB))) + (_local4 * (1 - _lumB))), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * 0.143)), ((_lumG + (_local3 * (1 - _lumG))) + (_local4 * 0.14)), ((_lumB + (_local3 * -(_lumB))) + (_local4 * -0.283)), 0, 0, ((_lumR + (_local3 * -(_lumR))) + (_local4 * -((1 - _lumR)))), ((_lumG + (_local3 * -(_lumG))) + (_local4 * _lumG)), ((_lumB + (_local3 * (1 - _lumB))) + (_local4 * _lumB)), 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1]; return (applyMatrix(_local5, _arg1)); } public static function setThreshold(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; var _local3:Array = [(_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), (_lumR * 0x0100), (_lumG * 0x0100), (_lumB * 0x0100), 0, (-256 * _arg2), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } public static function applyMatrix(_arg1:Array, _arg2:Array):Array{ var _local6:int; var _local7:int; if (((!((_arg1 is Array))) || (!((_arg2 is Array))))){ return (_arg2); }; var _local3:Array = []; var _local4:int; var _local5:int; _local6 = 0; while (_local6 < 4) { _local7 = 0; while (_local7 < 5) { if (_local7 == 4){ _local5 = _arg1[(_local4 + 4)]; } else { _local5 = 0; }; _local3[(_local4 + _local7)] = (((((_arg1[_local4] * _arg2[_local7]) + (_arg1[(_local4 + 1)] * _arg2[(_local7 + 5)])) + (_arg1[(_local4 + 2)] * _arg2[(_local7 + 10)])) + (_arg1[(_local4 + 3)] * _arg2[(_local7 + 15)])) + _local5); _local7++; }; _local4 = (_local4 + 5); _local6++; }; return (_local3); } public static function colorize(_arg1:Array, _arg2:Number, _arg3:Number=1):Array{ if (isNaN(_arg2)){ return (_arg1); }; if (isNaN(_arg3)){ _arg3 = 1; }; var _local4:Number = (((_arg2 >> 16) & 0xFF) / 0xFF); var _local5:Number = (((_arg2 >> 8) & 0xFF) / 0xFF); var _local6:Number = ((_arg2 & 0xFF) / 0xFF); var _local7:Number = (1 - _arg3); var _local8:Array = [(_local7 + ((_arg3 * _local4) * _lumR)), ((_arg3 * _local4) * _lumG), ((_arg3 * _local4) * _lumB), 0, 0, ((_arg3 * _local5) * _lumR), (_local7 + ((_arg3 * _local5) * _lumG)), ((_arg3 * _local5) * _lumB), 0, 0, ((_arg3 * _local6) * _lumR), ((_arg3 * _local6) * _lumG), (_local7 + ((_arg3 * _local6) * _lumB)), 0, 0, 0, 0, 0, 1, 0]; return (applyMatrix(_local8, _arg1)); } public static function setBrightness(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = ((_arg2 * 100) - 100); return (applyMatrix([1, 0, 0, 0, _arg2, 0, 1, 0, 0, _arg2, 0, 0, 1, 0, _arg2, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1], _arg1)); } public static function setContrast(_arg1:Array, _arg2:Number):Array{ if (isNaN(_arg2)){ return (_arg1); }; _arg2 = (_arg2 + 0.01); var _local3:Array = [_arg2, 0, 0, 0, (128 * (1 - _arg2)), 0, _arg2, 0, 0, (128 * (1 - _arg2)), 0, 0, _arg2, 0, (128 * (1 - _arg2)), 0, 0, 0, 1, 0]; return (applyMatrix(_local3, _arg1)); } } }//package gs.plugins
Section 363
//DropShadowFilterPlugin (gs.plugins.DropShadowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class DropShadowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function DropShadowFilterPlugin(){ this.propName = "dropShadowFilter"; this.overwriteProps = ["dropShadowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = DropShadowFilter; initFilter(_arg2, new DropShadowFilter(0, 45, 0, 0, 0, 0, 1, ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout, _arg2.hideObject)); return (true); } } }//package gs.plugins
Section 364
//EndArrayPlugin (gs.plugins.EndArrayPlugin) package gs.plugins { import flash.display.*; import gs.*; import gs.utils.tween.*; public class EndArrayPlugin extends TweenPlugin { protected var _a:Array; protected var _info: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"]; } public function init(_arg1:Array, _arg2:Array):void{ _a = _arg1; var _local3:int = (_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); } 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--; }; }; } } }//package gs.plugins
Section 365
//FilterPlugin (gs.plugins.FilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; import gs.utils.tween.*; public class FilterPlugin extends TweenPlugin { protected var _remove:Boolean; protected var _target:Object; protected var _index:int; protected var _filter:BitmapFilter; protected var _type:Class; public static const VERSION:Number = 1.03; public static const API:Number = 1; public function onCompleteTween():void{ var _local1:int; var _local2:Array; if (_remove){ _local2 = _target.filters; if (!(_local2[_index] is _type)){ _local1 = (_local2.length - 1); while (_local1 > -1) { if ((_local2[_local1] is _type)){ _local2.splice(_local1, 1); break; }; _local1--; }; } else { _local2.splice(_index, 1); }; _target.filters = _local2; }; } protected function initFilter(_arg1:Object, _arg2:BitmapFilter):void{ var _local4:String; var _local5:int; var _local6:HexColorsPlugin; var _local3:Array = _target.filters; _index = -1; if (_arg1.index != null){ _index = _arg1.index; } else { _local5 = (_local3.length - 1); while (_local5 > -1) { if ((_local3[_local5] is _type)){ _index = _local5; break; }; _local5--; }; }; if ((((((_index == -1)) || ((_local3[_index] == null)))) || ((_arg1.addFilter == true)))){ _index = ((_arg1.index)!=null) ? _arg1.index : _local3.length; _local3[_index] = _arg2; _target.filters = _local3; }; _filter = _local3[_index]; _remove = Boolean((_arg1.remove == true)); if (_remove){ this.onComplete = onCompleteTween; }; var _local7:Object = ((_arg1.isTV)==true) ? _arg1.exposedVars : _arg1; for (_local4 in _local7) { if (((((((((!((_local4 in _filter))) || ((_filter[_local4] == _local7[_local4])))) || ((_local4 == "remove")))) || ((_local4 == "index")))) || ((_local4 == "addFilter")))){ } else { if ((((((_local4 == "color")) || ((_local4 == "highlightColor")))) || ((_local4 == "shadowColor")))){ _local6 = new HexColorsPlugin(); _local6.initColor(_filter, _local4, _filter[_local4], _local7[_local4]); _tweens[_tweens.length] = new TweenInfo(_local6, "changeFactor", 0, 1, _local4, false); } else { if ((((((((_local4 == "quality")) || ((_local4 == "inner")))) || ((_local4 == "knockout")))) || ((_local4 == "hideObject")))){ _filter[_local4] = _local7[_local4]; } else { addTween(_filter, _local4, _filter[_local4], _local7[_local4], _local4); }; }; }; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:TweenInfo; var _local4:Array = _target.filters; _local2 = (_tweens.length - 1); while (_local2 > -1) { _local3 = _tweens[_local2]; _local3.target[_local3.property] = (_local3.start + (_local3.change * _arg1)); _local2--; }; if (!(_local4[_index] is _type)){ _index = (_local4.length - 1); _local2 = (_local4.length - 1); while (_local2 > -1) { if ((_local4[_local2] is _type)){ _index = _local2; break; }; _local2--; }; }; _local4[_index] = _filter; _target.filters = _local4; } } }//package gs.plugins
Section 366
//FramePlugin (gs.plugins.FramePlugin) package gs.plugins { import flash.display.*; import gs.*; public class FramePlugin extends TweenPlugin { protected var _target:MovieClip; public var frame:int; 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 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); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.gotoAndStop(this.frame); } } }//package gs.plugins
Section 367
//GlowFilterPlugin (gs.plugins.GlowFilterPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.filters.*; public class GlowFilterPlugin extends FilterPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function GlowFilterPlugin(){ this.propName = "glowFilter"; this.overwriteProps = ["glowFilter"]; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ _target = _arg1; _type = GlowFilter; initFilter(_arg2, new GlowFilter(0xFFFFFF, 0, 0, 0, ((_arg2.strength) || (1)), ((_arg2.quality) || (2)), _arg2.inner, _arg2.knockout)); return (true); } } }//package gs.plugins
Section 368
//HexColorsPlugin (gs.plugins.HexColorsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class HexColorsPlugin extends TweenPlugin { protected var _colors:Array; public static const VERSION:Number = 1.01; public static const API:Number = 1; public function HexColorsPlugin(){ this.propName = "hexColors"; this.overwriteProps = []; _colors = []; } override public function killProps(_arg1:Object):void{ var _local2:int = (_colors.length - 1); while (_local2 > -1) { if (_arg1[_colors[_local2][1]] != undefined){ _colors.splice(_local2, 1); }; _local2--; }; super.killProps(_arg1); } public function initColor(_arg1:Object, _arg2:String, _arg3:uint, _arg4:uint):void{ var _local5:Number; var _local6:Number; var _local7:Number; if (_arg3 != _arg4){ _local5 = (_arg3 >> 16); _local6 = ((_arg3 >> 8) & 0xFF); _local7 = (_arg3 & 0xFF); _colors[_colors.length] = [_arg1, _arg2, _local5, ((_arg4 >> 16) - _local5), _local6, (((_arg4 >> 8) & 0xFF) - _local6), _local7, ((_arg4 & 0xFF) - _local7)]; this.overwriteProps[this.overwriteProps.length] = _arg2; }; } override public function set changeFactor(_arg1:Number):void{ var _local2:int; var _local3:Array; _local2 = (_colors.length - 1); while (_local2 > -1) { _local3 = _colors[_local2]; _local3[0][_local3[1]] = ((((_local3[2] + (_arg1 * _local3[3])) << 16) | ((_local3[4] + (_arg1 * _local3[5])) << 8)) | (_local3[6] + (_arg1 * _local3[7]))); _local2--; }; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; for (_local4 in _arg2) { initColor(_arg1, _local4, uint(_arg1[_local4]), uint(_arg2[_local4])); }; return (true); } } }//package gs.plugins
Section 369
//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 370
//RoundPropsPlugin (gs.plugins.RoundPropsPlugin) package gs.plugins { import flash.display.*; import gs.*; public class RoundPropsPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function RoundPropsPlugin(){ this.propName = "roundProps"; this.overwriteProps = []; this.round = true; } public function add(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ addTween(_arg1, _arg2, _arg3, (_arg3 + _arg4), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 371
//ShortRotationPlugin (gs.plugins.ShortRotationPlugin) package gs.plugins { import flash.display.*; import gs.*; public class ShortRotationPlugin extends TweenPlugin { public static const VERSION:Number = 1; public static const API:Number = 1; public function ShortRotationPlugin(){ this.propName = "shortRotation"; this.overwriteProps = []; } override public function onInitTween(_arg1:Object, _arg2, _arg3:TweenLite):Boolean{ var _local4:String; if (typeof(_arg2) == "number"){ trace("WARNING: You appear to be using the old shortRotation syntax. Instead of passing a number, please pass an object with properties that correspond to the rotations values For example, TweenMax.to(mc, 2, {shortRotation:{rotationX:-170, rotationY:25}})"); return (false); }; for (_local4 in _arg2) { initRotation(_arg1, _local4, _arg1[_local4], _arg2[_local4]); }; return (true); } public function initRotation(_arg1:Object, _arg2:String, _arg3:Number, _arg4:Number):void{ var _local5:Number = ((_arg4 - _arg3) % 360); if (((_arg4 - _arg3) % 360) != (_local5 % 180)){ _local5 = ((_local5)<0) ? (_local5 + 360) : (_local5 - 360); }; addTween(_arg1, _arg2, _arg3, (_arg3 + _local5), _arg2); this.overwriteProps[this.overwriteProps.length] = _arg2; } } }//package gs.plugins
Section 372
//TintPlugin (gs.plugins.TintPlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.geom.*; import gs.utils.tween.*; public class TintPlugin extends TweenPlugin { protected var _target:DisplayObject; protected var _ct:ColorTransform; protected var _ignoreAlpha:Boolean; 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"]; } 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{ if (!(_arg1 is DisplayObject)){ return (false); }; var _local4:ColorTransform = new ColorTransform(); if (((!((_arg2 == null))) && (!((_arg3.exposedVars.removeTint == true))))){ _local4.color = uint(_arg2); }; _ignoreAlpha = true; init((_arg1 as DisplayObject), _local4); return (true); } 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; } } }//package gs.plugins
Section 373
//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 propName:String; public var onComplete:Function; public var round:Boolean; protected var _changeFactor:Number;// = 0 public static const VERSION:Number = 1.03; public static const API:Number = 1; public function TweenPlugin(){ _tweens = []; 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 374
//VisiblePlugin (gs.plugins.VisiblePlugin) package gs.plugins { import flash.display.*; import gs.*; public class VisiblePlugin extends TweenPlugin { protected var _target:Object; protected var _visible:Boolean; protected var _tween:TweenLite; public static const VERSION:Number = 1; public static const API:Number = 1; public function VisiblePlugin(){ this.propName = "visible"; this.overwriteProps = ["visible"]; this.onComplete = onCompleteTween; } 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); } override public function set changeFactor(_arg1:Number):void{ if (_target.visible != true){ _target.visible = true; }; } } }//package gs.plugins
Section 375
//VolumePlugin (gs.plugins.VolumePlugin) package gs.plugins { import flash.display.*; import gs.*; import flash.media.*; public class VolumePlugin extends TweenPlugin { protected var _target:Object; protected var _st:SoundTransform; 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 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); } override public function set changeFactor(_arg1:Number):void{ updateTweens(_arg1); _target.soundTransform = _st; } } }//package gs.plugins
Section 376
//ArrayTweenInfo (gs.utils.tween.ArrayTweenInfo) package gs.utils.tween { public class ArrayTweenInfo { public var change:Number; public var start:Number; public var index:uint; public function ArrayTweenInfo(_arg1:uint, _arg2:Number, _arg3:Number){ this.index = _arg1; this.start = _arg2; this.change = _arg3; } } }//package gs.utils.tween
Section 377
//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 378
//OverwriteManager (gs.OverwriteManager) package gs { import flash.utils.*; import gs.utils.tween.*; import flash.errors.*; public class OverwriteManager { public static const ALL:int = 1; public static const NONE:int = 0; public static const AUTO:int = 2; public static const CONCURRENT:int = 3; public static const version:Number = 3.12; public static var mode:int; public static var enabled:Boolean; public static function killVars(_arg1:Object, _arg2:Object, _arg3:Array):void{ var _local4:int; var _local5:String; var _local6:TweenInfo; _local4 = (_arg3.length - 1); while (_local4 > -1) { _local6 = _arg3[_local4]; if ((_local6.name in _arg1)){ _arg3.splice(_local4, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_arg1); if (_local6.target.overwriteProps.length == 0){ _arg3.splice(_local4, 1); }; }; }; _local4--; }; for (_local5 in _arg1) { delete _arg2[_local5]; }; } public static function manageOverwrites(_arg1:TweenLite, _arg2:Array):void{ var _local7:int; var _local8:TweenLite; var _local10:Array; var _local11:Object; var _local12:int; var _local13:TweenInfo; var _local14:Array; var _local3:Object = _arg1.vars; var _local4:int = ((_local3.overwrite)==undefined) ? mode : int(_local3.overwrite); if ((((_local4 < 2)) || ((_arg2 == null)))){ return; }; var _local5:Number = _arg1.startTime; var _local6:Array = []; var _local9 = -1; _local7 = (_arg2.length - 1); while (_local7 > -1) { _local8 = _arg2[_local7]; if (_local8 == _arg1){ _local9 = _local7; } else { if ((((((_local7 < _local9)) && ((_local8.startTime <= _local5)))) && (((_local8.startTime + ((_local8.duration * 1000) / _local8.combinedTimeScale)) > _local5)))){ _local6[_local6.length] = _local8; }; }; _local7--; }; if ((((_local6.length == 0)) || ((_arg1.tweens.length == 0)))){ return; }; if (_local4 == AUTO){ _local10 = _arg1.tweens; _local11 = {}; _local7 = (_local10.length - 1); while (_local7 > -1) { _local13 = _local10[_local7]; if (_local13.isPlugin){ if (_local13.name == "_MULTIPLE_"){ _local14 = _local13.target.overwriteProps; _local12 = (_local14.length - 1); while (_local12 > -1) { _local11[_local14[_local12]] = true; _local12--; }; } else { _local11[_local13.name] = true; }; _local11[_local13.target.propName] = true; } else { _local11[_local13.name] = true; }; _local7--; }; _local7 = (_local6.length - 1); while (_local7 > -1) { killVars(_local11, _local6[_local7].exposedVars, _local6[_local7].tweens); _local7--; }; } else { _local7 = (_local6.length - 1); while (_local7 > -1) { _local6[_local7].enabled = false; _local7--; }; }; } public static function init(_arg1:int=2):int{ if (TweenLite.version < 10.09){ trace("TweenLite warning: Your TweenLite class needs to be updated to work with OverwriteManager (or you may need to clear your ASO files). Please download and install the latest version from http://www.tweenlite.com."); }; TweenLite.overwriteManager = OverwriteManager; mode = _arg1; enabled = true; return (mode); } } }//package gs
Section 379
//TweenLite (gs.TweenLite) package gs { import flash.events.*; import flash.display.*; import flash.utils.*; import gs.plugins.*; import gs.utils.tween.*; public class TweenLite { public var started:Boolean; public var delay:Number; protected var _hasUpdate:Boolean; protected var _hasPlugins: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 tweens:Array; public var vars:Object; public var ease:Function; public var exposedVars:Object; public var initTime:Number; public var combinedTimeScale: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){ 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)); var _local4:int = ((((_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 get enabled():Boolean{ return ((this.gc) ? false : true); } 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 _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = ((_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 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 _local4:Array; var _local5:int; var _local6:TweenLite; var _local2:uint = (currentTime = getTimer()); var _local3:Dictionary = 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 _local3:Object; var _local2:Dictionary = 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 380
//TweenMax (gs.TweenMax) package gs { import flash.events.*; import flash.utils.*; import gs.plugins.*; import gs.utils.tween.*; import gs.events.*; public class TweenMax extends TweenLite implements IEventDispatcher { protected var _dispatcher:EventDispatcher; protected var _callbacks:Object; public var pauseTime:Number; protected var _repeatCount:Number; protected var _timeScale:Number; public static const version:Number = 10.12; public static var removeTween:Function = TweenLite.removeTween; private static var _overwriteMode:int = (OverwriteManager.enabled) ? OverwriteManager.mode : OverwriteManager.init(); ; protected static var _pausedTweens:Dictionary = new Dictionary(false); protected static var _globalTimeScale:Number = 1; public static var killTweensOf:Function = TweenLite.killTweensOf; public static var killDelayedCallsTo:Function = TweenLite.killTweensOf; private static var _activatedPlugins:Boolean = TweenPlugin.activate([TintPlugin, RemoveTintPlugin, FramePlugin, AutoAlphaPlugin, VisiblePlugin, VolumePlugin, EndArrayPlugin, HexColorsPlugin, BlurFilterPlugin, ColorMatrixFilterPlugin, BevelFilterPlugin, DropShadowFilterPlugin, GlowFilterPlugin, RoundPropsPlugin, BezierPlugin, BezierThroughPlugin, ShortRotationPlugin]); public function TweenMax(_arg1:Object, _arg2:Number, _arg3:Object){ super(_arg1, _arg2, _arg3); if (TweenLite.version < 10.092){ trace("TweenMax error! Please update your TweenLite class or try deleting your ASO files. TweenMax requires a more recent version. Download updates at http://www.TweenMax.com."); }; if (((!((this.combinedTimeScale == 1))) && ((this.target is TweenMax)))){ _timeScale = 1; this.combinedTimeScale = _globalTimeScale; } else { _timeScale = this.combinedTimeScale; this.combinedTimeScale = (this.combinedTimeScale * _globalTimeScale); }; if (((!((this.combinedTimeScale == 1))) && (!((this.delay == 0))))){ this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ initDispatcher(); if ((((_arg2 == 0)) && ((this.delay == 0)))){ onUpdateDispatcher(); onCompleteDispatcher(); }; }; _repeatCount = 0; if (((!(isNaN(this.vars.yoyo))) || (!(isNaN(this.vars.loop))))){ this.vars.persist = true; }; if ((((this.delay == 0)) && (!((this.vars.startAt == null))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; } public function dispatchEvent(_arg1:Event):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.dispatchEvent(_arg1)); } public function get reversed():Boolean{ return ((this.ease == reverseEase)); } public function set reversed(_arg1:Boolean):void{ if (this.reversed != _arg1){ reverse(); }; } public function get progress():Number{ var _local1:Number = (isNaN(this.pauseTime)) ? currentTime : this.pauseTime; var _local2:Number = (((((_local1 - this.initTime) * 0.001) - (this.delay / this.combinedTimeScale)) / this.duration) * this.combinedTimeScale); if (_local2 > 1){ return (1); }; if (_local2 < 0){ return (0); }; return (_local2); } override public function set enabled(_arg1:Boolean):void{ if (!_arg1){ _pausedTweens[this] = null; delete _pausedTweens[this]; }; super.enabled = _arg1; if (_arg1){ this.combinedTimeScale = (_timeScale * _globalTimeScale); }; } protected function onStartDispatcher(... _args):void{ if (_callbacks.onStart != null){ _callbacks.onStart.apply(null, this.vars.onStartParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.START)); } public function setDestination(_arg1:String, _arg2, _arg3:Boolean=true):void{ var _local5:int; var _local6:TweenInfo; var _local7:Object; var _local8:Object; var _local9:Array; var _local10:Boolean; var _local11:Array; var _local12:Object; var _local4:Number = this.progress; if (this.initted){ if (!_arg3){ _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ _local6.target[_local6.property] = _local6.start; }; _local5--; }; }; _local7 = this.vars; _local8 = this.exposedVars; _local9 = this.tweens; _local10 = _hasPlugins; this.tweens = []; this.vars = (this.exposedVars = {}); this.vars[_arg1] = _arg2; initTweenVals(); if (((!((this.ease == reverseEase))) && ((_local7.ease is Function)))){ this.ease = _local7.ease; }; if (((_arg3) && (!((_local4 == 0))))){ adjustStartValues(); }; _local11 = this.tweens; this.vars = _local7; this.exposedVars = _local8; this.tweens = _local9; _local12 = {}; _local12[_arg1] = true; _local5 = (this.tweens.length - 1); while (_local5 > -1) { _local6 = this.tweens[_local5]; if (_local6.name == _arg1){ this.tweens.splice(_local5, 1); } else { if (((_local6.isPlugin) && ((_local6.name == "_MULTIPLE_")))){ _local6.target.killProps(_local12); if (_local6.target.overwriteProps.length == 0){ this.tweens.splice(_local5, 1); }; }; }; _local5--; }; this.tweens = this.tweens.concat(_local11); _hasPlugins = Boolean(((_local10) || (_hasPlugins))); }; this.vars[_arg1] = (this.exposedVars[_arg1] = _arg2); } override public function initTweenVals():void{ var _local1:int; var _local2:int; var _local3:String; var _local4:String; var _local5:Array; var _local6:Object; var _local7:TweenInfo; if (((!((this.vars.startAt == null))) && (!((this.delay == 0))))){ this.vars.startAt.overwrite = 0; new TweenMax(this.target, 0, this.vars.startAt); }; super.initTweenVals(); if ((((this.exposedVars.roundProps is Array)) && (!((TweenLite.plugins.roundProps == null))))){ _local5 = this.exposedVars.roundProps; _local1 = (_local5.length - 1); while (_local1 > -1) { _local3 = _local5[_local1]; _local2 = (this.tweens.length - 1); while (_local2 > -1) { _local7 = this.tweens[_local2]; if (_local7.name == _local3){ if (_local7.isPlugin){ _local7.target.round = true; } else { if (_local6 == null){ _local6 = new TweenLite.plugins.roundProps(); _local6.add(_local7.target, _local3, _local7.start, _local7.change); _hasPlugins = true; this.tweens[_local2] = new TweenInfo(_local6, "changeFactor", 0, 1, _local3, true); } else { _local6.add(_local7.target, _local3, _local7.start, _local7.change); this.tweens.splice(_local2, 1); }; }; } else { if (((((_local7.isPlugin) && ((_local7.name == "_MULTIPLE_")))) && (!(_local7.target.round)))){ _local4 = ((" " + _local7.target.overwriteProps.join(" ")) + " "); if (_local4.indexOf(((" " + _local3) + " ")) != -1){ _local7.target.round = true; }; }; }; _local2--; }; _local1--; }; }; } public function restart(_arg1:Boolean=false):void{ if (_arg1){ this.initTime = currentTime; this.startTime = (currentTime + (this.delay * (1000 / this.combinedTimeScale))); } else { this.startTime = currentTime; this.initTime = (currentTime - (this.delay * (1000 / this.combinedTimeScale))); }; _repeatCount = 0; if (this.target != this.vars.onComplete){ render(this.startTime); }; this.pauseTime = NaN; _pausedTweens[this] = null; delete _pausedTweens[this]; this.enabled = true; } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (_dispatcher != null){ _dispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ if (_dispatcher == null){ initDispatcher(); }; if ((((_arg1 == TweenEvent.UPDATE)) && (!((this.vars.onUpdate == onUpdateDispatcher))))){ this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; _dispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } protected function adjustStartValues():void{ var _local2:Number; var _local3:Number; var _local4:Number; var _local5:TweenInfo; var _local6:int; var _local1:Number = this.progress; if (_local1 != 0){ _local2 = this.ease(_local1, 0, 1, 1); _local3 = (1 / (1 - _local2)); _local6 = (this.tweens.length - 1); while (_local6 > -1) { _local5 = this.tweens[_local6]; _local4 = (_local5.start + _local5.change); if (_local5.isPlugin){ _local5.change = ((_local4 - _local2) * _local3); } else { _local5.change = ((_local4 - _local5.target[_local5.property]) * _local3); }; _local5.start = (_local4 - _local5.change); _local6--; }; }; } override public function render(_arg1:uint):void{ var _local3:Number; var _local4:TweenInfo; var _local5:int; var _local2:Number = (((_arg1 - this.startTime) * 0.001) * this.combinedTimeScale); 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); }; } protected function initDispatcher():void{ var _local1:Object; var _local2:String; if (_dispatcher == null){ _dispatcher = new EventDispatcher(this); _callbacks = {onStart:this.vars.onStart, onUpdate:this.vars.onUpdate, onComplete:this.vars.onComplete}; if (this.vars.isTV == true){ this.vars = this.vars.clone(); } else { _local1 = {}; for (_local2 in this.vars) { _local1[_local2] = this.vars[_local2]; }; this.vars = _local1; }; this.vars.onStart = onStartDispatcher; this.vars.onComplete = onCompleteDispatcher; if ((this.vars.onStartListener is Function)){ _dispatcher.addEventListener(TweenEvent.START, this.vars.onStartListener, false, 0, true); }; if ((this.vars.onUpdateListener is Function)){ _dispatcher.addEventListener(TweenEvent.UPDATE, this.vars.onUpdateListener, false, 0, true); this.vars.onUpdate = onUpdateDispatcher; _hasUpdate = true; }; if ((this.vars.onCompleteListener is Function)){ _dispatcher.addEventListener(TweenEvent.COMPLETE, this.vars.onCompleteListener, false, 0, true); }; }; } public function willTrigger(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.willTrigger(_arg1)); } public function get repeatCount():Number{ return (_repeatCount); } public function reverse(_arg1:Boolean=true, _arg2:Boolean=true):void{ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; var _local3:Number = this.progress; if (((_arg1) && ((_local3 > 0)))){ this.startTime = (currentTime - ((((1 - _local3) * this.duration) * 1000) / this.combinedTimeScale)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); }; if (_arg2 != false){ if (_local3 < 1){ resume(); } else { restart(); }; }; } protected function onUpdateDispatcher(... _args):void{ if (_callbacks.onUpdate != null){ _callbacks.onUpdate.apply(null, this.vars.onUpdateParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.UPDATE)); } public function set paused(_arg1:Boolean):void{ if (_arg1){ pause(); } else { resume(); }; } public function resume():void{ this.enabled = true; if (!isNaN(this.pauseTime)){ this.initTime = (this.initTime + (currentTime - this.pauseTime)); this.startTime = (this.initTime + (this.delay * (1000 / this.combinedTimeScale))); this.pauseTime = NaN; if (((!(this.started)) && ((currentTime >= this.startTime)))){ activate(); } else { this.active = this.started; }; _pausedTweens[this] = null; delete _pausedTweens[this]; }; } public function get paused():Boolean{ return (!(isNaN(this.pauseTime))); } public function set repeatCount(_arg1:Number):void{ _repeatCount = _arg1; } public function reverseEase(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number):Number{ return (this.vars.ease((_arg4 - _arg1), _arg2, _arg3, _arg4)); } public function killProperties(_arg1:Array):void{ var _local3:int; var _local2:Object = {}; _local3 = (_arg1.length - 1); while (_local3 > -1) { _local2[_arg1[_local3]] = true; _local3--; }; killVars(_local2); } public function set progress(_arg1:Number):void{ this.startTime = (currentTime - ((this.duration * _arg1) * 1000)); this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); if (!this.started){ activate(); }; render(currentTime); if (!isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.active = false; }; } public function hasEventListener(_arg1:String):Boolean{ if (_dispatcher == null){ return (false); }; return (_dispatcher.hasEventListener(_arg1)); } public function pause():void{ if (isNaN(this.pauseTime)){ this.pauseTime = currentTime; this.startTime = 999999999999999; this.enabled = false; _pausedTweens[this] = this; }; } override public function complete(_arg1:Boolean=false):void{ if (((((!(isNaN(this.vars.yoyo))) && ((((_repeatCount < this.vars.yoyo)) || ((this.vars.yoyo == 0)))))) || (((!(isNaN(this.vars.loop))) && ((((_repeatCount < this.vars.loop)) || ((this.vars.loop == 0)))))))){ _repeatCount++; if (!isNaN(this.vars.yoyo)){ this.ease = ((this.vars.ease)==this.ease) ? reverseEase : this.vars.ease; }; this.startTime = (_arg1) ? (this.startTime + (this.duration * (1000 / this.combinedTimeScale))) : currentTime; this.initTime = (this.startTime - (this.delay * (1000 / this.combinedTimeScale))); } else { if (this.vars.persist == true){ pause(); }; }; super.complete(_arg1); } public function set timeScale(_arg1:Number):void{ if (_arg1 < 1E-5){ _arg1 = (_timeScale = 1E-5); } else { _timeScale = _arg1; _arg1 = (_arg1 * _globalTimeScale); }; this.initTime = ((currentTime - ((((currentTime - this.initTime) - (this.delay * (1000 / this.combinedTimeScale))) * this.combinedTimeScale) * (1 / _arg1))) - (this.delay * (1000 / _arg1))); if (this.startTime != 999999999999999){ this.startTime = (this.initTime + (this.delay * (1000 / _arg1))); }; this.combinedTimeScale = _arg1; } public function invalidate(_arg1:Boolean=true):void{ var _local2:Number; if (this.initted){ _local2 = this.progress; if (((!(_arg1)) && (!((_local2 == 0))))){ this.progress = 0; }; this.tweens = []; _hasPlugins = false; this.exposedVars = ((this.vars.isTV)==true) ? this.vars.exposedProps : this.vars; initTweenVals(); _timeScale = ((this.vars.timeScale) || (1)); this.combinedTimeScale = (_timeScale * _globalTimeScale); this.delay = ((this.vars.delay) || (0)); if (isNaN(this.pauseTime)){ this.startTime = (this.initTime + ((this.delay * 1000) / this.combinedTimeScale)); }; if (((((!((this.vars.onCompleteListener == null))) || (!((this.vars.onUpdateListener == null))))) || (!((this.vars.onStartListener == null))))){ if (_dispatcher != null){ this.vars.onStart = _callbacks.onStart; this.vars.onUpdate = _callbacks.onUpdate; this.vars.onComplete = _callbacks.onComplete; _dispatcher = null; }; initDispatcher(); }; if (_local2 != 0){ if (_arg1){ adjustStartValues(); } else { this.progress = _local2; }; }; }; } public function get timeScale():Number{ return (_timeScale); } protected function onCompleteDispatcher(... _args):void{ if (_callbacks.onComplete != null){ _callbacks.onComplete.apply(null, this.vars.onCompleteParams); }; _dispatcher.dispatchEvent(new TweenEvent(TweenEvent.COMPLETE)); } public static function set globalTimeScale(_arg1:Number):void{ setGlobalTimeScale(_arg1); } public static function pauseAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(true, _arg1, _arg2); } public static function killAllDelayedCalls(_arg1:Boolean=false):void{ killAll(_arg1, false, true); } public static function setGlobalTimeScale(_arg1:Number):void{ var _local3:int; var _local4:Array; if (_arg1 < 1E-5){ _arg1 = 1E-5; }; var _local2:Dictionary = masterList; _globalTimeScale = _arg1; for each (_local4 in _local2) { _local3 = (_local4.length - 1); while (_local3 > -1) { if ((_local4[_local3] is TweenMax)){ _local4[_local3].timeScale = (_local4[_local3].timeScale * 1); }; _local3--; }; }; } public static function get globalTimeScale():Number{ return (_globalTimeScale); } public static function getTweensOf(_arg1:Object):Array{ var _local4:TweenLite; var _local5:int; var _local2:Array = masterList[_arg1]; var _local3:Array = []; if (_local2 != null){ _local5 = (_local2.length - 1); while (_local5 > -1) { if (!_local2[_local5].gc){ _local3[_local3.length] = _local2[_local5]; }; _local5--; }; }; for each (_local4 in _pausedTweens) { if (_local4.target == _arg1){ _local3[_local3.length] = _local4; }; }; return (_local3); } public static function delayedCall(_arg1:Number, _arg2:Function, _arg3:Array=null, _arg4:Boolean=false):TweenMax{ return (new TweenMax(_arg2, 0, {delay:_arg1, onComplete:_arg2, onCompleteParams:_arg3, persist:_arg4, overwrite:0})); } public static function isTweening(_arg1:Object):Boolean{ var _local2:Array = getTweensOf(_arg1); var _local3:int = (_local2.length - 1); while (_local3 > -1) { if (((((_local2[_local3].active) || ((_local2[_local3].startTime == currentTime)))) && (!(_local2[_local3].gc)))){ return (true); }; _local3--; }; return (false); } public static function changePause(_arg1:Boolean, _arg2:Boolean=true, _arg3:Boolean=false):void{ var _local5:Boolean; var _local4:Array = getAllTweens(); var _local6:int = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local4[_local6] is TweenMax)) && ((((_local5 == _arg3)) || (!((_local5 == _arg2))))))){ _local4[_local6].paused = _arg1; }; _local6--; }; } public static function killAllTweens(_arg1:Boolean=false):void{ killAll(_arg1, true, false); } public static function from(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ _arg3.runBackwards = true; return (new TweenMax(_arg1, _arg2, _arg3)); } public static function killAll(_arg1:Boolean=false, _arg2:Boolean=true, _arg3:Boolean=true):void{ var _local5:Boolean; var _local6:int; var _local4:Array = getAllTweens(); _local6 = (_local4.length - 1); while (_local6 > -1) { _local5 = (_local4[_local6].target == _local4[_local6].vars.onComplete); if ((((_local5 == _arg3)) || (!((_local5 == _arg2))))){ if (_arg1){ _local4[_local6].complete(false); _local4[_local6].clear(); } else { TweenLite.removeTween(_local4[_local6], true); }; }; _local6--; }; } public static function getAllTweens():Array{ var _local3:Array; var _local4:int; var _local5:TweenLite; var _local1:Dictionary = masterList; var _local2:Array = []; for each (_local3 in _local1) { _local4 = (_local3.length - 1); while (_local4 > -1) { if (!_local3[_local4].gc){ _local2[_local2.length] = _local3[_local4]; }; _local4--; }; }; for each (_local5 in _pausedTweens) { _local2[_local2.length] = _local5; }; return (_local2); } public static function resumeAll(_arg1:Boolean=true, _arg2:Boolean=false):void{ changePause(false, _arg1, _arg2); } public static function to(_arg1:Object, _arg2:Number, _arg3:Object):TweenMax{ return (new TweenMax(_arg1, _arg2, _arg3)); } } }//package gs
Section 381
//BaseMarvelHudComponent (hud.BaseMarvelHudComponent) package hud { import flash.display.*; import org.casalib.display.*; import interfaces.*; public class BaseMarvelHudComponent extends CasaSprite implements IMarvelHudComponent { protected var m_container:MovieClip; public function doRender():void{ } override public function destroy():void{ super.destroy(); } public function doPhysics():void{ } } }//package hud
Section 382
//HudButton (hud.HudButton) package hud { import flash.events.*; import console.*; import com.markfennell.sound.*; import flash.display.*; import org.casalib.display.*; import gs.*; public class HudButton extends CasaSprite { private var m_label:String; private var m_item:MovieClip; private var m_toggle:Boolean;// = true private var m_event:String; private var m_enabled:Boolean;// = true private var m_canToggle:Boolean;// = false private var m_labelToggle:String; private var m_eventToggle:String; public function HudButton(_arg1:MovieClip, _arg2:String, _arg3:String, _arg4:String="", _arg5:String=""){ var a_item = _arg1; var a_label = _arg2; var a_event = _arg3; var a_toggle = _arg4; var a_toggleEvent = _arg5; super(); m_item = a_item; m_item.hover.alpha = 0; m_event = a_event; m_label = a_label; if (a_toggle != ""){ m_canToggle = true; m_labelToggle = a_toggle; m_eventToggle = a_toggleEvent; }; try { m_item.label.text = m_label; m_item.label.mouseEnabled = false; m_item.buttonMode = (m_item.useHandCursor = true); } catch(e:Error) { }; m_item.addEventListener(MouseEvent.CLICK, handleClick); m_item.addEventListener(MouseEvent.ROLL_OUT, handleRollOut); m_item.addEventListener(MouseEvent.ROLL_OVER, handleRollOver); this.buttonMode = true; this.useHandCursor = true; } private function handleClick(_arg1:MouseEvent):void{ if (m_enabled){ GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep1", 0.5, 1)); if (m_canToggle){ if (m_toggle){ m_item.label.text = m_labelToggle; m_toggle = false; if (m_event != ""){ GameBroadcaster.dispatchEvent(new ConsoleEvent(m_event)); }; } else { m_item.label.text = m_label; m_toggle = true; if (m_event != ""){ GameBroadcaster.dispatchEvent(new ConsoleEvent(m_eventToggle)); }; }; } else { if (m_event != ""){ GameBroadcaster.dispatchEvent(new ConsoleEvent(m_event)); }; }; }; } public function enable():void{ m_enabled = true; TweenMax.to(m_item, 0.3, {alpha:1}); } public function reset():void{ m_item.label.text = m_label; m_toggle = true; disable(); } private function handleRollOut(_arg1:MouseEvent):void{ TweenMax.to(m_item.hover, 0.3, {alpha:0}); } public function disable():void{ m_enabled = false; TweenMax.to(m_item, 0.3, {alpha:0.5}); } private function handleRollOver(_arg1:MouseEvent):void{ TweenMax.to(m_item.hover, 0.3, {alpha:1}); } } }//package hud
Section 383
//MarvelHudController (hud.MarvelHudController) package hud { import flash.events.*; import console.*; import com.markfennell.sound.*; import flash.display.*; import game.achievements.*; import game.events.*; import flash.utils.*; import org.casalib.display.*; import flash.net.*; import org.casalib.util.*; import assets_ui.*; import fl.motion.easing.*; import gs.*; public class MarvelHudController extends CasaSprite { private var m_mask:Shape; private var m_btnMedals:HudButton; private var m_soundControls:MovieClip; private var m_btnCharacters:HudButton; private var m_showingTitleButtons:Boolean; private var m_btnPause:HudButton; private var m_canShowPanel:Boolean;// = false private var m_ui:HudUI; private var m_btnCredits:MovieClip; private var m_buttons:HudUIButtons; private var m_btnMarvelKids:MovieClip; private var m_scoreLength:int;// = 9 private var m_btnSHS:MovieClip; private var m_gameTopPanel:BaseMarvelHudComponent; private var m_btnMain:HudButton; private var m_btnHelp:HudButton; private var m_gameBottomPanel:BaseMarvelHudComponent; private var m_btnStart:HudButton; private var m_btnShare:HudButton; private var m_btnMore:HudButton; public function MarvelHudController(){ m_ui = new HudUI(); m_ui.mouseEnabled = false; m_ui.mouseChildren = false; addChild(m_ui); setScore(); m_buttons = new HudUIButtons(); m_buttons.x = 374; m_buttons.y = 506; addChild(m_buttons); m_buttons.ButtonHelp.x = 0; m_buttons.ButtonCharacters.x = 0; m_buttons.ButtonStart.x = 0; m_buttons.ButtonMore.x = 0; m_buttons.ButtonShare.x = 0; m_buttons.ButtonMedals.x = 0; m_buttons.BaseHelp.x = 0; m_buttons.BaseCharacters.x = 0; m_buttons.BaseStart.x = 0; m_buttons.BaseMore.x = 0; m_buttons.BaseMulti.x = 0; m_btnHelp = new HudButton(m_buttons.ButtonHelp, "HOW TO PLAY", ConsoleEvent.DISPLAY_HELP); m_btnCharacters = new HudButton(m_buttons.ButtonCharacters, "CHARACTERS", ConsoleEvent.DISPLAY_CHARACTERS); m_btnMore = new HudButton(m_buttons.ButtonMore, "MORE GAMES", ConsoleEvent.DISPLAY_MORE); m_btnShare = new HudButton(m_buttons.ButtonShare, " ", ConsoleEvent.DISPLAY_SHARE); m_btnMedals = new HudButton(m_buttons.ButtonMedals, " ", ConsoleEvent.DISPLAY_MEDALS); m_btnStart = new HudButton(m_buttons.ButtonStart, " ", ""); m_btnMain = new HudButton(m_buttons.InGame.ButtonMain, "MAIN MENU", ConsoleEvent.EXIT_ATTEMPT); m_btnPause = new HudButton(m_buttons.InGame.ButtonPause, "PAUSE GAME", ConsoleEvent.PAUSE); GameBroadcaster.addEventListener(ConsoleEvent.STARTED, showInGameButtons); GameBroadcaster.addEventListener(ConsoleEvent.PAUSE_DISABLED, handlePauseState); GameBroadcaster.addEventListener(ConsoleEvent.PAUSE_ENABLED, handlePauseState); m_buttons.ButtonStart.mouseChildren = false; m_buttons.ButtonStart.addEventListener(MouseEvent.CLICK, handleMouseClick); GameBroadcaster.addEventListener(HUDEvent.SHOW_MENU_HUD_FRAME, showMenuFrameHandler); GameBroadcaster.addEventListener(HUDEvent.SHOW_GAME_HUD_FRAME, showGameFrameHandler); m_btnSHS = new HudBtnSHS(); addChild(m_btnSHS); m_btnSHS.x = 35; m_btnSHS.y = 0; m_btnSHS.buttonMode = true; m_btnSHS.addEventListener(MouseEvent.CLICK, handleMouseClick); m_btnMarvelKids = new HudBtnMarvelKids(); addChild(m_btnMarvelKids); m_btnMarvelKids.x = 642; m_btnMarvelKids.y = 3; m_btnMarvelKids.buttonMode = true; m_btnMarvelKids.addEventListener(MouseEvent.CLICK, handleMouseClick); m_btnCredits = new HudBtnCredits(); addChild(m_btnCredits); m_btnCredits.x = 611; m_btnCredits.y = 535; m_btnCredits.buttonMode = true; m_btnCredits.addEventListener(MouseEvent.CLICK, handleMouseClick); m_soundControls = new HudSoundControls(); addChild(m_soundControls); m_soundControls.x = 550; m_soundControls.y = 33; m_soundControls.buttonMode = true; m_soundControls.musicButton.addEventListener(MouseEvent.CLICK, handleMouseClick); m_soundControls.soundButton.addEventListener(MouseEvent.CLICK, handleMouseClick); m_soundControls.soundSlider.stop(); m_soundControls.musicSlider.stop(); hideButtons(); mouseEnabled = false; } private function handlePauseState(_arg1:ConsoleEvent):void{ switch (_arg1.type){ case ConsoleEvent.PAUSE_ENABLED: m_btnPause.enable(); enableHud(); break; case ConsoleEvent.PAUSE_DISABLED: m_btnPause.disable(); disableHud(); break; }; } public function startGame():void{ GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.DISPLAY_INTRO_VIDEO)); } private function destroyComponent(_arg1:BaseMarvelHudComponent):void{ trace(("Destroying a component - " + _arg1)); _arg1.destroy(); } private function handleMouseClick(_arg1:MouseEvent):void{ switch (_arg1.target){ case m_buttons.ButtonStart: if (m_canShowPanel){ m_canShowPanel = false; GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep3", 0.5, 1)); hideTitleButtons(); } else { trace("!!!"); }; break; case m_btnCredits: GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.DISPLAY_CREDITS)); break; case m_soundControls.soundButton: if (SoundController.getInstance().soundsEnabled == false){ m_soundControls.soundSlider.gotoAndStop(1); trace("sound On"); SoundController.getInstance().soundsEnabled = true; SoundController.getInstance().resumeSounds(); } else { m_soundControls.soundSlider.gotoAndStop(8); trace("sound Off"); SoundController.getInstance().soundsEnabled = false; SoundController.getInstance().stopSounds(); }; break; case m_soundControls.musicButton: if (SoundController.getInstance().musicEnabled == false){ m_soundControls.musicSlider.gotoAndStop(1); trace("Music On"); SoundController.getInstance().musicEnabled = true; SoundController.getInstance().resume_music(); } else { m_soundControls.musicSlider.gotoAndStop(8); trace("Music Off"); SoundController.getInstance().musicEnabled = false; SoundController.getInstance().stop_music(); }; break; case m_btnMarvelKids: trace("GOTO URL MARVEL"); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "linkOut", "clientSiteMarvelKids"); navigateToURL(Constants.URL_MARVELKIDS, "_blank"); break; case m_btnSHS: trace("GOTO URL SHS"); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "linkOut", "clientSiteSHS"); navigateToURL(Constants.URL_SHS, "_blank"); break; }; } public function hideInGameButtons():void{ TweenMax.to(m_buttons.InGame, 0.5, {delay:0, y:250, ease:Quadratic.easeOut}); TweenMax.to(m_ui.MenuHeader, 0.25, {delay:0, y:34, ease:Quadratic.easeOut}); if (m_gameTopPanel != null){ TweenMax.to(m_gameTopPanel, 0.25, {delay:0, y:-100, ease:Quadratic.easeOut, onComplete:destroyComponent, onCompleteParams:[m_gameTopPanel]}); m_gameTopPanel = null; TweenMax.to(m_gameBottomPanel, 0.25, {delay:0, y:600, ease:Quadratic.easeOut, onComplete:destroyComponent, onCompleteParams:[m_gameBottomPanel]}); m_gameBottomPanel = null; }; } private function showMenuFrameHandler(_arg1:HUDEvent):void{ m_ui.top.gotoAndStop("menu"); } public function updatePanel():void{ } public function showTitleButtons():void{ trace("Show Title Buttons"); hideButtons(); setScore(); m_showingTitleButtons = true; m_canShowPanel = true; TweenMax.killAll(true, false, false); hideInGameButtons(); TweenMax.to(m_buttons.ButtonStart, 0.25, {delay:0.2, y:0, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.BaseStart, 0.25, {delay:0.2, y:1, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.ButtonHelp, 0.25, {delay:0.4, x:-260, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.BaseHelp, 0.25, {delay:0.4, x:-251, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.ButtonShare, 0.25, {delay:0.4, x:263, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.ButtonMedals, 0.25, {delay:0.4, x:313, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.BaseMulti, 0.25, {delay:0.4, x:251, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.ButtonCharacters, 0.25, {delay:0.5, x:-143, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.BaseCharacters, 0.25, {delay:0.5, x:-143, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.ButtonMore, 0.25, {delay:0.5, x:172, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.BaseMore, 0.25, {delay:0.5, x:156, ease:Quadratic.easeOut}); TweenMax.to(m_btnCredits, 0.25, {delay:0.5, y:535, ease:Quadratic.easeOut}); setTimeout(revealButtons, 400); } public function hide(_arg1:DisplayObject):void{ _arg1.visible = false; } private function showGameFrameHandler(_arg1:HUDEvent):void{ m_ui.top.gotoAndStop("game"); } public function setRage(_arg1:Number):void{ } public function setScore():void{ trace("MarvelHudController setScore"); m_ui.MenuHeader.scoretext.text = NumberUtil.format(AchievementData.instance.bestScore, m_scoreLength, ",", ""); } private function showInGameButtons(_arg1:ConsoleEvent):void{ m_btnPause.reset(); TweenMax.to(m_ui.MenuHeader, 0.25, {delay:0, y:-100, ease:Quadratic.easeOut}); TweenMax.to(m_buttons.InGame, 0.5, {delay:0, y:0, ease:Quadratic.easeOut}); m_gameTopPanel = _arg1.data.topPanel; addChild(m_gameTopPanel); m_gameTopPanel.x = 131; m_gameTopPanel.y = -100; TweenMax.to(m_gameTopPanel, 0.25, {delay:0, y:10, ease:Quadratic.easeOut}); m_gameBottomPanel = _arg1.data.bottomPanel; addChild(m_gameBottomPanel); m_gameBottomPanel.x = 9; m_gameBottomPanel.y = 600; TweenMax.to(m_gameBottomPanel, 0.25, {delay:0, y:491, ease:Quadratic.easeOut}); } private function hideButtons():void{ m_buttons.ButtonHelp.visible = false; m_buttons.BaseHelp.visible = false; m_buttons.ButtonShare.visible = false; m_buttons.ButtonMedals.visible = false; m_buttons.BaseMulti.visible = false; m_buttons.ButtonCharacters.visible = false; m_buttons.BaseCharacters.visible = false; m_buttons.ButtonMore.visible = false; m_buttons.BaseMore.visible = false; } public function setHealth(_arg1:Number):void{ } public function get showingTitleButtons():Boolean{ return (m_showingTitleButtons); } public function disableHud():void{ trace("disableHud"); TweenMax.to(m_buttons, 0.25, {colorMatrixFilter:{colorize:0xCCCCCC, amount:1}}); m_buttons.mouseEnabled = false; m_buttons.mouseChildren = false; } private function hideTitleButtons():void{ trace("Hide Title Buttons"); m_showingTitleButtons = false; TweenMax.killAll(true, false, false); TweenMax.to(m_buttons.ButtonHelp, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonHelp]}); TweenMax.to(m_buttons.BaseHelp, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseHelp]}); TweenMax.to(m_buttons.ButtonShare, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonShare]}); TweenMax.to(m_buttons.ButtonMedals, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonMedals]}); TweenMax.to(m_buttons.BaseMulti, 0.25, {delay:0.1, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseMulti]}); TweenMax.to(m_buttons.ButtonCharacters, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonCharacters]}); TweenMax.to(m_buttons.BaseCharacters, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseCharacters]}); TweenMax.to(m_buttons.ButtonMore, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.ButtonMore]}); TweenMax.to(m_buttons.BaseMore, 0.25, {delay:0, x:0, ease:Quadratic.easeOut, onComplete:hide, onCompleteParams:[m_buttons.BaseMore]}); TweenMax.to(m_buttons.ButtonStart, 0.2, {delay:0.4, y:100, ease:Quadratic.easeOut, onComplete:startGame}); TweenMax.to(m_buttons.BaseStart, 0.2, {delay:0.4, y:100, ease:Quadratic.easeOut}); TweenMax.to(m_btnCredits, 0.25, {delay:0.4, y:555, ease:Quadratic.easeOut}); } public function enableHud():void{ trace("enableHud"); TweenMax.to(m_buttons, 0.25, {colorMatrixFilter:{}}); m_buttons.mouseEnabled = true; m_buttons.mouseChildren = true; } override public function destroy():void{ removeChild(m_ui); m_ui = null; super.destroy(); } private function revealButtons():void{ m_buttons.ButtonHelp.visible = true; m_buttons.BaseHelp.visible = true; m_buttons.ButtonShare.visible = true; m_buttons.ButtonMedals.visible = true; m_buttons.BaseMulti.visible = true; m_buttons.ButtonCharacters.visible = true; m_buttons.BaseCharacters.visible = true; m_buttons.ButtonMore.visible = true; m_buttons.BaseMore.visible = true; } } }//package hud
Section 384
//IConsoleSection (interfaces.IConsoleSection) package interfaces { import flash.events.*; public interface IConsoleSection extends IEventDispatcher { function destroy():void; function hide():void; function doResume():void; function transitionOut():void; function transitionIn():void; function doPause():void; function transitionIn_COMPLETE():void; } }//package interfaces
Section 385
//IGameController (interfaces.IGameController) package interfaces { public interface IGameController { function doResume():void; function destroy():void; function doPause():void; } }//package interfaces
Section 386
//IMarvelHudComponent (interfaces.IMarvelHudComponent) package interfaces { public interface IMarvelHudComponent { function doRender():void; function destroy():void; function doPhysics():void; } }//package interfaces
Section 387
//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 reencode():void{ var _local1:uint = int((2147483647 * Math.random())); Fragment = (Fragment ^ (_local1 ^ Encoder)); Encoder = _local1; } public function set value(_arg1:Number):void{ setValue(_arg1); } public function toString():String{ var _local1:String = String.fromCharCode((Fragment ^ Encoder)); if (Sibling != null){ _local1 = (_local1 + Sibling.toString()); }; return (_local1); } public function setValue(_arg1:Number=0, _arg2:uint=0):void{ var _local3:String = _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 get value():Number{ return (Number(this.toString())); } public function addValue(_arg1:Number):void{ value = (value + _arg1); } } }//package mochi.as3
Section 388
//User (net.User) package net { import flash.display.*; import flash.utils.*; import flash.net.*; import com.electrotank.util.*; public class User { private var m_levelsUnlocked:Array; private var _userID:String; public var userEmail:String;// = null private var m_hostName:String;// = "SuperHeroSquad" private var _enableLogin:Boolean; private var m_so:SharedObject; private var _countryID:String; private var _username:String; public var userName:String;// = null private var m_medalsUnlocked:Array; private var m_bestScore:int; private static var _instance:User; public function User(_arg1:SingletonEnforcer){ m_so = SharedObject.getLocal(m_hostName); if (_arg1 == null){ throw (new Error("User must be implemented as a Singleton")); }; } public function get loggedIn():Boolean{ if (userID != null){ return ((userID.length > 0)); }; return (false); } public function createUser(_arg1:String, _arg2:String, _arg3:String):void{ _userID = _arg1; _username = _arg2; _countryID = _arg3; if ((((_countryID == null)) || ((_countryID.length == 0)))){ _countryID = "1"; }; } public function createFlashVarsUser(_arg1:DisplayObject, _arg2:Boolean):void{ var _local3:Object = LoaderInfo(_arg1.loaderInfo).parameters; _enableLogin = _arg2; if (_enableLogin == false){ createUser("0", "test", "1"); } else { createUser(_local3.userID, _local3.username, _local3.countryID); }; } public function saveLevels():void{ trace("Saving Levels ", m_levelsUnlocked); m_so.data.level = m_levelsUnlocked; m_so.flush(); } public function loadLevels():Array{ if (m_so.data.level == null){ m_levelsUnlocked = [false, false, false, false, false, false, false, false, false, false]; m_levelsUnlocked[0] = true; } else { m_levelsUnlocked = m_so.data.level; }; return (m_levelsUnlocked); } public function loadScore():int{ if (m_so.data.score == null){ return (0); }; return (int(m_so.data.score)); } public function saveScore():void{ if (m_so.data.score == null){ m_so.data.score = MemoryCrypto.getValue("score"); } else { if (int(MemoryCrypto.getValue("score")) > int(m_so.data.score)){ m_so.data.score = MemoryCrypto.getValue("score"); }; }; m_so.flush(); } public function get username():String{ return (_username); } public function unlockLevel(_arg1:int):void{ if (_arg1 < m_levelsUnlocked.length){ m_levelsUnlocked[_arg1] = true; saveLevels(); }; } public function get userID():String{ return (_userID); } public function get enableLogin():Boolean{ return (_enableLogin); } public function get countryID():String{ return (_countryID); } public static function getInstance():User{ if (_instance == null){ _instance = new User(new SingletonEnforcer()); }; return (_instance); } } }//package net class SingletonEnforcer { private function SingletonEnforcer(){ } }
Section 389
//VideoPlayer (net.VideoPlayer) package net { import flash.events.*; import flash.display.*; import com.malee.events.*; import com.malee.media.*; public class VideoPlayer extends EventDispatcher { private var m_window:Sprite; private var m_player:FLVPlayer; public function VideoPlayer(_arg1:Sprite):void{ m_window = _arg1; initPlayer(); } private function onVideoLoaded(_arg1:MediaEvent):void{ m_player.start(); } public function get flvPlayer():FLVPlayer{ return (m_player); } private function onVideoPlay(_arg1:MediaEvent):void{ } private function initPlayer():void{ m_player = new FLVPlayer(m_window.width, m_window.height); m_player.addEventListener(MediaEvent.CONNECT, onVideoLoaded, false, 0, true); m_player.addEventListener(MediaEvent.PLAY, onVideoPlay, false, 0, true); m_player.addEventListener(MediaEvent.PAUSE, onVideoPause, false, 0, true); m_window.addChild(m_player); } private function onVideoPause(_arg1:MediaEvent):void{ } public function load(_arg1:String):void{ m_player.load(_arg1); } } }//package net
Section 390
//VideoPlayerWrapper (net.VideoPlayerWrapper) package net { import flash.events.*; import flash.display.*; import com.malee.events.*; public class VideoPlayerWrapper extends MovieClip { private var m_window:Sprite; private var m_player:VideoPlayer; private var m_url:String; public static const VIDEO_START:String = "start"; public static const VIDEO_FINISH:String = "finish"; public function VideoPlayerWrapper(_arg1:String, _arg2:Sprite){ m_url = _arg1; m_window = _arg2; initSection(); } private function initWindow():void{ m_window.visible = false; } private function endSection():void{ trace("VideoPlayerWrapper videoFinish"); dispatchEvent(new Event(VideoPlayerWrapper.VIDEO_FINISH)); } private function onVideoStart(_arg1:MediaEvent):void{ m_window.visible = true; dispatchEvent(new Event(VideoPlayerWrapper.VIDEO_START)); } private function onVideoFinish(_arg1:MediaEvent):void{ endSection(); } private function initPlayer():void{ m_player = new VideoPlayer(m_window); m_player.flvPlayer.addEventListener(MediaEvent.START, onVideoStart, false, 0, true); m_player.flvPlayer.addEventListener(MediaEvent.FINISH, onVideoFinish, false, 0, true); } public function initSection():void{ initPlayer(); initWindow(); m_player.load(m_url); } public function destroy():void{ m_player.flvPlayer.close(); if (m_player != null){ m_player.flvPlayer.removeEventListener(MediaEvent.START, onVideoStart); m_player.flvPlayer.removeEventListener(MediaEvent.FINISH, onVideoFinish); }; } } }//package net
Section 391
//MonsterDebugger (nl.demonsters.debugger.MonsterDebugger) package nl.demonsters.debugger { import flash.events.*; import flash.display.*; import flash.utils.*; import flash.net.*; import flash.geom.*; import flash.system.*; public class MonsterDebugger { private const TYPE_VECTOR:String = "Vector"; private const TYPE_BOOLEAN:String = "Boolean"; private const COMMAND_GET_DISPLAYOBJECT:String = "GET_DISPLAYOBJECT"; private const ICON_ROOT:String = "iconRoot"; private const COMMAND_GET_OBJECT:String = "GET_OBJECT"; private const TYPE_XMLLIST:String = "XMLList"; private const COMMAND_TRACE:String = "TRACE"; private const TYPE_DISPLAYOBJECT:String = "DisplayObject"; private const TYPE_XMLVALUE:String = "XMLValue"; private const COMMAND_NOTFOUND:String = "NOTFOUND"; private const COMMAND_MONITOR:String = "MONITOR"; private const ACCESS_METHOD:String = "method"; private const ACCESS_CONSTANT:String = "constant"; private const HIGHLIGHT_BORDER:int = 4; private const TYPE_FUNCTION:String = "Function"; private const TYPE_UINT:String = "uint"; private const TYPE_INT:String = "int"; private const MAX_PACKAGE_BYTES:int = 40000; private const LINE_IN:String = "_debuggerBlue"; private const TYPE_XMLATTRIBUTE:String = "XMLAttribute"; private const COMMAND_SNAPSHOT:String = "SNAPSHOT"; private const ALLOWED_DOMAIN:String = "*"; private const ICON_VARIABLE_READONLY:String = "iconVariableReadonly"; private const ICON_DEFAULT:String = "iconDefault"; private const LINE_OUT:String = "_debuggerRed"; private const COMMAND_BASE:String = "BASE"; private const COMMAND_SHOW_HIGHLIGHT:String = "SHOW_HIGHLIGHT"; private const COMMAND_HIDE_HIGHLIGHT:String = "HIDE_HIGHLIGHT"; private const TYPE_BYTEARRAY:String = "ByteArray"; private const ICON_VARIABLE_WRITEONLY:String = "iconVariableWriteonly"; private const COMMAND_GET_PROPERTIES:String = "GET_PROPERTIES"; private const TYPE_XML:String = "XML"; private const TYPE_XMLNODE:String = "XMLNode"; private const COMMAND_ROOT:String = "ROOT"; private const TYPE_WARNING:String = "Warning"; private const TYPE_VOID:String = "void"; private const PERMISSION_WRITEONLY:String = "writeonly"; private const PERMISSION_READWRITE:String = "readwrite"; private const ICON_VARIABLE:String = "iconVariable"; private const TYPE_BITMAPDATA:String = "BitmapData"; private const TYPE_METHOD:String = "MethodClosure"; private const ICON_XMLATTRIBUTE:String = "iconXMLAttribute"; private const COMMAND_HELLO:String = "HELLO"; private const COMMAND_GET_FUNCTIONS:String = "GET_FUNCTIONS"; private const PERMISSION_READONLY:String = "readonly"; private const ICON_XMLNODE:String = "iconXMLNode"; private const COMMAND_CLEAR_TRACES:String = "CLEAR_TRACES"; private const VERSION:Number = 2.04; private const ACCESS_ACCESSOR:String = "accessor"; private const TYPE_STRING:String = "String"; private const ICON_XMLVALUE:String = "iconXMLValue"; private const COMMAND_SET_PROPERTY:String = "SET_PROPERTY"; private const COMMAND_CALL_METHOD:String = "CALL_METHOD"; private const TYPE_BITMAP:String = "Bitmap"; private const ICON_FUNCTION:String = "iconFunction"; private const HIGHLIGHT_COLOR:uint = 0xFFFF00; private const COMMAND_INSPECT:String = "INSPECT"; private const ICON_WARNING:String = "iconWarning"; private const TYPE_OBJECT:String = "Object"; private const TYPE_NUMBER:String = "Number"; private const TYPE_ARRAY:String = "Array"; private const ACCESS_VARIABLE:String = "variable"; public var _enabled:Boolean;// = true private var lineIn:LocalConnection; private var monitorTime:uint; private var monitor:Timer; private var monitorFrames:uint; private var lineOut:LocalConnection; private var highlight:Sprite;// = null private var monitorSprite:Sprite; private var root:Object;// = null public static const COLOR_WARNING:uint = 0xFF3300; public static const COLOR_NORMAL:uint = 0x111111; public static const COLOR_ERROR:uint = 0xFF0000; private static var instance:MonsterDebugger = null; public function MonsterDebugger(_arg1:Object=null){ var target = _arg1; super(); if (instance == null){ instance = this; lineOut = new LocalConnection(); lineOut.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); lineOut.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); lineOut.addEventListener(StatusEvent.STATUS, statusHandler); lineIn = new LocalConnection(); lineIn.addEventListener(AsyncErrorEvent.ASYNC_ERROR, asyncErrorHandler); lineIn.addEventListener(SecurityErrorEvent.SECURITY_ERROR, securityErrorHandler); lineIn.addEventListener(StatusEvent.STATUS, statusHandler); lineIn.allowDomain(ALLOWED_DOMAIN); lineIn.client = this; monitorTime = getTimer(); monitorFrames = 0; monitorSprite = new Sprite(); monitorSprite.addEventListener(Event.ENTER_FRAME, enterFrameHandler); monitor = new Timer(500); monitor.addEventListener(TimerEvent.TIMER, monitorHandler); monitor.start(); try { lineIn.connect(LINE_IN); } catch(error:ArgumentError) { }; }; if (target != MonsterDebugger.singletonCheck){ instance.root = target; instance.send({text:COMMAND_HELLO, version:VERSION}); }; } private function asyncErrorHandler(_arg1:AsyncErrorEvent):void{ } private function enterFrameHandler(_arg1:Event):void{ if (enabled){ monitorFrames++; }; } private function htmlEscape(_arg1:String):String{ var _local2:XML; if (_arg1){ while (_arg1.indexOf("'") != -1) { _arg1 = _arg1.replace("'", "&apos;"); }; while (_arg1.indexOf("\"") != -1) { _arg1 = _arg1.replace("\"", "&quot;"); }; _local2 = new XML((("<a>" + ??esc_xelem ) + "</a>")); return (_local2.toXMLString().replace(/(^<a>)|(<\/a>$)|(^<a\/>$)/g, "")); //unresolved jump }; return (""); } private function createNode(_arg1:String, _arg2:Object=null, _arg3:Boolean=false):String{ var _local5:*; var _local4 = ""; _local4 = (_local4 + ("<" + _arg1)); if (_arg2){ for (_local5 in _arg2) { _local4 = (_local4 + ((((" " + _local5) + "='") + _arg2[_local5]) + "'")); }; }; if (_arg3){ _local4 = (_local4 + (("></" + _arg1) + ">")); } else { _local4 = (_local4 + ">"); }; return (_local4); } private function htmlUnescape(_arg1:String):String{ var _local2:XML; if (_arg1){ _local2 = <a/> ; _local2.replace(0, _arg1); return (String(_local2)); }; return (""); } private function traceInternal(_arg1:Object, _arg2, _arg3:uint=0x111111, _arg4:Boolean=false, _arg5:int=4):void{ var _local6:XML; if (enabled){ _local6 = XML(parseObject(_arg2, "", _arg4, 1, _arg5)); send({text:COMMAND_TRACE, date:new Date(), target:String(_arg1), xml:_local6, color:_arg3}); }; } private function getObject(_arg1:String="", _arg2:int=0){ var splitted:Array; var i:int; var index:Number; var target = _arg1; var parent = _arg2; var object:* = instance.root; if (target != ""){ splitted = target.split("."); i = 0; while (i < (splitted.length - parent)) { if (splitted[i] != ""){ try { if (splitted[i] == "children()"){ object = object.children(); } else { if (splitted[i].indexOf("getChildAt(") == 0){ index = splitted[i].substring(11, splitted[i].indexOf(")", 11)); object = DisplayObjectContainer(object).getChildAt(index); } else { object = object[splitted[i]]; }; }; } catch(error:ReferenceError) { send({text:COMMAND_NOTFOUND, target:target}); break; }; }; i = (i + 1); }; }; return (object); } private function printObject(_arg1, _arg2:String):String{ var _local3 = ""; if (_arg2 == TYPE_BYTEARRAY){ _local3 = (_arg1["length"] + " bytes"); } else { _local3 = htmlEscape(String(_arg1)); }; return (_local3); } private function clearTracesInternal():void{ if (enabled){ send({text:COMMAND_CLEAR_TRACES}); }; } private function parseXML(_arg1, _arg2:String="", _arg3:int=1, _arg4:int=-1):String{ var _local7:String; var _local5 = ""; var _local6:int; if ((((_arg4 == -1)) || ((_arg3 <= _arg4)))){ if (_arg2.indexOf("@") != -1){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:_arg1, name:"", type:TYPE_XMLATTRIBUTE, value:_arg1, target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if (_arg1.name() == null){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLVALUE, label:((("(" + TYPE_XMLVALUE) + ") = ") + printObject(_arg1, TYPE_XMLVALUE)), name:"", type:TYPE_XMLVALUE, value:printObject(_arg1, TYPE_XMLVALUE), target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if (_arg1.hasSimpleContent()){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLNODE, label:(((_arg1.name() + " (") + TYPE_XMLNODE) + ")"), name:_arg1.name(), type:TYPE_XMLNODE, value:"", target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); if (_arg1 != ""){ _local5 = (_local5 + createNode("node", {icon:ICON_XMLVALUE, label:((("(" + TYPE_XMLVALUE) + ") = ") + printObject(_arg1, TYPE_XMLVALUE)), name:"", type:TYPE_XMLVALUE, value:printObject(_arg1, TYPE_XMLVALUE), target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); }; _local6 = 0; while (_local6 < _arg1.attributes().length()) { _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:((((("@" + _arg1.attributes()[_local6].name()) + " (") + TYPE_XMLATTRIBUTE) + ") = ") + _arg1.attributes()[_local6]), name:"", type:TYPE_XMLATTRIBUTE, value:_arg1.attributes()[_local6], target:(((_arg2 + ".") + "@") + _arg1.attributes()[_local6].name()), access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); _local6++; }; _local5 = (_local5 + createNode("/node")); } else { _local5 = (_local5 + createNode("node", {icon:ICON_XMLNODE, label:(((_arg1.name() + " (") + TYPE_XMLNODE) + ")"), name:_arg1.name(), type:TYPE_XMLNODE, value:"", target:_arg2, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); _local6 = 0; while (_local6 < _arg1.attributes().length()) { _local5 = (_local5 + createNode("node", {icon:ICON_XMLATTRIBUTE, label:((((("@" + _arg1.attributes()[_local6].name()) + " (") + TYPE_XMLATTRIBUTE) + ") = ") + _arg1.attributes()[_local6]), name:"", type:TYPE_XMLATTRIBUTE, value:_arg1.attributes()[_local6], target:(((_arg2 + ".") + "@") + _arg1.attributes()[_local6].name()), access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); _local6++; }; _local6 = 0; while (_local6 < _arg1.children().length()) { _local7 = ((((_arg2 + ".") + "children()") + ".") + _local6); _local5 = (_local5 + parseXML(_arg1.children()[_local6], _local7, (_arg3 + 1), _arg4)); _local6++; }; _local5 = (_local5 + createNode("/node")); }; }; }; }; return (_local5); } private function send(_arg1:Object):void{ var item:ByteArray; var dataPackages:Array; var i:int; var bytesAvailable:int; var offset:int; var total:int; var length:int; var tmp:ByteArray; var data = _arg1; if (enabled){ item = new ByteArray(); item.writeObject(data); item.compress(); dataPackages = new Array(); i = 0; if (item.length > MAX_PACKAGE_BYTES){ bytesAvailable = item.length; offset = 0; total = Math.ceil((item.length / MAX_PACKAGE_BYTES)); i = 0; while (i < total) { length = bytesAvailable; if (length > MAX_PACKAGE_BYTES){ length = MAX_PACKAGE_BYTES; }; tmp = new ByteArray(); tmp.writeBytes(item, offset, length); dataPackages.push({total:total, nr:(i + 1), bytes:tmp}); bytesAvailable = (bytesAvailable - length); offset = (offset + length); i = (i + 1); }; } else { dataPackages.push({total:1, nr:1, bytes:item}); }; i = 0; while (i < dataPackages.length) { try { lineOut.send(LINE_OUT, "onReceivedData", dataPackages[i]); } catch(error:Error) { break; }; i = (i + 1); }; }; } private function securityErrorHandler(_arg1:SecurityErrorEvent):void{ } private function monitorHandler(_arg1:TimerEvent):void{ var _local2:uint; var _local3:uint; var _local4:uint; var _local5:uint; if (enabled){ _local2 = System.totalMemory; _local3 = getTimer(); _local4 = (_local3 - monitorTime); _local5 = ((monitorFrames / _local4) * 1000); monitorFrames = 0; monitorTime = _local3; send({text:COMMAND_MONITOR, memory:_local2, fps:_local5, time:_local3, date:new Date()}); }; } private function isDisplayObject(_arg1):Boolean{ return ((((_arg1 is DisplayObject)) || ((_arg1 is DisplayObjectContainer)))); } private function snapshotInternal(_arg1:DisplayObject, _arg2:uint=0x111111):void{ var _local3:BitmapData; var _local4:ByteArray; if (enabled){ _local3 = new BitmapData(_arg1.width, _arg1.height); _local3.draw(_arg1); _local4 = _local3.getPixels(new Rectangle(0, 0, _arg1.width, _arg1.height)); send({text:COMMAND_SNAPSHOT, date:new Date(), target:String(_arg1), bytes:_local4, width:_arg1.width, height:_arg1.height, color:_arg2}); _local3.dispose(); _local4 = null; }; } public function onReceivedData(_arg1:ByteArray):void{ var object:*; var method:Function; var xml:XML; var command:Object; var bounds:Rectangle; var data = _arg1; if (enabled){ data.uncompress(); command = data.readObject(); switch (command["text"]){ case COMMAND_HELLO: send({text:COMMAND_HELLO, version:VERSION}); break; case COMMAND_ROOT: object = getObject("", 0); if (object != null){ xml = XML(parseObject(object, "", command["functions"], 1, 2)); send({text:COMMAND_ROOT, xml:xml}); if (isDisplayObject(object)){ xml = XML(parseDisplayObject(object, "", command["functions"], 1, 2)); send({text:COMMAND_BASE, xml:xml}); }; }; break; case COMMAND_GET_OBJECT: object = getObject(command["target"], 0); if (object != null){ xml = XML(parseObject(object, command["target"], command["functions"], 1, 2)); send({text:COMMAND_GET_OBJECT, xml:xml}); }; break; case COMMAND_GET_DISPLAYOBJECT: object = getObject(command["target"], 0); if (object != null){ if (isDisplayObject(object)){ xml = XML(parseDisplayObject(object, command["target"], command["functions"], 1, 2)); send({text:COMMAND_GET_DISPLAYOBJECT, xml:xml}); }; }; break; case COMMAND_GET_PROPERTIES: object = getObject(command["target"], 0); if (object != null){ xml = XML(parseObject(object, command["target"], false, 1, 1)); send({text:COMMAND_GET_PROPERTIES, xml:xml}); }; break; case COMMAND_GET_FUNCTIONS: object = getObject(command["target"], 0); if (object != null){ xml = XML(getFunctions(object, command["target"])); send({text:COMMAND_GET_FUNCTIONS, xml:xml}); }; break; case COMMAND_SET_PROPERTY: object = getObject(command["target"], 1); if (object != null){ try { object[command["name"]] = command["value"]; send({text:COMMAND_SET_PROPERTY, value:object[command["name"]]}); } catch(error1:Error) { send({text:COMMAND_NOTFOUND, target:command["target"]}); break; }; }; break; case COMMAND_CALL_METHOD: method = getObject(command["target"], 0); if (method != null){ if (command["returnType"] == TYPE_VOID){ method.apply(this, command["arguments"]); } else { object = method.apply(this, command["arguments"]); xml = XML(parseObject(object, "", false, 1, 4)); send({text:COMMAND_CALL_METHOD, id:command["id"], xml:xml}); }; }; break; case COMMAND_SHOW_HIGHLIGHT: if (highlight != null){ try { highlight.parent.removeChild(highlight); highlight = null; } catch(error2:Error) { }; }; object = getObject(command["target"], 0); if (((isDisplayObject(object)) && (isDisplayObject(object["parent"])))){ bounds = object.getBounds(object["parent"]); highlight = new Sprite(); highlight.x = 0; highlight.y = 0; highlight.graphics.beginFill(0, 0); highlight.graphics.lineStyle(HIGHLIGHT_BORDER, HIGHLIGHT_COLOR); highlight.graphics.drawRect(bounds.x, bounds.y, bounds.width, bounds.height); highlight.graphics.endFill(); highlight.mouseChildren = false; highlight.mouseEnabled = false; try { object["parent"].addChild(highlight); } catch(error3:Error) { highlight = null; }; }; break; case COMMAND_HIDE_HIGHLIGHT: if (highlight != null){ try { highlight.parent.removeChild(highlight); highlight = null; } catch(error4:Error) { }; }; break; }; }; } private function parseDisplayObject(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:int=1, _arg5:int=4):String{ var xml:String; var childs:Array; var child:DisplayObject; var ojectName:String; var msg:String; var object = _arg1; var target = _arg2; var functions = _arg3; var currentDepth = _arg4; var maxDepth = _arg5; xml = ""; var childType = ""; var childIcon = ""; var childName = ""; var childTarget = ""; var childChildren = ""; var i:int; var n:int; if ((((maxDepth == -1)) || ((currentDepth <= maxDepth)))){ if (currentDepth == 1){ xml = (xml + createNode("root")); }; try { if (currentDepth == 1){ ojectName = DisplayObject(object).name; if ((((ojectName == null)) || ((ojectName == "null")))){ ojectName = "DisplayObject"; }; xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + ojectName) + ")"), target:target})); }; childs = new Array(); i = 0; while (i < DisplayObjectContainer(object).numChildren) { childs.push(DisplayObjectContainer(object).getChildAt(i)); i = (i + 1); }; i = 0; while (i < childs.length) { child = childs[i]; childName = describeType(child).@name; childType = parseType(childName); childTarget = ((((target + ".") + "getChildAt(") + i) + ")"); childIcon = ((child is DisplayObjectContainer)) ? ICON_ROOT : ICON_VARIABLE; childChildren = ((child is DisplayObjectContainer)) ? String(DisplayObjectContainer(child).numChildren) : ""; xml = (xml + createNode("node", {icon:childIcon, label:((((child.name + " (") + childType) + ") ") + childChildren), name:child.name, type:childType, value:printObject(child, childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseDisplayObject(child, childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error13:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } catch(error14:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); send({text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}); }; if (currentDepth == 1){ xml = (xml + createNode("/root")); }; }; return (xml); } private function parseType(_arg1:String):String{ var _local2:String = _arg1; if (_arg1.lastIndexOf("::") != -1){ _local2 = _arg1.substring((_arg1.lastIndexOf("::") + 2), _arg1.length); }; if (_local2.lastIndexOf(".") != -1){ _local2 = _local2.substring(0, _local2.lastIndexOf(".")); }; if (_local2 == TYPE_METHOD){ _local2 = TYPE_FUNCTION; }; return (htmlEscape(_local2)); } private function parseObject(_arg1, _arg2:String="", _arg3:Boolean=false, _arg4:int=1, _arg5:int=4):String{ var xml:String; var isXMLString:XML; var keys:Array; var key:*; var properties:Array; var prop:*; var variables:XMLList; var accessors:XMLList; var constants:XMLList; var methods:XMLList; var variablesArr:Array; var methodsArr:Array; var double:Boolean; var permission:String; var icon:String; var returnType:String; var parameters:XMLList; var args:Array; var msg:String; var object = _arg1; var target = _arg2; var functions = _arg3; var currentDepth = _arg4; var maxDepth = _arg5; xml = ""; var childType = ""; var childName = ""; var childTarget = ""; var description:XML = new XML(); var type = ""; var base = ""; var isXML:Boolean; var i:int; var n:int; if ((((maxDepth == -1)) || ((currentDepth <= maxDepth)))){ if (currentDepth == 1){ xml = (xml + createNode("root")); }; try { description = describeType(object); type = parseType(description.@name); base = parseType(description.@base); if (((functions) && ((base == TYPE_FUNCTION)))){ xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:"(Function)", name:"", type:TYPE_FUNCTION, value:"", target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { if ((((type == TYPE_ARRAY)) || ((type == TYPE_VECTOR)))){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("length" + " (") + TYPE_UINT) + ") = ") + object["length"]), name:"length", type:TYPE_UINT, value:object["length"], target:((target + ".") + "length"), access:ACCESS_VARIABLE, permission:PERMISSION_READONLY}, true)); keys = new Array(); for (key in object) { keys.push(key); }; keys.sort(); i = 0; while (i < keys.length) { childType = parseType(describeType(object[keys[i]]).@name); childTarget = ((target + ".") + String(keys[i])); if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[keys[i]]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error1:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((((("[" + keys[i]) + "] (") + childType) + ") = ") + printObject(object[keys[i]], childType)), name:(("[" + keys[i]) + "]"), type:childType, value:printObject(object[keys[i]], childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("[" + keys[i]) + "] (") + childType) + ")"), name:(("[" + keys[i]) + "]"), type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error2:Error) { }; } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("[" + keys[i]) + "] (") + childType) + ")"), name:(("[" + keys[i]) + "]"), type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseObject(object[keys[i]], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error3:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_OBJECT){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; properties = new Array(); for (prop in object) { properties.push(prop); }; properties.sort(); i = 0; while (i < properties.length) { childType = parseType(describeType(object[properties[i]]).@name); childTarget = ((target + ".") + properties[i]); if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[properties[i]]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error4:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((((properties[i] + " (") + childType) + ") = ") + printObject(object[properties[i]], childType)), name:properties[i], type:childType, value:printObject(object[properties[i]], childType), target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((properties[i] + " (") + childType) + ")"), name:properties[i], type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error5:Error) { }; } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((properties[i] + " (") + childType) + ")"), name:properties[i], type:childType, value:"", target:childTarget, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE})); try { xml = (xml + parseObject(object[properties[i]], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error6:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_XML){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + parseXML(object, ((target + ".") + "cildren()"), currentDepth, maxDepth)); if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if (type == TYPE_XMLLIST){ if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(((("length" + " (") + TYPE_UINT) + ") = ") + object.length()), name:"length", type:TYPE_UINT, value:object.length(), target:((target + ".") + "length"), access:ACCESS_VARIABLE, permission:PERMISSION_READONLY}, true)); i = 0; while (i < object.length()) { xml = (xml + parseXML(object[i], (((target + ".") + String(i)) + ".children()"), currentDepth, maxDepth)); i = (i + 1); }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; } else { if ((((((((((type == TYPE_STRING)) || ((type == TYPE_BOOLEAN)))) || ((type == TYPE_NUMBER)))) || ((type == TYPE_INT)))) || ((type == TYPE_UINT)))){ isXML = false; isXMLString = new XML(); if (type == TYPE_STRING){ try { isXMLString = new XML(object); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error7:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:((("(" + type) + ") = ") + printObject(object, type)), name:"", type:type, value:printObject(object, type), target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, true)); } else { xml = (xml + createNode("node", {icon:ICON_VARIABLE, label:(("(" + type) + ")"), name:"", type:type, value:"", target:target, access:ACCESS_VARIABLE, permission:PERMISSION_READWRITE}, false)); xml = (xml + parseXML(isXMLString, ((target + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error8:Error) { }; } else { if (currentDepth == 1){ xml = (xml + createNode("node", {icon:ICON_ROOT, label:(("(" + type) + ")"), target:target})); }; variables = description..variable; accessors = description..accessor; constants = description..constant; methods = description..method; variablesArr = new Array(); methodsArr = new Array(); double = false; permission = ""; icon = ""; double = false; i = 0; while (i < variables.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == variables[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:variables[i].@name, xml:variables[i], access:ACCESS_VARIABLE}); }; i = (i + 1); }; double = false; i = 0; while (i < accessors.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == accessors[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:accessors[i].@name, xml:accessors[i], access:ACCESS_ACCESSOR}); }; i = (i + 1); }; double = false; i = 0; while (i < constants.length()) { n = 0; while (n < variablesArr.length) { if (variablesArr[n].name == constants[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ variablesArr.push({name:constants[i].@name, xml:constants[i], access:ACCESS_CONSTANT}); }; i = (i + 1); }; double = false; i = 0; while (i < methods.length()) { n = 0; while (n < methodsArr.length) { if (methodsArr[n].name == methods[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ methodsArr.push({name:methods[i].@name, xml:methods[i], access:ACCESS_METHOD}); }; i = (i + 1); }; variablesArr.sortOn("name"); methodsArr.sortOn("name"); i = 0; while (i < variablesArr.length) { childType = parseType(variablesArr[i].xml.@type); childName = variablesArr[i].xml.@name; childTarget = ((target + ".") + childName); permission = PERMISSION_READWRITE; icon = ICON_VARIABLE; if (variablesArr[i].access == ACCESS_CONSTANT){ permission = PERMISSION_READONLY; icon = ICON_VARIABLE_READONLY; }; if (variablesArr[i].xml.@access == PERMISSION_READONLY){ permission = PERMISSION_READONLY; icon = ICON_VARIABLE_READONLY; }; if (variablesArr[i].xml.@access == PERMISSION_WRITEONLY){ permission = PERMISSION_WRITEONLY; icon = ICON_VARIABLE_WRITEONLY; }; if (permission != PERMISSION_WRITEONLY){ if ((((((((((((childType == TYPE_STRING)) || ((childType == TYPE_BOOLEAN)))) || ((childType == TYPE_NUMBER)))) || ((childType == TYPE_INT)))) || ((childType == TYPE_UINT)))) || ((childType == TYPE_FUNCTION)))){ isXML = false; isXMLString = new XML(); if (childType == TYPE_STRING){ try { isXMLString = new XML(object[childName]); if (((!(isXMLString.hasSimpleContent())) && ((isXMLString.children().length() > 0)))){ isXML = true; }; } catch(error9:TypeError) { }; }; try { if (!isXML){ xml = (xml + createNode("node", {icon:icon, label:((((childName + " (") + childType) + ") = ") + printObject(object[childName], childType)), name:childName, type:childType, value:printObject(object[childName], childType), target:childTarget, access:variablesArr[i].access, permission:permission}, true)); } else { xml = (xml + createNode("node", {icon:icon, label:(((childName + " (") + childType) + ")"), name:childName, type:childType, value:"", target:childTarget, access:variablesArr[i].access, permission:permission}, false)); xml = (xml + parseXML(isXMLString, ((childTarget + ".") + "cildren()"), currentDepth, maxDepth)); xml = (xml + createNode("/node")); }; } catch(error10:Error) { }; } else { xml = (xml + createNode("node", {icon:icon, label:(((childName + " (") + childType) + ")"), name:childName, type:childType, target:childTarget, access:variablesArr[i].access, permission:permission})); try { xml = (xml + parseObject(object[childName], childTarget, functions, (currentDepth + 1), maxDepth)); } catch(error11:Error) { xml = (xml + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Unreadable", name:"Unreadable"}, true)); }; xml = (xml + createNode("/node")); }; }; i = (i + 1); }; if (functions){ i = 0; while (i < methodsArr.length) { childType = TYPE_FUNCTION; childName = methodsArr[i].xml.@name; childTarget = ((target + ".") + childName); returnType = parseType(methodsArr[i].xml.@returnType); parameters = methodsArr[i].xml..parameter; args = new Array(); n = 0; while (n < parameters.length()) { args.push(parseType(parameters[n].@type)); n = (n + 1); }; xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:((((childName + "(") + args.join(", ")) + "):") + returnType), args:args.join(", "), name:childName, type:TYPE_FUNCTION, access:variablesArr[i].access, returnType:returnType, target:childTarget}, true)); i = (i + 1); }; }; if (currentDepth == 1){ xml = (xml + createNode("/node")); }; }; }; }; }; }; }; } catch(error12:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); send({text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}); }; if (currentDepth == 1){ xml = (xml + createNode("/root")); }; }; return (xml); } private function getFunctions(_arg1, _arg2:String=""):String{ var description:XML; var type:String; var childType:String; var childName:String; var childTarget:String; var methods:XMLList; var methodsArr:Array; var returnType:String; var parameters:XMLList; var args:Array; var argsString:String; var optional:Boolean; var double:Boolean; var i:int; var n:int; var msg:String; var object = _arg1; var target = _arg2; var xml = ""; xml = (xml + createNode("root")); try { description = describeType(object); type = parseType(description.@name); childType = ""; childName = ""; childTarget = ""; methods = description..method; methodsArr = new Array(); optional = false; double = false; i = 0; n = 0; xml = (xml + createNode("node", {icon:ICON_DEFAULT, label:(("(" + type) + ")"), target:target})); i = 0; while (i < methods.length()) { n = 0; while (n < methodsArr.length) { if (methodsArr[n].name == methods[i].@name){ double = true; break; }; n = (n + 1); }; if (!double){ methodsArr.push({name:methods[i].@name, xml:methods[i], access:ACCESS_METHOD}); }; i = (i + 1); }; methodsArr.sortOn("name"); i = 0; while (i < methodsArr.length) { childType = TYPE_FUNCTION; childName = methodsArr[i].xml.@name; childTarget = ((target + ".") + childName); returnType = parseType(methodsArr[i].xml.@returnType); parameters = methodsArr[i].xml..parameter; args = new Array(); argsString = ""; optional = false; n = 0; while (n < parameters.length()) { if ((((parameters[n].@optional == "true")) && (!(optional)))){ optional = true; args.push("["); }; args.push(parseType(parameters[n].@type)); n = (n + 1); }; if (optional){ args.push("]"); }; argsString = args.join(", "); argsString = argsString.replace("[, ", "["); argsString = argsString.replace(", ]", "]"); xml = (xml + createNode("node", {icon:ICON_FUNCTION, label:((((childName + "(") + argsString) + "):") + returnType), args:argsString, name:childName, type:TYPE_FUNCTION, access:ACCESS_METHOD, returnType:returnType, target:childTarget})); n = 0; while (n < parameters.length()) { xml = (xml + createNode("parameter", {type:parseType(parameters[n].@type), index:parameters[n].@index, optional:parameters[n].@optional}, true)); n = (n + 1); }; xml = (xml + createNode("/node")); i = (i + 1); }; xml = (xml + createNode("/node")); } catch(error:Error) { msg = ""; msg = (msg + createNode("root")); msg = (msg + createNode("node", {icon:ICON_WARNING, type:TYPE_WARNING, label:"Not found", name:"Not found"}, true)); msg = (msg + createNode("/root")); send({text:COMMAND_NOTFOUND, target:target, xml:XML(msg)}); }; xml = (xml + createNode("/root")); return (xml); } private function statusHandler(_arg1:StatusEvent):void{ } public static function get enabled():Boolean{ if (instance == null){ instance = new MonsterDebugger(null); }; return (instance._enabled); } public static function snapshot(_arg1:DisplayObject, _arg2:uint=0x111111):void{ if (instance == null){ instance = new MonsterDebugger(MonsterDebugger.singletonCheck); }; if (MonsterDebugger.enabled){ instance.snapshotInternal(_arg1, _arg2); }; } public static function trace(_arg1:Object, _arg2, _arg3:uint=0x111111, _arg4:Boolean=false, _arg5:int=4):void{ if (instance == null){ instance = new MonsterDebugger(MonsterDebugger.singletonCheck); }; if (MonsterDebugger.enabled){ instance.traceInternal(_arg1, _arg2, _arg3, _arg4, _arg5); }; } public static function set enabled(_arg1:Boolean):void{ if (instance == null){ instance = new MonsterDebugger(null); }; instance._enabled = _arg1; } public static function inspect(_arg1:Object):void{ var _local2:*; var _local3:XML; if (((!((instance == null))) && (!((_arg1 == null))))){ instance.root = _arg1; _local2 = instance.getObject("", 0); if (_local2 != null){ _local3 = XML(instance.parseObject(_local2, "", false, 1, 2)); instance.send({text:instance.COMMAND_INSPECT, xml:_local3}); if (instance.isDisplayObject(_local2)){ _local3 = XML(instance.parseDisplayObject(_local2, "", false, 1, 2)); instance.send({text:instance.COMMAND_BASE, xml:_local3}); }; }; }; } public static function clearTraces():void{ if (instance == null){ instance = new MonsterDebugger(MonsterDebugger.singletonCheck); }; if (MonsterDebugger.enabled){ instance.clearTracesInternal(); }; } private static function singletonCheck():void{ } } }//package nl.demonsters.debugger
Section 392
//Destroyable (org.casalib.core.Destroyable) package org.casalib.core { public class Destroyable implements IDestroyable { protected var _isDestroyed:Boolean; public function get destroyed():Boolean{ return (this._isDestroyed); } public function destroy():void{ this._isDestroyed = true; } } }//package org.casalib.core
Section 393
//IDestroyable (org.casalib.core.IDestroyable) package org.casalib.core { public interface IDestroyable { function get destroyed():Boolean; function destroy():void; } }//package org.casalib.core
Section 394
//CasaBitmap (org.casalib.display.CasaBitmap) package org.casalib.display { import flash.display.*; import org.casalib.events.*; import org.casalib.core.*; public class CasaBitmap extends Bitmap implements IRemovableEventDispatcher, IDestroyable { protected var _isDestroyed:Boolean; protected var _listenerManager:ListenerManager; public function CasaBitmap(_arg1:BitmapData=null, _arg2:String="auto", _arg3:Boolean=false){ super(_arg1, _arg2, _arg3); this._listenerManager = ListenerManager.getManager(this); } public function destroy():void{ this.removeEventListeners(); this._listenerManager.destroy(); this._isDestroyed = true; if (this.parent != null){ this.parent.removeChild(this); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function removeEventsForListener(_arg1:Function):void{ this._listenerManager.removeEventsForListener(_arg1); } public function removeEventListeners():void{ this._listenerManager.removeEventListeners(); } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ super.removeEventListener(_arg1, _arg2, _arg3); this._listenerManager.removeEventListener(_arg1, _arg2, _arg3); } public function removeEventsForType(_arg1:String):void{ this._listenerManager.removeEventsForType(_arg1); } public function get destroyed():Boolean{ return (this._isDestroyed); } } }//package org.casalib.display
Section 395
//CasaSprite (org.casalib.display.CasaSprite) package org.casalib.display { import flash.display.*; import org.casalib.events.*; import org.casalib.core.*; public class CasaSprite extends Sprite implements IRemovableEventDispatcher, IDestroyable { protected var _isDestroyed:Boolean; protected var _listenerManager:ListenerManager; public function CasaSprite(){ this._listenerManager = ListenerManager.getManager(this); } public function destroy():void{ this.removeEventListeners(); this._listenerManager.destroy(); this._isDestroyed = true; if (this.parent != null){ this.parent.removeChild(this); }; } override public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ super.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); this._listenerManager.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } public function removeEventsForListener(_arg1:Function):void{ this._listenerManager.removeEventsForListener(_arg1); } public function removeEventListeners():void{ this._listenerManager.removeEventListeners(); } override public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ super.removeEventListener(_arg1, _arg2, _arg3); this._listenerManager.removeEventListener(_arg1, _arg2, _arg3); } public function removeEventsForType(_arg1:String):void{ this._listenerManager.removeEventsForType(_arg1); } public function get destroyed():Boolean{ return (this._isDestroyed); } } }//package org.casalib.display
Section 396
//IRemovableEventDispatcher (org.casalib.events.IRemovableEventDispatcher) package org.casalib.events { import flash.events.*; public interface IRemovableEventDispatcher extends IEventDispatcher { function removeEventsForListener(_arg1:Function):void; function removeEventListeners():void; function removeEventsForType(_arg1:String):void; } }//package org.casalib.events
Section 397
//ListenerManager (org.casalib.events.ListenerManager) package org.casalib.events { import flash.events.*; import flash.utils.*; import org.casalib.core.*; public class ListenerManager extends Destroyable implements IRemovableEventDispatcher { protected var _blockRequest:Boolean; protected var _eventDispatcher:IEventDispatcher; protected var _events:Array; protected static var _proxyMap:Dictionary; public function ListenerManager(_arg1:EventInfo, _arg2:IEventDispatcher){ this._eventDispatcher = _arg2; this._events = new Array(); } public function dispatchEvent(_arg1:Event):Boolean{ return (this._eventDispatcher.dispatchEvent(_arg1)); } public function willTrigger(_arg1:String):Boolean{ return (this._eventDispatcher.willTrigger(_arg1)); } public function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (this._blockRequest){ return; }; var _local4:EventInfo = new EventInfo(_arg1, _arg2, _arg3); var _local5:int = this._events.length; while (_local5--) { if (this._events[_local5].equals(_local4)){ this._events.splice(_local5, 1); }; }; } public function removeEventListeners():void{ var _local2:EventInfo; this._blockRequest = true; var _local1:int = this._events.length; while (_local1--) { _local2 = this._events.splice(_local1, 1)[0]; this._eventDispatcher.removeEventListener(_local2.type, _local2.listener, _local2.useCapture); }; this._blockRequest = false; } public function removeEventsForListener(_arg1:Function):void{ var _local3:EventInfo; this._blockRequest = true; var _local2:int = this._events.length; while (_local2--) { _local3 = this._events[_local2]; if (_local3.listener == _arg1){ this._events.splice(_local2, 1); this._eventDispatcher.removeEventListener(_local3.type, _local3.listener, _local3.useCapture); }; }; this._blockRequest = false; } public function hasEventListener(_arg1:String):Boolean{ return (this._eventDispatcher.hasEventListener(_arg1)); } override public function destroy():void{ this.removeEventListeners(); delete ListenerManager._proxyMap[this._eventDispatcher]; this._eventDispatcher = null; super.destroy(); } public function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=false):void{ var _local6:EventInfo = new EventInfo(_arg1, _arg2, _arg3); var _local7:int = this._events.length; while (_local7--) { if (this._events[_local7].equals(_local6)){ return; }; }; this._events.push(_local6); } public function removeEventsForType(_arg1:String):void{ var _local3:EventInfo; this._blockRequest = true; var _local2:int = this._events.length; while (_local2--) { _local3 = this._events[_local2]; if (_local3.type == _arg1){ this._events.splice(_local2, 1); this._eventDispatcher.removeEventListener(_local3.type, _local3.listener, _local3.useCapture); }; }; this._blockRequest = false; } public static function getManager(_arg1:IEventDispatcher):ListenerManager{ if (ListenerManager._proxyMap == null){ ListenerManager._proxyMap = new Dictionary(); }; if (ListenerManager._proxyMap[_arg1] == null){ ListenerManager._proxyMap[_arg1] = new ListenerManager(new EventInfo(null, null, false), _arg1); }; return (ListenerManager._proxyMap[_arg1]); } } }//package org.casalib.events class EventInfo { public var listener:Function; public var type:String; public var useCapture:Boolean; private function EventInfo(_arg1:String, _arg2:Function, _arg3:Boolean){ this.type = _arg1; this.listener = _arg2; this.useCapture = _arg3; } public function equals(_arg1:EventInfo):Boolean{ return ((((((this.type == _arg1.type)) && ((this.listener == _arg1.listener)))) && ((this.useCapture == _arg1.useCapture)))); } }
Section 398
//Percent (org.casalib.math.Percent) package org.casalib.math { public class Percent { protected var _percent:Number; public function Percent(_arg1:Number=0, _arg2:Boolean=true){ if (_arg2){ this.decimalPercentage = _arg1; } else { this.percentage = _arg1; }; } public function set percentage(_arg1:Number):void{ this._percent = (_arg1 * 0.01); } public function clone():Percent{ return (new Percent(this.decimalPercentage)); } public function get percentage():Number{ return ((100 * this._percent)); } public function get decimalPercentage():Number{ return (this._percent); } public function set decimalPercentage(_arg1:Number):void{ this._percent = _arg1; } public function toString():String{ return (this.decimalPercentage.toString()); } public function equals(_arg1:Percent):Boolean{ return ((this.decimalPercentage == _arg1.decimalPercentage)); } } }//package org.casalib.math
Section 399
//NumberUtil (org.casalib.util.NumberUtil) package org.casalib.util { import org.casalib.math.*; public class NumberUtil { public static function interpolate(_arg1:Percent, _arg2:Number, _arg3:Number):Number{ return ((_arg2 + ((_arg3 - _arg2) * _arg1.decimalPercentage))); } public static function isEven(_arg1:Number):Boolean{ return (((_arg1 & 1) == 0)); } public static function isOdd(_arg1:Number):Boolean{ return (!(NumberUtil.isEven(_arg1))); } public static function constrain(_arg1:Number, _arg2:Number, _arg3:Number):Number{ return (Math.min(Math.max(_arg1, Math.min(_arg2, _arg3)), Math.max(_arg2, _arg3))); } public static function roundDecimalToPlace(_arg1:Number, _arg2:uint):Number{ var _local3:Number = Math.pow(10, _arg2); return ((Math.round((_arg1 * _local3)) / _local3)); } public static function max(_arg1, _arg2):Number{ if (((((isNaN(_arg1)) && (isNaN(_arg2)))) || ((((_arg1 == null)) && ((_arg2 == null)))))){ return (NaN); }; if ((((_arg1 == null)) || ((_arg2 == null)))){ return (((_arg2)==null) ? _arg1 : _arg2); }; if (((isNaN(_arg1)) || (isNaN(_arg2)))){ return ((isNaN(_arg2)) ? _arg1 : _arg2); }; return (Math.max(_arg1, _arg2)); } public static function getOrdinalSuffix(_arg1:int):String{ if ((((_arg1 >= 10)) && ((_arg1 <= 20)))){ return ("th"); }; switch ((_arg1 % 10)){ case 0: case 4: case 5: case 6: case 7: case 8: case 9: return ("th"); case 3: return ("rd"); case 2: return ("nd"); case 1: return ("st"); default: return (""); }; } public static function normalize(_arg1:Number, _arg2:Number, _arg3:Number):Percent{ return (new Percent(((_arg1 - _arg2) / (_arg3 - _arg2)))); } public static function loopIndex(_arg1:int, _arg2:uint):uint{ if (_arg1 < 0){ _arg1 = (_arg2 + (_arg1 % _arg2)); }; if (_arg1 >= _arg2){ return ((_arg1 % _arg2)); }; return (_arg1); } public static function randomWithinRange(_arg1:Number, _arg2:Number):Number{ return ((_arg1 + (Math.random() * (_arg2 - _arg1)))); } public static function min(_arg1, _arg2):Number{ if (((((isNaN(_arg1)) && (isNaN(_arg2)))) || ((((_arg1 == null)) && ((_arg2 == null)))))){ return (NaN); }; if ((((_arg1 == null)) || ((_arg2 == null)))){ return (((_arg2)==null) ? _arg1 : _arg2); }; if (((isNaN(_arg1)) || (isNaN(_arg2)))){ return ((isNaN(_arg2)) ? _arg1 : _arg2); }; return (Math.min(_arg1, _arg2)); } public static function isInteger(_arg1:Number):Boolean{ return (((_arg1 % 1) == 0)); } public static function isPrime(_arg1:Number):Boolean{ if ((((_arg1 == 1)) || ((_arg1 == 2)))){ return (true); }; if (NumberUtil.isEven(_arg1)){ return (false); }; var _local2:Number = Math.sqrt(_arg1); var _local3:Number = 3; while (_local3 <= _local2) { if ((_arg1 % _local3) == 0){ return (false); }; _local3++; }; return (true); } public static function randomIntegerWithinRange(_arg1:int, _arg2:int):int{ return (Math.round(NumberUtil.randomWithinRange(_arg1, _arg2))); } public static function format(_arg1:Number, _arg2:uint, _arg3:String=null, _arg4:String=null):String{ var _local7:Array; var _local8:uint; var _local9:uint; var _local10:String; var _local5:String = _arg1.toString(); var _local6:uint = _local5.length; if (_arg3 != null){ _local7 = _local5.split(""); _local8 = 3; _local9 = _local7.length; while (--_local9 > 0) { --_local8; if (_local8 == 0){ _local8 = 3; _local7.splice(_local9, 0, _arg3); }; }; _local5 = _local7.join(""); }; if (_arg2 != 0){ if (_local6 < _arg2){ _arg2 = (_arg2 - _local6); _local10 = ((_arg4)==null) ? "0" : _arg4; while (_arg2--) { _local5 = (_local10 + _local5); }; }; }; return (_local5); } public static function addLeadingZero(_arg1:Number):String{ return (((_arg1)<10) ? ("0" + _arg1) : _arg1.toString()); } public static function map(_arg1:Number, _arg2:Number, _arg3:Number, _arg4:Number, _arg5:Number):Number{ return (NumberUtil.interpolate(NumberUtil.normalize(_arg1, _arg2, _arg3), _arg4, _arg5)); } public static function createStepsBetween(_arg1:Number, _arg2:Number, _arg3:Number):Array{ _arg3++; var _local4:uint; var _local5:Array = new Array(); var _local6:Number = ((_arg2 - _arg1) / _arg3); while (++_local4 < _arg3) { _local5.push(((_local4 * _local6) + _arg1)); }; return (_local5); } public static function isBetween(_arg1:Number, _arg2:Number, _arg3:Number):Boolean{ return (!((((_arg1 < Math.min(_arg2, _arg3))) || ((_arg1 > Math.max(_arg2, _arg3)))))); } } }//package org.casalib.util
Section 400
//ObjectUtil (org.casalib.util.ObjectUtil) package org.casalib.util { import flash.utils.*; public class ObjectUtil { public static function isNull(_arg1:Object):Boolean{ return ((_arg1 === null)); } public static function isEmpty(_arg1):Boolean{ var _local2:String; if (_arg1 == undefined){ return (true); }; if ((_arg1 is Number)){ return (isNaN(_arg1)); }; if ((((_arg1 is Array)) || ((_arg1 is String)))){ return ((_arg1.length == 0)); }; if ((_arg1 is Object)){ for (_local2 in _arg1) { return (false); }; return (true); }; return (false); } public static function isUndefined(_arg1:Object):Boolean{ return ((_arg1 is undefined)); } public static function getKeys(_arg1:Object):Array{ var _local3:String; var _local2:Array = new Array(); for (_local3 in _arg1) { _local2.push(_local3); }; return (_local2); } public static function clone(_arg1:Object):Object{ var _local2:ByteArray = new ByteArray(); _local2.writeObject(_arg1); _local2.position = 0; return (_local2.readObject()); } public static function contains(_arg1:Object, _arg2:Object):Boolean{ var _local3:String; for (_local3 in _arg1) { if (_arg1[_local3] == _arg2){ return (true); }; }; return (false); } } }//package org.casalib.util
Section 401
//StageReference (org.casalib.util.StageReference) package org.casalib.util { import flash.display.*; import flash.utils.*; public class StageReference { public static const STAGE_DEFAULT:String = "stageDefault"; protected static var _stageMap:Dictionary; public static function removeStage(_arg1:String="stageDefault"):Boolean{ if (_slot1._getMap()[_arg1] == null){ return (false); }; _slot1.setStage(null, _arg1); return (true); } public static function getStageId(_arg1:Stage):String{ var _local3:String; var _local2:Dictionary = _slot1._getMap(); for (_local3 in _local2) { if (_local2[_local3] == _arg1){ return (_local3); }; }; return (null); } protected static function _getMap():Dictionary{ if (_slot1._stageMap == null){ _slot1._stageMap = new Dictionary(); }; return (_slot1._stageMap); } public static function getStage(_arg1:String="stageDefault"):Stage{ if (_slot1._getMap()[_arg1] == null){ throw (new Error((("Cannot get Stage (\"" + _arg1) + "\") before it has been set."))); }; return (_slot1._getMap()[_arg1]); } public static function getIds():Array{ return (ObjectUtil.getKeys(_slot1._getMap())); } public static function setStage(_arg1:Stage, _arg2:String="stageDefault"):void{ _slot1._getMap()[_arg2] = _arg1; } } }//package org.casalib.util
Section 402
//HelpBrowser (pages.helpbrowser.HelpBrowser) package pages.helpbrowser { import flash.events.*; import com.markfennell.sound.*; import flash.display.*; import org.casalib.display.*; import ui.*; import fl.motion.easing.*; import assets_ui.pages.helpBrowser.*; import gs.*; public class HelpBrowser extends CasaSprite { private var m_ui:MovieClip; private var m_content:CasaSprite; private var m_selectedID:int; private var m_leftArrow:DoubleGraphicButton; private var m_contentArray:Array; private var m_rightArrow:DoubleGraphicButton; public function HelpBrowser(){ m_ui = new browserBg(); addChild(m_ui); m_leftArrow = new DoubleGraphicButton(m_ui.arrowLeftOff, m_ui.arrowLeftOn); m_rightArrow = new DoubleGraphicButton(m_ui.arrowRightOff, m_ui.arrowRightOn); m_leftArrow.addEventListener(DoubleGraphicButton.CLICKED, onArrowClickHandler, false, 0, true); m_rightArrow.addEventListener(DoubleGraphicButton.CLICKED, onArrowClickHandler, false, 0, true); m_contentArray = [HelpPage1, HelpPage2, HelpPage3, HelpPage4, HelpPage5]; m_selectedID = 0; showContent(m_selectedID); } private function removeContent(_arg1:int=0):void{ if (m_content != null){ if (_arg1 > 0){ TweenMax.to(m_content, 0.2, {x:-50, alpha:0, onComplete:destroyContent, onCompleteParams:[m_content]}); } else { if (_arg1 < 0){ TweenMax.to(m_content, 0.2, {x:50, alpha:0, onComplete:destroyContent, onCompleteParams:[m_content]}); } else { m_content.destroy(); }; }; m_content = null; }; } private function destroyContent(_arg1:CasaSprite):void{ _arg1.destroy(); } override public function destroy():void{ m_leftArrow.removeEventListener(DoubleGraphicButton.CLICKED, onArrowClickHandler); m_rightArrow.removeEventListener(DoubleGraphicButton.CLICKED, onArrowClickHandler); m_leftArrow.destroy(); m_rightArrow.destroy(); TweenMax.killAll(true, false, false); removeContent(); m_contentArray = null; super.destroy(); } private function onArrowClickHandler(_arg1:Event):void{ var _local2:int; var _local3:int; if (_arg1.target == m_leftArrow){ _local2 = -1; } else { if (_arg1.target == m_rightArrow){ _local2 = 1; } else { trace(("ERROR - target of arrow click is unknown: " + _arg1.target)); }; }; if ((m_selectedID + _local2) < 0){ _local3 = (m_contentArray.length - 1); } else { if ((m_selectedID + _local2) > (m_contentArray.length - 1)){ _local3 = 0; } else { _local3 = (m_selectedID + _local2); }; }; removeContent(_local2); m_selectedID = _local3; showContent(m_selectedID, _local2); GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } private function showContent(_arg1:int, _arg2:int=0):void{ m_content = new (m_contentArray[_arg1]); addChild(m_content); if (_arg2 > 0){ TweenMax.from(m_content, 0.2, {x:50, tint:0xFFFFFF, ease:Quadratic.easeOut}); } else { if (_arg2 < 0){ TweenMax.from(m_content, 0.2, {x:-50, tint:0xFFFFFF, ease:Quadratic.easeOut}); } else { TweenMax.from(m_content, 0.2, {tint:0xFFFFFF, ease:Quadratic.easeOut}); }; }; } } }//package pages.helpbrowser
Section 403
//HelpPage1 (pages.helpbrowser.HelpPage1) package pages.helpbrowser { import flash.display.*; import org.casalib.display.*; import assets_ui.pages.help.*; public class HelpPage1 extends CasaSprite { private var m_ui:MovieClip; public function HelpPage1(){ m_ui = new HelpPage1(); addChild(m_ui); } } }//package pages.helpbrowser
Section 404
//HelpPage2 (pages.helpbrowser.HelpPage2) package pages.helpbrowser { import flash.events.*; import flash.display.*; import org.casalib.display.*; import ui.*; import fl.motion.easing.*; import assets_ui.pages.help.*; import assets_ui.pages.help.defenders.*; import gs.*; public class HelpPage2 extends CasaSprite { private var m_selectedID:int; private var m_molemanBtn:DoubleGraphicSelectedButton; private var m_drdoomBtn:DoubleGraphicSelectedButton; private var m_spidermanBtn:DoubleGraphicSelectedButton; private var m_msmarvelBtn:DoubleGraphicSelectedButton; private var m_ui:MovieClip; private var m_content:MovieClip; private var m_modokBtn:DoubleGraphicSelectedButton; private var m_thorBtn:DoubleGraphicSelectedButton; private var m_buttonArray:Array; private var m_contentArray:Array; private var m_cyclopsBtn:DoubleGraphicSelectedButton; private var m_ironmanBtn:DoubleGraphicSelectedButton; public function HelpPage2(){ m_ui = new HelpPage2(); addChild(m_ui); m_ironmanBtn = new DoubleGraphicSelectedButton(m_ui.ironmanOff, m_ui.ironmanOn); m_msmarvelBtn = new DoubleGraphicSelectedButton(m_ui.msmarvelOff, m_ui.msmarvelOn); m_thorBtn = new DoubleGraphicSelectedButton(m_ui.thorOff, m_ui.thorOn); m_cyclopsBtn = new DoubleGraphicSelectedButton(m_ui.cyclopsOff, m_ui.cyclopsOn); m_spidermanBtn = new DoubleGraphicSelectedButton(m_ui.spidermanOff, m_ui.spidermanOn); m_buttonArray = [m_ironmanBtn, m_msmarvelBtn, m_thorBtn, m_cyclopsBtn, m_spidermanBtn]; var _local1:int; while (_local1 < m_buttonArray.length) { m_buttonArray[_local1].addEventListener(DoubleGraphicSelectedButton.CLICKED, onCharacterClickHandler, false, 0, true); _local1++; }; m_contentArray = [IronmanPage, MsmarvelPage, ThorPage, CyclopsPage, SpidermanPage]; m_selectedID = 0; DoubleGraphicSelectedButton(m_buttonArray[m_selectedID]).setSelected(); addContent(m_selectedID); } override public function destroy():void{ var _local1:int; while (_local1 < m_buttonArray.length) { m_buttonArray[_local1].removeEventListener(DoubleGraphicSelectedButton.CLICKED, onCharacterClickHandler); m_buttonArray[_local1].destroy(); _local1++; }; TweenMax.killAll(true, false, false); removeContent(); m_contentArray = null; super.destroy(); } private function removeContent():void{ if (m_content != null){ removeChild(m_content); m_content = null; }; } private function addContent(_arg1:int):void{ m_content = new (m_contentArray[_arg1]); addChild(m_content); m_content.x = 157; m_content.y = 84; TweenMax.from(m_content, 0.2, {tint:0xFFFFFF, ease:Quadratic.easeOut}); } private function onCharacterClickHandler(_arg1:Event):void{ var _local2:int = m_buttonArray.indexOf(_arg1.target); if (_local2 != m_selectedID){ removeContent(); DoubleGraphicSelectedButton(m_buttonArray[m_selectedID]).setUnselected(); m_selectedID = _local2; DoubleGraphicSelectedButton(m_buttonArray[_local2]).setSelected(); addContent(m_selectedID); }; } } }//package pages.helpbrowser
Section 405
//HelpPage3 (pages.helpbrowser.HelpPage3) package pages.helpbrowser { import flash.display.*; import org.casalib.display.*; import assets_ui.pages.help.*; public class HelpPage3 extends CasaSprite { private var m_ui:MovieClip; public function HelpPage3(){ m_ui = new HelpPage3(); addChild(m_ui); } } }//package pages.helpbrowser
Section 406
//HelpPage4 (pages.helpbrowser.HelpPage4) package pages.helpbrowser { import flash.display.*; import org.casalib.display.*; import assets_ui.pages.help.*; public class HelpPage4 extends CasaSprite { private var m_ui:MovieClip; public function HelpPage4(){ m_ui = new HelpPage4(); addChild(m_ui); } } }//package pages.helpbrowser
Section 407
//HelpPage5 (pages.helpbrowser.HelpPage5) package pages.helpbrowser { import flash.display.*; import org.casalib.display.*; import assets_ui.pages.help.*; public class HelpPage5 extends CasaSprite { private var m_ui:MovieClip; public function HelpPage5(){ m_ui = new HelpPage5(); addChild(m_ui); } } }//package pages.helpbrowser
Section 408
//BasePage (pages.BasePage) package pages { import console.*; import flash.display.*; import org.casalib.display.*; import interfaces.*; import gs.*; public class BasePage extends CasaSprite implements IConsoleSection { protected var m_ui:MovieClip; public function hide():void{ } public function doExitAttempt():void{ } public function transitionIn_COMPLETE():void{ dispatchEvent(new ConsoleEvent(ConsoleEvent.TRANSITION_COMPLETE)); } public function doPause():void{ } protected function center():void{ m_ui.x = int((Constants.STAGE_WIDTH * 0.5)); m_ui.y = int((Constants.STAGE_HEIGHT * 0.5)); } public function doResume():void{ } public function transitionOut():void{ TweenMax.to(m_ui, 0.75, {alpha:0}); } public function transitionIn():void{ TweenMax.to(m_ui, 0.75, {alpha:1, onComplete:transitionIn_COMPLETE}); } override public function destroy():void{ if (m_ui){ TweenMax.killTweensOf(m_ui); removeChild(m_ui); m_ui = null; }; super.destroy(); } } }//package pages
Section 409
//Characters (pages.Characters) package pages { import assets_ui.pages.*; public class Characters extends BasePage { private var m_browser:CharactersBrowser; public function Characters(){ m_ui = new CharactersUI(); addChild(m_ui); m_ui.alpha = 0; m_browser = new CharactersBrowser(); m_browser.x = 89; m_browser.y = 158; addChild(m_browser); } override public function destroy():void{ m_browser.destroy(); super.destroy(); } } }//package pages
Section 410
//CharactersBrowser (pages.CharactersBrowser) package pages { import flash.events.*; import com.markfennell.sound.*; import flash.display.*; import org.casalib.display.*; import ui.*; import fl.motion.easing.*; import assets_ui.pages.characters.*; import assets_ui.pages.characterBrowser.*; import gs.*; public class CharactersBrowser extends CasaSprite { private var m_selectedID:int; private var m_molemanBtn:DoubleGraphicSelectedButton; private var m_drdoomBtn:DoubleGraphicSelectedButton; private var m_spidermanBtn:DoubleGraphicSelectedButton; private var m_msmarvelBtn:DoubleGraphicSelectedButton; private var m_ui:MovieClip; private var m_content:MovieClip; private var m_sideArray:Array; private var m_thorBtn:DoubleGraphicSelectedButton; private var m_buttonArray:Array; private var m_modokBtn:DoubleGraphicSelectedButton; private var m_contentArray:Array; private var m_cyclopsBtn:DoubleGraphicSelectedButton; private var m_ironmanBtn:DoubleGraphicSelectedButton; public function CharactersBrowser(){ m_ui = new browserBg(); addChild(m_ui); m_ironmanBtn = new DoubleGraphicSelectedButton(m_ui.ironmanOff, m_ui.ironmanOn); m_msmarvelBtn = new DoubleGraphicSelectedButton(m_ui.msmarvelOff, m_ui.msmarvelOn); m_thorBtn = new DoubleGraphicSelectedButton(m_ui.thorOff, m_ui.thorOn); m_cyclopsBtn = new DoubleGraphicSelectedButton(m_ui.cyclopsOff, m_ui.cyclopsOn); m_spidermanBtn = new DoubleGraphicSelectedButton(m_ui.spidermanOff, m_ui.spidermanOn); m_drdoomBtn = new DoubleGraphicSelectedButton(m_ui.drdoomOff, m_ui.drdoomOn); m_modokBtn = new DoubleGraphicSelectedButton(m_ui.modokOff, m_ui.modokOn); m_molemanBtn = new DoubleGraphicSelectedButton(m_ui.molemanOff, m_ui.molemanOn); m_buttonArray = [m_ironmanBtn, m_msmarvelBtn, m_thorBtn, m_cyclopsBtn, m_spidermanBtn, m_drdoomBtn, m_modokBtn, m_molemanBtn]; var _local1:int; while (_local1 < m_buttonArray.length) { m_buttonArray[_local1].addEventListener(DoubleGraphicSelectedButton.CLICKED, onCharacterClickHandler, false, 0, true); _local1++; }; m_contentArray = [IronmanPage, MsmarvelPage, ThorPage, CyclopsPage, SpidermanPage, DrdoomPage, ModokPage, MolemanPage]; m_sideArray = ["hero", "hero", "hero", "hero", "hero", "villain", "villain", "villain"]; m_selectedID = 0; DoubleGraphicSelectedButton(m_buttonArray[m_selectedID]).setSelected(); addContent(m_selectedID); } override public function destroy():void{ var _local1:int; while (_local1 < m_buttonArray.length) { m_buttonArray[_local1].removeEventListener(DoubleGraphicSelectedButton.CLICKED, onCharacterClickHandler); m_buttonArray[_local1].destroy(); _local1++; }; TweenMax.killAll(true, false, false); removeContent(); m_contentArray = null; super.destroy(); } private function removeContent():void{ if (m_content != null){ removeChild(m_content); m_content = null; }; } private function addContent(_arg1:int):void{ m_content = new (m_contentArray[_arg1]); addChild(m_content); m_content.x = 75; m_content.y = 26; TweenMax.from(m_content, 0.2, {tint:0xFFFFFF, ease:Quadratic.easeOut}); m_ui.bgPanel.gotoAndStop(m_sideArray[m_selectedID]); } private function onCharacterClickHandler(_arg1:Event):void{ var _local2:int = m_buttonArray.indexOf(_arg1.target); if (_local2 != m_selectedID){ removeContent(); DoubleGraphicSelectedButton(m_buttonArray[m_selectedID]).setUnselected(); m_selectedID = _local2; DoubleGraphicSelectedButton(m_buttonArray[_local2]).setSelected(); addContent(m_selectedID); }; GameBroadcaster.dispatchEvent(new SoundEvent(SoundEvent.EFFECT, "assets_sfx.sfx.common.bleep2", 0.5, 1)); } } }//package pages
Section 411
//Credits (pages.Credits) package pages { import assets_ui.pages.*; public class Credits extends BasePage { public function Credits(){ m_ui = new CreditsUI(); addChild(m_ui); m_ui.alpha = 0; m_ui.version.text = Constants.VERSION; } } }//package pages
Section 412
//Help (pages.Help) package pages { import pages.helpbrowser.*; import assets_ui.pages.*; public class Help extends BasePage { private var m_browser:HelpBrowser; public function Help(){ m_ui = new HelpUI(); addChild(m_ui); m_ui.alpha = 0; m_browser = new HelpBrowser(); m_browser.x = 78; m_browser.y = 159; addChild(m_browser); } override public function destroy():void{ m_browser.destroy(); super.destroy(); } } }//package pages
Section 413
//IntroVideo (pages.IntroVideo) package pages { import flash.events.*; import console.*; import net.*; import ui.*; import assets_ui.pages.*; import gs.*; public class IntroVideo extends BasePage { private var m_videoPlayerWrapper:VideoPlayerWrapper; private var m_skipBtn:DoubleGraphicButton; public function IntroVideo(){ m_ui = new IntroVideoUI(); addChild(m_ui); m_ui.alpha = 0; m_videoPlayerWrapper = new VideoPlayerWrapper(Constants.INTRO_VIDEO_URL, m_ui.videoWindow); m_videoPlayerWrapper.addEventListener(VideoPlayerWrapper.VIDEO_START, videoStartHandler, false, 0, true); m_videoPlayerWrapper.addEventListener(VideoPlayerWrapper.VIDEO_FINISH, videoFinishHandler, false, 0, true); m_skipBtn = new DoubleGraphicButton(m_ui.skipBtn, m_ui.skipGlowBtn); m_skipBtn.addEventListener(DoubleGraphicButton.CLICKED, skipClickHandler, false, 0, true); m_ui.videoWindow.alpha = 0; m_ui.skipBtn.alpha = 0; m_ui.skipGlowBtn.alpha = 0; } private function showSkipBtn():void{ m_skipBtn.enableButton(); } private function skipClickHandler(_arg1:Event):void{ fadeDownVideo(); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "introVideo", "videoSkipped"); } private function videoStartHandler(_arg1:Event):void{ TweenMax.to(m_ui.videoWindow, 1, {alpha:1, delay:1, onComplete:showSkipBtn}); } override public function destroy():void{ m_videoPlayerWrapper.removeEventListener(VideoPlayerWrapper.VIDEO_START, videoStartHandler); m_videoPlayerWrapper.removeEventListener(VideoPlayerWrapper.VIDEO_START, videoFinishHandler); m_videoPlayerWrapper.destroy(); m_skipBtn.removeEventListener(DoubleGraphicButton.CLICKED, skipClickHandler); m_skipBtn.destroy(); super.destroy(); } private function beginGame():void{ GameBroadcaster.dispatchEvent(new ConsoleEvent(ConsoleEvent.DISPLAY_PLAYGAME)); } private function videoFinishHandler(_arg1:Event):void{ fadeDownVideo(); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "introVideo", "videoComplete"); } private function fadeDownVideo():void{ m_skipBtn.disableButton(); TweenMax.to(m_ui.videoWindow, 0.5, {alpha:0, delay:0, onComplete:beginGame}); } } }//package pages
Section 414
//Medals (pages.Medals) package pages { import game.achievements.*; import assets_ui.pages.*; public class Medals extends BasePage { private var m_medalDisplays:Array; public function Medals(){ m_ui = new MedalsUI(); addChild(m_ui); m_ui.alpha = 0; var _local1:Array = AchievementData.instance.achievements; m_medalDisplays = []; m_medalDisplays[9] = new MedalPageDisplay(_local1[9], m_ui.lockGameAddict, m_ui.baseGameAddict, m_ui); m_medalDisplays[8] = new MedalPageDisplay(_local1[8], m_ui.lockHighScore, m_ui.baseHighScore, m_ui); m_medalDisplays[7] = new MedalPageDisplay(_local1[7], m_ui.lockMasterDefender, m_ui.baseMasterDefender, m_ui); m_medalDisplays[6] = new MedalPageDisplay(_local1[6], m_ui.lockDefender, m_ui.baseDefender, m_ui); m_medalDisplays[5] = new MedalPageDisplay(_local1[5], m_ui.lockConstructor, m_ui.baseConstructor, m_ui); m_medalDisplays[4] = new MedalPageDisplay(_local1[4], m_ui.lockMillionaire, m_ui.baseMillionaire, m_ui); m_medalDisplays[3] = new MedalPageDisplay(_local1[3], m_ui.lockDrdoom, m_ui.baseDrdoom, m_ui); m_medalDisplays[2] = new MedalPageDisplay(_local1[2], m_ui.lockModok, m_ui.baseModok, m_ui); m_medalDisplays[1] = new MedalPageDisplay(_local1[1], m_ui.lockGoldTower, m_ui.baseGoldTower, m_ui); m_medalDisplays[0] = new MedalPageDisplay(_local1[0], m_ui.lockMoleman, m_ui.baseMoleman, m_ui); } override public function hide():void{ var _local1:int; while (_local1 < m_medalDisplays.length) { MedalPageDisplay(m_medalDisplays[_local1]).destroy(); _local1++; }; } override public function destroy():void{ if (m_ui){ removeChild(m_ui); m_ui = null; }; super.destroy(); } } }//package pages
Section 415
//Title (pages.Title) package pages { import com.malee.loaders.*; import assets_ui.pages.*; public class Title extends BasePage { private var _sponsorLoaded:Boolean; private var _requestPlay:Boolean; private var _sponsorLogo:AssetLoader; public function Title(){ m_ui = new TitleUI(); addChild(m_ui); m_ui.alpha = 0; m_ui.stop(); m_ui.x = 11; m_ui.y = 61; m_ui.gotoAndPlay("intro"); } } }//package pages
Section 416
//AbstractPreloader (preloader.AbstractPreloader) package preloader { import flash.events.*; import flash.display.*; import flash.utils.*; import com.google.analytics.*; public class AbstractPreloader extends MovieClip { protected var m_adLoaded:Boolean;// = false private var USE_EXTERNAL:Boolean;// = true private var m_loadTime:int; protected var VALID_URL:Array; private var m_firstEnterFrame:Boolean; protected var GoogleAnalytics:AnalyticsTracker; public function AbstractPreloader(){ addEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage); stop(); } protected function endLoading():void{ } public function start():void{ trace("start"); m_firstEnterFrame = true; addEventListener(Event.ENTER_FRAME, onEnterFrame); } protected function updateLoading(_arg1:Number):void{ } private function handleOnAddedToStage(_arg1:Event):void{ stage.scaleMode = StageScaleMode.EXACT_FIT; stage.align = StageAlign.TOP_LEFT; m_loadTime = getTimer(); GoogleAnalytics = new GATracker(stage, Constants.GOOGLE, "AS3", false); GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "game", "index"); trace(("AbstractPreloader GA: " + GoogleAnalytics)); } protected function run():void{ setTimeout(startMain, 500); } protected function beginLoading():void{ } protected function get mainClassName():String{ return ("SearchAndDestroy"); } private function onEnterFrame(_arg1:Event):void{ var _local2:Number; if (m_firstEnterFrame){ m_firstEnterFrame = false; if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); nextFrame(); run(); } else { beginLoading(); }; return; }; if (root.loaderInfo.bytesLoaded >= root.loaderInfo.bytesTotal){ removeEventListener(Event.ENTER_FRAME, onEnterFrame); nextFrame(); run(); endLoading(); } else { _local2 = (root.loaderInfo.bytesLoaded / root.loaderInfo.bytesTotal); updateLoading(_local2); }; } private function startMain():void{ var _local1:Class = (getDefinitionByName(mainClassName) as Class); if (_local1 == null){ throw (new Error("AbstractPreloader:initialize. There was no class matching that name. Did you remember to override mainClassName?")); }; var _local2:DisplayObject = (new (_local1) as DisplayObject); if (_local2 == null){ throw (new Error("AbstractPreloader:initialize. Main class needs to inherit from Sprite or MovieClip.")); }; _local1.loadTime = int(((getTimer() - m_loadTime) / 1000)); _local1.SPONSOR_URL = ""; addChildAt(_local2, 0); } } }//package preloader
Section 417
//AbstractPreloaderViewDart (preloader.AbstractPreloaderViewDart) package preloader { import flash.events.*; import flash.display.*; import flash.utils.*; import gs.*; import com.doubleclick.dartshell.ad.events.*; import assets_ui.*; import com.malee.soap.*; import nl.demonsters.debugger.*; public class AbstractPreloaderViewDart extends AbstractPreloader { private var m_dartLoader:DartSWFAD; private var m_ui:Preloader; private var m_menu:SoapMenu; private var m_bg:PreloaderBackgroundUI; private var m_embedded:Boolean;// = true public function AbstractPreloaderViewDart(){ var adUrl:String; var paramObj:Object; var url:String; var zone:String; var sz:String; var sect:String; var ord:String; var tile:String; var ct:String; super(); stop(); m_bg = new PreloaderBackgroundUI(); m_bg.x = 0; m_bg.y = 0; addChild(m_bg); m_dartLoader = new DartSWFAD(); m_dartLoader.addEventListener(AdEvent.EXIT, handleAdShown); try { paramObj = LoaderInfo(root.loaderInfo).parameters; url = String(root.loaderInfo.url); zone = String(paramObj.zone); if (zone == "undefined"){ adUrl = "http://ad.doubleclick.net/pfadx/gn.marvelkids.com/gamesos"; } else { adUrl = "http://ad.doubleclick.net/pfadx/gn.marvelkids.com/"; adUrl = (adUrl + zone); }; sz = String(paramObj.sz); if (sz == "undefined"){ adUrl = (adUrl + ";sz=506x506"); } else { adUrl = (adUrl + (";sz=" + sz)); }; sect = String(paramObj.sect); if (sect != "undefined"){ adUrl = (adUrl + (";sect=" + sect)); }; ord = String(paramObj.ord); if (ord != "undefined"){ adUrl = (adUrl + (";ord=" + ord)); }; tile = String(paramObj.tile); if (tile != "undefined"){ adUrl = (adUrl + (";tile=" + tile)); }; ct = String(paramObj.ct); if (ct == "undefined"){ ct = Constants.DART_CT; }; adUrl = (adUrl + (";ct=" + ct)); Constants.AD_URL = adUrl; } catch(e:Error) { }; m_dartLoader.load(Constants.AD_URL, root.loaderInfo.url); addChild(m_dartLoader); m_dartLoader.x = 215; m_dartLoader.y = 40; m_ui = new Preloader(); m_ui.x = 375; m_ui.y = 425; addChild(m_ui); m_menu = new SoapMenu(this); m_menu.addItem(Constants.VERSION); super.start(); } override protected function endLoading():void{ } override protected function get mainClassName():String{ return ("SuperHeroSquad_dart_v1"); } override protected function updateLoading(_arg1:Number):void{ var _local6:Number; var _local7:Number; var _local8:Number; var _local9:Number; var _local2:int = (104 / 2); var _local3:Number = (_arg1 * (Math.PI * 2)); var _local4:int = (1 + ((_local3 / Math.PI) * 30)); m_ui.bar.graphics.clear(); m_ui.bar.graphics.lineStyle(6, 0xFF0000, 1, false, "normal", CapsStyle.SQUARE); m_ui.bar.graphics.moveTo(0, -(_local2)); var _local5:int; while (_local5 <= _local4) { _local6 = ((_local5 / _local4) * _local3); _local7 = (_local6 - (Math.PI / 2)); _local8 = (Math.cos(_local7) * _local2); _local9 = (Math.sin(_local7) * _local2); m_ui.bar.graphics.lineTo(_local8, _local9); _local5++; }; } private function handleAdShown(_arg1:Event):void{ MonsterDebugger.trace(this, "AdEvent.EXIT heard"); m_dartLoader.removeEventListener(AdEvent.EXIT, handleAdShown); m_adLoaded = true; } override protected function run():void{ MonsterDebugger.trace(this, ("run() " + m_adLoaded)); if (m_adLoaded){ TweenMax.to(m_ui, 0.5, {alpha:0}); removeChild(m_bg); m_bg = null; removeChild(m_ui); m_ui = null; m_dartLoader.destroy(); removeChild(m_dartLoader); m_dartLoader = null; super.run(); } else { setTimeout(run, 1000); }; } override protected function beginLoading():void{ MonsterDebugger.trace(this, "begin Loading"); } } }//package preloader
Section 418
//DoubleGraphicButton (ui.DoubleGraphicButton) package ui { import flash.events.*; import flash.display.*; import gs.*; public class DoubleGraphicButton extends EventDispatcher { private var m_over:MovieClip; private var m_buttonMode:Boolean;// = true private var m_clickEnabled:Boolean;// = true private var m_off:MovieClip; public static var OVER:String = "over"; public static var CLICKED:String = "clicked"; public static var OFF:String = "off"; public function DoubleGraphicButton(_arg1:MovieClip, _arg2:MovieClip){ m_off = _arg1; m_over = _arg2; m_over.buttonMode = true; m_off.buttonMode = true; m_over.alpha = 0; m_over.addEventListener(MouseEvent.ROLL_OUT, handleRollOut, false, 0, true); m_over.addEventListener(MouseEvent.ROLL_OVER, handleRollOver, false, 0, true); m_over.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); } private function handleClick(_arg1:MouseEvent=null):void{ if (m_clickEnabled){ dispatchEvent(new Event(CLICKED)); }; } private function handleRollOut(_arg1:MouseEvent=null):void{ TweenMax.to(m_over, 0.25, {alpha:0}); dispatchEvent(new Event(OFF)); } public function disableCursorAndEvents():void{ m_buttonMode = false; m_clickEnabled = false; m_over.buttonMode = false; m_off.buttonMode = false; } public function enableButton():void{ m_over.mouseEnabled = true; TweenMax.to(m_off, 0.25, {alpha:1}); } public function enableCursorAndEvents():void{ m_buttonMode = true; m_clickEnabled = true; m_over.buttonMode = true; m_off.buttonMode = true; } private function handleRollOver(_arg1:MouseEvent=null):void{ TweenMax.to(m_over, 0.25, {alpha:1}); dispatchEvent(new Event(OVER)); } public function disableButton():void{ m_over.mouseEnabled = false; TweenMax.to(m_off, 0.25, {alpha:0}); TweenMax.to(m_over, 0.25, {alpha:0}); } public function destroy():void{ m_over.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut); m_over.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver); m_over.removeEventListener(MouseEvent.CLICK, handleClick); } } }//package ui
Section 419
//DoubleGraphicSelectedButton (ui.DoubleGraphicSelectedButton) package ui { import flash.events.*; import flash.display.*; import gs.*; public class DoubleGraphicSelectedButton extends EventDispatcher { private var m_over:MovieClip; private var m_selected:Boolean;// = false private var m_off:MovieClip; public static var CLICKED:String = "clicked"; public function DoubleGraphicSelectedButton(_arg1:MovieClip, _arg2:MovieClip){ m_off = _arg1; m_over = _arg2; m_over.buttonMode = true; m_off.buttonMode = true; m_over.alpha = 0; m_over.addEventListener(MouseEvent.ROLL_OUT, handleRollOut, false, 0, true); m_over.addEventListener(MouseEvent.ROLL_OVER, handleRollOver, false, 0, true); m_over.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); } private function handleClick(_arg1:MouseEvent=null):void{ dispatchEvent(new Event(DoubleGraphicSelectedButton.CLICKED)); } public function disableButton():void{ m_over.mouseEnabled = false; TweenMax.to(m_off, 0.25, {alpha:0}); TweenMax.to(m_over, 0.25, {alpha:0}); } public function setSelected():void{ m_selected = true; TweenMax.to(m_over, 0.25, {alpha:1}); } private function handleRollOut(_arg1:MouseEvent=null):void{ if (!m_selected){ TweenMax.to(m_over, 0.25, {alpha:0}); }; } public function enableButton():void{ m_over.mouseEnabled = true; TweenMax.to(m_off, 0.25, {alpha:1}); } public function setUnselected():void{ m_selected = false; TweenMax.to(m_over, 0.25, {alpha:0}); } private function handleRollOver(_arg1:MouseEvent=null):void{ if (!m_selected){ TweenMax.to(m_over, 0.25, {alpha:1}); }; } public function destroy():void{ m_over.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut); m_over.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver); m_over.removeEventListener(MouseEvent.CLICK, handleClick); } } }//package ui
Section 420
//SingleGraphicGlowButton (ui.SingleGraphicGlowButton) package ui { import flash.events.*; import flash.display.*; import gs.easing.*; import gs.*; public class SingleGraphicGlowButton extends EventDispatcher { private var m_button:MovieClip; private var m_glow:MovieClip; public static var CLICKED:String = "clicked"; public function SingleGraphicGlowButton(_arg1:MovieClip, _arg2:MovieClip){ m_button = _arg1; m_glow = _arg2; m_button.buttonMode = true; m_glow.buttonMode = false; m_glow.mouseEnabled = false; m_glow.mouseChildren = false; m_glow.alpha = 0; m_button.addEventListener(MouseEvent.ROLL_OUT, handleRollOut, false, 0, true); m_button.addEventListener(MouseEvent.ROLL_OVER, handleRollOver, false, 0, true); m_button.addEventListener(MouseEvent.CLICK, handleClick, false, 0, true); } private function handleClick(_arg1:MouseEvent=null):void{ dispatchEvent(new Event(CLICKED)); } public function disableEvents():void{ m_button.mouseEnabled = false; } private function handleRollOut(_arg1:MouseEvent=null):void{ TweenMax.to(m_button, 0.4, {colorMatrixFilter:{contrast:1, brightness:1}, glowFilter:{alpha:0, remove:true}, easing:Strong.easeOut}); TweenMax.to(m_glow, 0.4, {alpha:0, easing:Strong.easeOut}); } public function destroy():void{ TweenMax.killTweensOf(m_button); TweenMax.killTweensOf(m_glow); m_button.removeEventListener(MouseEvent.ROLL_OUT, handleRollOut); m_button.removeEventListener(MouseEvent.ROLL_OVER, handleRollOver); m_button.removeEventListener(MouseEvent.CLICK, handleClick); } public function enableButton():void{ m_button.mouseEnabled = true; TweenMax.to(m_button, 0.25, {alpha:1}); } private function handleRollOver(_arg1:MouseEvent=null):void{ TweenMax.to(m_button, 0.4, {colorMatrixFilter:{contrast:1.2, brightness:1.2}, glowFilter:{alpha:0.3, blurX:10, blurY:10, color:0xFFFFFF}, easing:Strong.easeOut}); TweenMax.to(m_glow, 0.4, {alpha:1, easing:Strong.easeOut}); } public function disableButton():void{ m_button.mouseEnabled = false; TweenMax.to(m_button, 0.25, {alpha:0}); TweenMax.to(m_glow, 0.25, {alpha:0}); } public function enableEvents():void{ m_button.mouseEnabled = true; } } }//package ui
Section 421
//Constants (Constants) package { import flash.net.*; public class Constants { public static const STAGE_WIDTH:int = 730; public static const TILE_VOID:int = 1; public static const FRAME_RATE:int = 31; public static const RAGE_PER_ROBOT:Number = 0.1; public static const STAGE_HEIGHT:int = 472; public static const DEBUG:Boolean = false; public static const DAMAGE_MISSILE:Number = 0.15; public static const DAMAGE_SENSOR:Number = 0.03; public static const DAMAGE_BULLET:Number = 0.04; public static const TILE_SIZE:int = 102; public static var ON_LOWER:int = 0; public static var DEFAULT_AD_URL:String = "soap/ads/sd_default_game_ad_300x250.swf"; public static var VOLUME_MUSIC:Number = 0.5; public static var URL_SHS:URLRequest = new URLRequest("http://superherosquad.marvel.com/?utm_source=games&utm_medium=link_marvelkids&utm_content=StarkTowerDefense&utm_campaign=MarvelGames2009"); public static var TRACKING_TITLE:String = "StarkTD"; public static var DART_CT:String = "shs_tower_defense"; public static var VERSION:String = "v 1.07a"; public static var GOOGLE:String = "UA-273913-11"; public static var AD_URL:String = ("http://ad.doubleclick.net/pfadx/gn.marvelkids.com/gamesos;sz=506x506;ct=" + DART_CT); public static var POINTS_FAILED:int = -500; public static var INTRO_VIDEO_URL:String = "http://i.annihil.us/u/prod/games/soap/video/shs_intro.mp4"; public static var POINTS_TIME:int = 1; public static var CROSS_DOMAIN:String = "soap/ads/crossdomain.xml"; public static var MAX_GUARDS:int = 50; public static var ON_UPPER:int = 1; public static var GAME_WON_VIDEO_URL:String = "http://i.annihil.us/u/prod/games/soap/video/shs_outtro.mp4"; public static var PI2:Number = 6.28318530717959; public static var URL_SEND_TO_FRIEND:URLRequest = new URLRequest("http://marvelkids.marvel.com/sendtoafriend3.html"); public static var URL_MARVELKIDS:URLRequest = new URLRequest("http://marvelkids.marvel.com/?utm_source=games&utm_medium=link_marvelkids&utm_content=StarkTowerDefense&utm_campaign=MarvelGames2009"); public static var ANIMATION_FINISHED:String = "AnimationFinished"; public static var URL_MOREGAMES:URLRequest = new URLRequest("http://marvelkids.marvel.com/games/?utm_source=games&utm_medium=link_moregames&utm_content=StarkTowerDefense&utm_campaign=MarvelGames2009"); } }//package
Section 422
//DartShell (DartShell) package { import flash.events.*; public interface DartShell extends IEventDispatcher { function loadAd(_arg1:String, _arg2:String, _arg3:String, _arg4:Array, _arg5:String, _arg6:String, _arg7:String, _arg8:Object=null):void; function getDartShellVersion():String; function set delayedImpression(_arg1:Boolean):void; function loadAdByURL(_arg1:String, _arg2:Object=null):void; } }//package
Section 423
//DartShellSWFLoader (DartShellSWFLoader) package { import flash.events.*; import flash.display.*; import com.doubleclick.dartshell.events.*; import com.doubleclick.dartshell.errors.events.*; import flash.net.*; import com.doubleclick.dartshell.errors.*; import flash.system.*; public class DartShellSWFLoader extends EventDispatcher { private var loader:Loader; private var dartShellUrl:String; public function DartShellSWFLoader(_arg1:DisplayObjectContainer, _arg2:String=null){ this.dartShellUrl = ((_arg2)==null) ? (("http://ad.doubleclick.net/879366/DartShell9_" + Distribution.VERSION) + ".swf") : _arg2; Security.allowDomain(extractDomainFromUrl(_arg2)); loader = new Loader(); _arg1.addChild(loader); } private function extractDomainFromUrl(_arg1:String):String{ var _local2:Number = getProtocol(_arg1).length; var _local3:Number = _arg1.indexOf("/", _local2); return (((_local3)!=-1) ? _arg1.substring(0, _local3) : _arg1); } private function getProtocol(_arg1:String):String{ return (_arg1.substring(0, (_arg1.indexOf("//") + 2))); } private function onFlashError(_arg1:ErrorEvent):void{ dispatchEvent(new DartShellErrorEvent(new DartShellError({id:23, message:("Failed to load sdk at " + dartShellUrl)}))); } private function onDartShellError(_arg1:DartShellErrorEvent):void{ dispatchEvent(_arg1); } public function getLoader():Loader{ return (loader); } public function load():void{ var _local2:LoaderContext; getLoader().addEventListener(DartShellLoadedEvent.TYPE, onDartShellLoaded); getLoader().addEventListener(DartShellErrorEvent.TYPE, onDartShellError); getLoader().contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, onFlashError); getLoader().contentLoaderInfo.addEventListener(SecurityErrorEvent.SECURITY_ERROR, onFlashError); var _local1:URLRequest = new URLRequest(dartShellUrl); if (Security.sandboxType == Security.REMOTE){ _local2 = new LoaderContext(false, ApplicationDomain.currentDomain, SecurityDomain.currentDomain); getLoader().load(_local1, _local2); } else { getLoader().load(_local1); }; } private function onDartShellLoaded(_arg1:DartShellLoadedEvent):void{ dispatchEvent(_arg1); } } }//package
Section 424
//DartSWFAD (DartSWFAD) package { import flash.events.*; import flash.display.*; import flash.utils.*; import gs.*; import com.doubleclick.dartshell.events.*; import com.doubleclick.dartshell.ad.flash_in_flash.*; import com.doubleclick.dartshell.errors.events.*; import com.doubleclick.dartshell.ad.events.*; import flash.net.*; import nl.demonsters.debugger.*; import flash.system.*; public class DartSWFAD extends Sprite { private var _marvel_timeout:int; private var _marvel_adTimer:Timer; private var _adURL:String; private var _marvel_adTime:int; private var _marvel_loader:Loader; private var _dart_loaded:Boolean;// = false private var _flashInFlashAd:FlashInFlashAd; private var _adTimer:Timer; private var _dartShellLoader:DartShellSWFLoader; private var _marvel_error:Boolean;// = false private var _dart_error:Boolean;// = false private var _adTime:int; private var _dartShell:DartShell; private var _applicationDomain:ApplicationDomain; private var _flashInFlashAsset:FlashAsset; public static const DARTSHELL_URL:String = ("http://ad.doubleclick.net/879366/" + DARTSHELL); public static const DARTSHELL:String = "DartShell9_13.swf"; public static const MARVEL_URL:String = Constants.DEFAULT_AD_URL; public function DartSWFAD(){ this.alpha = 0; } private function startTimer():void{ _adTimer.reset(); _adTimer.start(); } private function log(... _args):void{ trace(_args); } public function destroy():void{ MonsterDebugger.trace(this, "Destroy"); try { _marvel_loader.unload(); removeChild(_marvel_loader.content); _marvel_loader = null; System.gc(); } catch(e:Error) { }; } private function exit():void{ MonsterDebugger.trace(this, "exit()"); dispatchEvent(new AdEvent(AdEvent.EXIT)); stopTimer(); } private function onDartShellLoaded(_arg1:DartShellLoadedEvent):void{ var event = _arg1; MonsterDebugger.trace(this, "onDartShellLoaded"); stopTimer(); startTimer(); _dartShell = event.getDartShell(); _dartShell.addEventListener(FlashInFlashAdLoadedEvent.TYPE, onFlashAdLoaded); _dartShell.addEventListener(DartShellErrorEvent.TYPE, onDartShellError); try { _dartShell.loadAdByURL(_adURL); } catch(error:Error) { trace(this, error.message); }; } private function onFlashAdExit(_arg1:AdEvent):void{ MonsterDebugger.trace(this, "onFlashAdExit"); exit(); } private function onFlashAssetLoaded(_arg1:FlashAssetLoadedEvent):void{ MonsterDebugger.trace(this, "onFlashAssetLoaded"); _flashInFlashAsset = _arg1.getAsset(); } private function onDartShellError(_arg1:DartShellErrorEvent):void{ MonsterDebugger.trace(this, ("onDartShellError" + _arg1.text)); _dart_error = true; } private function onAdTimerTick(_arg1:TimerEvent):void{ MonsterDebugger.trace(this, "onAdTimerTick"); clearTimeout(_marvel_timeout); exit(); } private function loadAd(_arg1:String):void{ MonsterDebugger.trace(this, ("loadAd " + _arg1)); _adURL = _arg1; _dartShellLoader = new DartShellSWFLoader(this, DARTSHELL_URL); _dartShellLoader.addEventListener(DartShellLoadedEvent.TYPE, onDartShellLoaded); _dartShellLoader.addEventListener(DartShellErrorEvent.TYPE, onDartShellError); _dartShellLoader.load(); } public function load(_arg1:String, _arg2:String, _arg3:int=10):void{ var _local4 = (("http://" + _arg2.split("/")[2]) + "/"); _local4 = "http://marvelkids.marvel.com/"; MonsterDebugger.trace(this, ("Base URL is " + _local4)); _adTimer = new Timer((_arg3 * 1000)); _adTimer.addEventListener(TimerEvent.TIMER, onAdTimerTick); Security.loadPolicyFile((_local4 + Constants.CROSS_DOMAIN)); _marvel_loader = new Loader(); _marvel_loader.load(new URLRequest((_local4 + MARVEL_URL))); MonsterDebugger.trace(this, (("Ad URL is " + _local4) + MARVEL_URL)); _marvel_loader.contentLoaderInfo.addEventListener(Event.COMPLETE, handleMarvelAdLoaded); _marvel_loader.contentLoaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler); Security.allowDomain("ad.doubleclick.net", ""); var _local5:String = _arg1; _applicationDomain = new ApplicationDomain(); if (Security.sandboxType == Security.REMOTE){ loadAd(_local5); } else { _dart_error = true; _dart_loaded = true; MonsterDebugger.trace(this, (("Cannot load ad in " + Security.sandboxType) + "sandbox type")); }; } private function ioErrorHandler(_arg1:IOErrorEvent):void{ MonsterDebugger.trace(this, ("Marvel Error" + _arg1.type)); _marvel_error = true; handleMarvelAdLoaded(); } private function onFlashAdLoaded(_arg1:FlashInFlashAdLoadedEvent):void{ MonsterDebugger.trace(this, "onFlashAdLoaded"); _dart_loaded = true; _flashInFlashAd = (_arg1.getAd() as FlashInFlashAd); _flashInFlashAd.addEventListener(DartShellErrorEvent.TYPE, onDartShellError); _flashInFlashAd.addEventListener(AdEvent.EXIT, onFlashAdExit); _flashInFlashAd.addEventListener(FlashAssetLoadedEvent.TYPE, onFlashAssetLoaded); _flashInFlashAd.display(this); TweenLite.to(this, 0.5, {alpha:1}); stopTimer(); startTimer(); } private function stopTimer():void{ if (_adTimer != null){ _adTimer.stop(); }; } private function handleMarvelAdLoaded(_arg1:Event=null):void{ MonsterDebugger.trace(this, ((((("handleMarvelAdLoaded _dart_error:" + _dart_error) + " _dart_loaded ") + _dart_loaded) + " _marvel_error ") + _marvel_error)); clearTimeout(_marvel_timeout); if (_dart_error){ if (!_marvel_error){ MonsterDebugger.trace(this, "Display Marvel Default Ad"); addChild(_marvel_loader.content); TweenLite.to(this, 0.5, {alpha:1}); stopTimer(); startTimer(); } else { MonsterDebugger.trace(this, "Dart Error and Marvel Error"); exit(); }; } else { if (!_dart_loaded){ _marvel_timeout = setTimeout(handleMarvelAdLoaded, 500); }; }; } } }//package
Section 425
//Distribution (Distribution) package { public class Distribution { public static const VERSION:String = "13"; } }//package
Section 426
//EmbeddedData (EmbeddedData) package { import flash.events.*; import flash.net.*; public class EmbeddedData { public static const EMBEDDED_DATA_LOADED:String = "embeddedDataLoaded"; private static var xmlLoader:URLLoader; private static var m_data:XML = <data> <levels> <level> <title>Level 01.. testing</title> <cell width="28" height="28"></cell> <background asset="assets.level01" width="756" height="476" offsetCellX="-1" offsetCellY="-1"></background> <map> <!-- 0 is bg, 1 is goal, 2 is path, 3 is spawn, 4 is buildable !--> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>3</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>3</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>0</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>3</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>1</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>2</x><x>4</x><x>4</x><x>4</x><x>4</x><x>4</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>2</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> <y> <x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>3</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x><x>0</x> </y> </map> <routes> <route> <cell><x>8</x><y>0</y></cell> <cell><x>8</x><y>1</y></cell> <cell><x>8</x><y>2</y></cell> <cell><x>8</x><y>3</y></cell> <cell><x>8</x><y>4</y></cell> <cell><x>9</x><y>4</y></cell> <cell><x>10</x><y>4</y></cell> <cell><x>11</x><y>4</y></cell> <cell><x>12</x><y>4</y></cell> <cell><x>13</x><y>4</y></cell> <cell><x>14</x><y>4</y></cell> <cell><x>15</x><y>4</y></cell> <cell><x>16</x><y>4</y></cell> <cell><x>17</x><y>4</y></cell> <cell><x>18</x><y>4</y></cell> <cell><x>19</x><y>4</y></cell> <cell><x>20</x><y>4</y></cell> <cell><x>21</x><y>4</y></cell> <cell><x>21</x><y>5</y></cell> <cell><x>21</x><y>6</y></cell> <cell><x>21</x><y>7</y></cell> <cell><x>21</x><y>8</y></cell> <cell><x>21</x><y>9</y></cell> <cell><x>21</x><y>10</y></cell> <cell><x>22</x><y>10</y></cell> </route> <route> <cell><x>0</x><y>5</y></cell> <cell><x>1</x><y>5</y></cell> <cell><x>2</x><y>5</y></cell> <cell><x>3</x><y>5</y></cell> <cell><x>4</x><y>5</y></cell> <cell><x>5</x><y>5</y></cell> <cell><x>6</x><y>5</y></cell> <cell><x>7</x><y>5</y></cell> <cell><x>7</x><y>6</y></cell> <cell><x>7</x><y>7</y></cell> <cell><x>8</x><y>7</y></cell> <cell><x>9</x><y>7</y></cell> <cell><x>10</x><y>7</y></cell> <cell><x>11</x><y>7</y></cell> <cell><x>12</x><y>7</y></cell> <cell><x>13</x><y>7</y></cell> <cell><x>14</x><y>7</y></cell> <cell><x>15</x><y>7</y></cell> <cell><x>16</x><y>7</y></cell> <cell><x>16</x><y>8</y></cell> <cell><x>16</x><y>9</y></cell> <cell><x>17</x><y>9</y></cell> <cell><x>18</x><y>9</y></cell> <cell><x>19</x><y>9</y></cell> <cell><x>20</x><y>9</y></cell> <cell><x>21</x><y>9</y></cell> <cell><x>21</x><y>10</y></cell> <cell><x>22</x><y>10</y></cell> </route> <route> <cell><x>0</x><y>10</y></cell> <cell><x>1</x><y>10</y></cell> <cell><x>2</x><y>10</y></cell> <cell><x>3</x><y>10</y></cell> <cell><x>4</x><y>10</y></cell> <cell><x>5</x><y>10</y></cell> <cell><x>6</x><y>10</y></cell> <cell><x>7</x><y>10</y></cell> <cell><x>8</x><y>10</y></cell> <cell><x>9</x><y>10</y></cell> <cell><x>10</x><y>10</y></cell> <cell><x>11</x><y>10</y></cell> <cell><x>12</x><y>10</y></cell> <cell><x>12</x><y>9</y></cell> <cell><x>12</x><y>8</y></cell> <cell><x>12</x><y>7</y></cell> <cell><x>13</x><y>7</y></cell> <cell><x>14</x><y>7</y></cell> <cell><x>15</x><y>7</y></cell> <cell><x>16</x><y>7</y></cell> <cell><x>16</x><y>8</y></cell> <cell><x>16</x><y>9</y></cell> <cell><x>17</x><y>9</y></cell> <cell><x>18</x><y>9</y></cell> <cell><x>19</x><y>9</y></cell> <cell><x>20</x><y>9</y></cell> <cell><x>21</x><y>9</y></cell> <cell><x>21</x><y>10</y></cell> <cell><x>22</x><y>10</y></cell> </route> <route> <cell><x>6</x><y>17</y></cell> <cell><x>6</x><y>16</y></cell> <cell><x>6</x><y>15</y></cell> <cell><x>7</x><y>15</y></cell> <cell><x>8</x><y>15</y></cell> <cell><x>9</x><y>15</y></cell> <cell><x>10</x><y>15</y></cell> <cell><x>11</x><y>15</y></cell> <cell><x>12</x><y>15</y></cell> <cell><x>13</x><y>15</y></cell> <cell><x>14</x><y>15</y></cell> <cell><x>15</x><y>15</y></cell> <cell><x>16</x><y>15</y></cell> <cell><x>16</x><y>14</y></cell> <cell><x>16</x><y>13</y></cell> <cell><x>16</x><y>12</y></cell> <cell><x>17</x><y>12</y></cell> <cell><x>18</x><y>12</y></cell> <cell><x>19</x><y>12</y></cell> <cell><x>20</x><y>12</y></cell> <cell><x>21</x><y>12</y></cell> <cell><x>21</x><y>11</y></cell> <cell><x>21</x><y>10</y></cell> <cell><x>22</x><y>10</y></cell> </route> <route> <cell><x>0</x><y>9</y></cell> <cell><x>1</x><y>9</y></cell> <cell><x>2</x><y>9</y></cell> <cell><x>3</x><y>9</y></cell> <cell><x>4</x><y>9</y></cell> <cell><x>5</x><y>9</y></cell> <cell><x>6</x><y>9</y></cell> <cell><x>7</x><y>9</y></cell> <cell><x>8</x><y>9</y></cell> <cell><x>9</x><y>9</y></cell> <cell><x>10</x><y>9</y></cell> <cell><x>11</x><y>9</y></cell> <cell><x>12</x><y>9</y></cell> <cell><x>13</x><y>9</y></cell> <cell><x>14</x><y>9</y></cell> <cell><x>15</x><y>9</y></cell> <cell><x>16</x><y>9</y></cell> <cell><x>17</x><y>9</y></cell> <cell><x>18</x><y>9</y></cell> <cell><x>19</x><y>9</y></cell> <cell><x>20</x><y>9</y></cell> <cell><x>21</x><y>9</y></cell> <cell><x>22</x><y>9</y></cell> <cell><x>23</x><y>9</y></cell> </route> <route> <cell><x>0</x><y>11</y></cell> <cell><x>1</x><y>11</y></cell> <cell><x>2</x><y>11</y></cell> <cell><x>3</x><y>11</y></cell> <cell><x>4</x><y>11</y></cell> <cell><x>5</x><y>11</y></cell> <cell><x>6</x><y>11</y></cell> <cell><x>7</x><y>11</y></cell> <cell><x>8</x><y>11</y></cell> <cell><x>9</x><y>11</y></cell> <cell><x>10</x><y>11</y></cell> <cell><x>11</x><y>11</y></cell> <cell><x>12</x><y>11</y></cell> <cell><x>13</x><y>11</y></cell> <cell><x>14</x><y>11</y></cell> <cell><x>15</x><y>11</y></cell> <cell><x>16</x><y>11</y></cell> <cell><x>17</x><y>11</y></cell> <cell><x>18</x><y>11</y></cell> <cell><x>19</x><y>11</y></cell> <cell><x>20</x><y>11</y></cell> <cell><x>21</x><y>11</y></cell> <cell><x>22</x><y>11</y></cell> <cell><x>23</x><y>11</y></cell> </route> </routes> <waves> <!-- Instructions --> Min time - minimum amount of time till a new wave can be launched. 30 = 1 second Boss round - denotes a boss fight. Means you cant progress the wave before/during Route id - 0, 1, 2, 3 are land, 4 and 5 are air Time offset - delay until that cluster starts being spawned in the wave Time gap - gap between inividual units being spawned Types of enemies: moleoid, aimsentry_blue, aimsentry_red, aimsentry_yellow, doombot, jeep, helicopter, attackapc, lighttank, heavytank, cruisemissile, moleman, modok, drdoom !--> <wave id="1" minTime="60" bossRound="0" cashBonus="5" scoreBonus="0"> <cluster type="moleoid" health="20" routeid="1" units="10" timeoffset="100" timegap="65"/> <cluster type="moleoid" health="20" routeid="1" units="3" timeoffset="120" timegap="85"/> </wave> <wave id="2" minTime="60" bossRound="0" cashBonus="5" scoreBonus="100"> <cluster type="moleoid" health="20" routeid="1" units="10" timeoffset="0" timegap="45"/> <cluster type="moleoid" health="23" routeid="2" units="10" timeoffset="120" timegap="95"/> </wave> <wave id="3" minTime="60" bossRound="0" cashBonus="5" scoreBonus="100"> <cluster type="moleoid" health="25" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="moleoid" health="22" routeid="2" units="15" timeoffset="100" timegap="45"/> <cluster type="moleoid" health="22" routeid="2" units="15" timeoffset="200" timegap="45"/> <cluster type="jeep" health="40" routeid="1" units="2" timeoffset="500" timegap="240"/> </wave> <wave id="4" minTime="60" bossRound="0" cashBonus="5" scoreBonus="100"> <cluster type="moleoid" health="25" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="moleoid" health="28" routeid="2" units="15" timeoffset="0" timegap="45"/> <cluster type="jeep" health="40" routeid="1" units="4" timeoffset="1200" timegap="120"/> <cluster type="moleoid" health="30" routeid="3" units="5" timeoffset="600" timegap="45"/> </wave> <wave id="5" minTime="60" bossRound="0" cashBonus="5" scoreBonus="100"> <cluster type="jeep" health="55" routeid="1" units="7" timeoffset="150" timegap="100"/> <cluster type="attackapc" health="120" routeid="1" units="1" timeoffset="550" timegap="45"/> <cluster type="aimsentry_blue" health="45" routeid="2" units="15" timeoffset="1100" timegap="45"/> <cluster type="moleoid" health="30" routeid="3" units="20" timeoffset="900" timegap="45"/> <cluster type="aimsentry_red" health="45" routeid="2" units="15" timeoffset="1100" timegap="45"/> </wave> <wave id="6" minTime="60" bossRound="0" cashBonus="10" scoreBonus="200"> <cluster type="moleoid" health="45" routeid="0" units="30" timeoffset="0" timegap="85"/> <cluster type="aimsentry_red" health="50" routeid="2" units="25" timeoffset="0" timegap="65"/> <cluster type="attackapc" health="105" routeid="1" units="2" timeoffset="800" timegap="45"/> <cluster type="jeep" health="50" routeid="1" units="5" timeoffset="1400" timegap="45"/> <cluster type="jeep" health="45" routeid="2" units="5" timeoffset="3800" timegap="45"/> <cluster type="moleoid" health="30" routeid="0" units="30" timeoffset="0" timegap="85"/> <cluster type="moleoid" health="30" routeid="2" units="30" timeoffset="0" timegap="85"/> <cluster type="moleoid" health="30" routeid="3" units="30" timeoffset="0" timegap="85"/> </wave> <wave id="7" minTime="60" bossRound="0" cashBonus="10" scoreBonus="200"> <cluster type="aimsentry_yellow" health="45" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="aimsentry_red" health="40" routeid="1" units="20" timeoffset="0" timegap="45"/> <cluster type="jeep" health="50" routeid="2" units="3" timeoffset="1600" timegap="45"/> <cluster type="attackapc" health="130" routeid="2" units="1" timeoffset="1600" timegap="45"/> <cluster type="moleoid" health="35" routeid="2" units="30" timeoffset="650" timegap="25"/> <cluster type="moleoid" health="25" routeid="0" units="30" timeoffset="1050" timegap="25"/> <cluster type="attackapc" health="120" routeid="3" units="2" timeoffset="2000" timegap="45"/> </wave> <wave id="8" minTime="60" bossRound="0" cashBonus="10" scoreBonus="200"> <cluster type="aimsentry_red" health="55" routeid="1" units="25" timeoffset="0" timegap="45"/> <cluster type="doombot" health="70" routeid="1" units="12" timeoffset="200" timegap="45"/> <cluster type="attackapc" health="150" routeid="2" units="2" timeoffset="1000" timegap="45"/> <cluster type="jeep" health="60" routeid="2" units="4" timeoffset="150" timegap="45"/> <cluster type="moleoid" health="30" routeid="2" units="35" timeoffset="200" timegap="45"/> <cluster type="jeep" health="70" routeid="3" units="5" timeoffset="1800" timegap="45"/> </wave> <wave id="9" minTime="60" bossRound="0" cashBonus="10" scoreBonus="200"> <cluster type="moleoid" health="35" routeid="1" units="30" timeoffset="0" timegap="45"/> <cluster type="aimsentry_blue" health="70" routeid="1" units="15" timeoffset="1450" timegap="45"/> <cluster type="jeep" health="80" routeid="2" units="5" timeoffset="200" timegap="45"/> <cluster type="attackapc" health="180" routeid="2" units="5" timeoffset="2650" timegap="45"/> <cluster type="doombot" health="90" routeid="0" units="7" timeoffset="700" timegap="25"/> <cluster type="aimsentry_yellow" health="70" routeid="2" units="20" timeoffset="800" timegap="45"/> <cluster type="attackapc" health="240" routeid="3" units="3" timeoffset="2250" timegap="25"/> </wave> <wave id="10" minTime="60" bossRound="1" cashBonus="20" scoreBonus="400"> <cluster type="jeep" health="80" routeid="1" units="10" timeoffset="0" timegap="45"/> <cluster type="lighttank" health="320" routeid="0" units="1" timeoffset="500" timegap="45"/> <cluster type="doombot" health="70" routeid="1" units="15" timeoffset="600" timegap="45"/> <cluster type="attackapc" health="320" routeid="2" units="7" timeoffset="350" timegap="75"/> <cluster type="attackapc" health="370" routeid="2" units="2" timeoffset="0" timegap="45"/> <cluster type="moleoid" health="125" routeid="3" units="15" timeoffset="1200" timegap="45"/> <cluster type="moleoid" health="125" routeid="2" units="15" timeoffset="1200" timegap="45"/> <cluster type="moleoid" health="85" routeid="1" units="30" timeoffset="1200" timegap="45"/> <cluster type="moleman" health="2800" routeid="1" units="1" timeoffset="1800" timegap="45"/> <cluster type="aimsentry_yellow" health="120" routeid="3" units="15" timeoffset="1400" timegap="45"/> <cluster type="helicopter" health="175" routeid="4" units="2" timeoffset="1800" timegap="65"/> </wave> <wave id="11" minTime="60" bossRound="0" cashBonus="20" scoreBonus="400"> <cluster type="doombot" health="120" routeid="0" units="10" timeoffset="0" timegap="45"/> <cluster type="moleoid" health="50" routeid="1" units="20" timeoffset="250" timegap="45"/> <cluster type="attackapc" health="550" routeid="2" units="2" timeoffset="0" timegap="145"/> <cluster type="doombot" health="100" routeid="2" units="15" timeoffset="0" timegap="45"/> <cluster type="aimsentry_red" health="110" routeid="3" units="20" timeoffset="700" timegap="45"/> <cluster type="helicopter" health="210" routeid="5" units="3" timeoffset="1200" timegap="45"/> <cluster type="helicopter" health="220" routeid="4" units="3" timeoffset="1800" timegap="45"/> </wave> <wave id="12" minTime="60" bossRound="0" cashBonus="20" scoreBonus="400"> <cluster type="moleoid" health="20" routeid="0" units="15" timeoffset="0" timegap="45"/> <cluster type="jeep" health="75" routeid="1" units="6" timeoffset="90" timegap="45"/> <cluster type="aimsentry_blue" health="60" routeid="1" units="15" timeoffset="250" timegap="45"/> <cluster type="helicopter" health="250" routeid="4" units="7" timeoffset="800" timegap="45"/> <cluster type="doombot" health="70" routeid="2" units="15" timeoffset="0" timegap="45"/> <cluster type="lighttank" health="350" routeid="2" units="3" timeoffset="1700" timegap="145"/> <cluster type="attackapc" health="210" routeid="0" units="5" timeoffset="2200" timegap="100"/> </wave> <wave id="13" minTime="60" bossRound="0" cashBonus="20" scoreBonus="400"> <cluster type="doombot" health="120" routeid="1" units="20" timeoffset="900" timegap="30"/> <cluster type="attackapc" health="350" routeid="2" units="8" timeoffset="0" timegap="130"/> <cluster type="aimsentry_blue" health="100" routeid="0" units="15" timeoffset="300" timegap="45"/> <cluster type="aimsentry_red" health="100" routeid="3" units="15" timeoffset="300" timegap="45"/> <cluster type="jeep" health="120" routeid="0" units="10" timeoffset="0" timegap="25"/> <cluster type="lighttank" health="550" routeid="1" units="8" timeoffset="1770" timegap="65"/> <cluster type="aimsentry_red" health="150" routeid="0" units="15" timeoffset="1200" timegap="45"/> </wave> <wave id="14" minTime="60" bossRound="0" cashBonus="20" scoreBonus="400"> <cluster type="jeep" health="120" routeid="0" units="15" timeoffset="0" timegap="35"/> <cluster type="attackapc" health="275" routeid="1" units="10" timeoffset="1440" timegap="45"/> <cluster type="lighttank" health="390" routeid="3" units="7" timeoffset="0" timegap="65"/> <cluster type="helicopter" health="230" routeid="0" units="12" timeoffset="900" timegap="100"/> <cluster type="aimsentry_blue" health="100" routeid="0" units="15" timeoffset="300" timegap="45"/> <cluster type="aimsentry_red" health="100" routeid="0" units="15" timeoffset="300" timegap="45"/> <cluster type="aimsentry_yellow" health="300" routeid="1" units="5" timeoffset="300" timegap="45"/> </wave> <wave id="15" minTime="60" bossRound="0" cashBonus="30" scoreBonus="600"> <cluster type="aimsentry_yellow" health="120" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="aimsentry_red" health="120" routeid="3" units="15" timeoffset="0" timegap="45"/> <cluster type="doombot" health="140" routeid="1" units="10" timeoffset="280" timegap="45"/> <cluster type="lighttank" health="620" routeid="2" units="2" timeoffset="400" timegap="45"/> <cluster type="helicopter" health="460" routeid="0" units="2" timeoffset="900" timegap="100"/> <cluster type="jeep" health="250" routeid="0" units="8" timeoffset="1150" timegap="45"/> <cluster type="moleoid" health="90" routeid="1" units="20" timeoffset="750" timegap="45"/> <cluster type="attackapc" health="550" routeid="2" units="10" timeoffset="1850" timegap="45"/> </wave> <wave id="16" minTime="60" bossRound="0" cashBonus="30" scoreBonus="600"> <cluster type="moleoid" health="70" routeid="0" units="35" timeoffset="0" timegap="25"/> <cluster type="aimsentry_blue" health="70" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="attackapc" health="150" routeid="3" units="15" timeoffset="600" timegap="45"/> <cluster type="doombot" health="95" routeid="2" units="10" timeoffset="220" timegap="45"/> <cluster type="jeep" health="180" routeid="3" units="10" timeoffset="400" timegap="45"/> <cluster type="jeep" health="180" routeid="3" units="10" timeoffset="500" timegap="55"/> <cluster type="lighttank" health="470" routeid="0" units="7" timeoffset="1230" timegap="45"/> <cluster type="helicopter" health="320" routeid="5" units="7" timeoffset="1250" timegap="60"/> </wave> <wave id="17" minTime="60" bossRound="0" cashBonus="30" scoreBonus="600"> <cluster type="lighttank" health="450" routeid="0" units="5" timeoffset="270" timegap="45"/> <cluster type="jeep" health="160" routeid="1" units="7" timeoffset="0" timegap="45"/> <cluster type="attackapc" health="250" routeid="1" units="15" timeoffset="320" timegap="45"/> <cluster type="moleoid" health="125" routeid="0" units="55" timeoffset="500" timegap="45"/> <cluster type="heavytank" health="1200" routeid="0" units="1" timeoffset="600" timegap="120"/> <cluster type="heavytank" health="1000" routeid="2" units="1" timeoffset="700" timegap="120"/> <cluster type="heavytank" health="1000" routeid="1" units="1" timeoffset="900" timegap="120"/> <cluster type="aimsentry_blue" health="100" routeid="0" units="30" timeoffset="100" timegap="35"/> <cluster type="doombot" health="250" routeid="2" units="15" timeoffset="360" timegap="45"/> <cluster type="helicopter" health="250" routeid="4" units="3" timeoffset="300" timegap="60"/> <cluster type="cruisemissile" health="500" routeid="5" units="1" timeoffset="400" timegap="60"/> </wave> <wave id="18" minTime="60" bossRound="0" cashBonus="30" scoreBonus="600"> <cluster type="aimsentry_blue" health="90" routeid="0" units="10" timeoffset="200" timegap="30"/> <cluster type="doombot" health="110" routeid="0" units="20" timeoffset="530" timegap="30"/> <cluster type="heavytank" health="1000" routeid="0" units="1" timeoffset="400" timegap="120"/> <cluster type="jeep" health="200" routeid="1" units="10" timeoffset="200" timegap="25"/> <cluster type="lighttank" health="450" routeid="1" units="5" timeoffset="2800" timegap="45"/> <cluster type="attackapc" health="350" routeid="1" units="5" timeoffset="2800" timegap="25"/> <cluster type="heavytank" health="1320" routeid="2" units="5" timeoffset="160" timegap="320"/> <cluster type="cruisemissile" health="450" routeid="5" units="4" timeoffset="400" timegap="160"/> <cluster type="helicopter" health="250" routeid="5" units="8" timeoffset="750" timegap="60"/> </wave> <wave id="19" minTime="60" bossRound="0" cashBonus="30" scoreBonus="600"> <cluster type="doombot" health="110" routeid="0" units="20" timeoffset="0" timegap="25"/> <cluster type="heavytank" health="1500" routeid="0" units="1" timeoffset="400" timegap="120"/> <cluster type="lighttank" health="400" routeid="1" units="5" timeoffset="400" timegap="45"/> <cluster type="attackapc" health="250" routeid="2" units="5" timeoffset="0" timegap="30"/> <cluster type="jeep" health="190" routeid="2" units="7" timeoffset="1480" timegap="30"/> <cluster type="moleoid" health="40" routeid="2" units="20" timeoffset="320" timegap="25"/> <cluster type="aimsentry_blue" health="120" routeid="2" units="20" timeoffset="400" timegap="25"/> <cluster type="helicopter" health="400" routeid="5" units="8" timeoffset="1600" timegap="45"/> </wave> <wave id="20" minTime="60" bossRound="1" cashBonus="40" scoreBonus="1200"> <cluster type="heavytank" health="1300" routeid="3" units="5" timeoffset="50" timegap="90"/> <cluster type="lighttank" health="550" routeid="2" units="5" timeoffset="350" timegap="45"/> <cluster type="aimsentry_blue" health="200" routeid="1" units="30" timeoffset="900" timegap="35"/> <cluster type="modok" health="6400" routeid="2" units="1" timeoffset="1200" timegap="45"/> <cluster type="aimsentry_red" health="200" routeid="3" units="30" timeoffset="900" timegap="25"/> <cluster type="aimsentry_yellow" health="200" routeid="0" units="30" timeoffset="1600" timegap="35"/> <cluster type="helicopter" health="450" routeid="4" units="3" timeoffset="1650" timegap="60"/> <cluster type="cruisemissile" health="500" routeid="5" units="5" timeoffset="1900" timegap="120"/> </wave> <wave id="21" minTime="60" bossRound="0" cashBonus="40" scoreBonus="1200"> <cluster type="attackapc" health="350" routeid="1" units="15" timeoffset="500" timegap="45"/> <cluster type="lighttank" health="650" routeid="2" units="10" timeoffset="300" timegap="45"/> <cluster type="heavytank" health="1700" routeid="3" units="7" timeoffset="200" timegap="120"/> <cluster type="cruisemissile" health="530" routeid="4" units="10" timeoffset="600" timegap="120"/> <cluster type="cruisemissile" health="530" routeid="5" units="10" timeoffset="600" timegap="150"/> <cluster type="jeep" health="300" routeid="1" units="4" timeoffset="1000" timegap="45"/> <cluster type="jeep" health="300" routeid="2" units="4" timeoffset="1000" timegap="45"/> <cluster type="jeep" health="300" routeid="3" units="4" timeoffset="1000" timegap="45"/> </wave> <wave id="22" minTime="60" bossRound="0" cashBonus="40" scoreBonus="1200"> <cluster type="moleoid" health="80" routeid="0" units="30" timeoffset="0" timegap="65"/> <cluster type="aimsentry_blue" health="140" routeid="3" units="20" timeoffset="500" timegap="15"/> <cluster type="lighttank" health="650" routeid="1" units="10" timeoffset="0" timegap="45"/> <cluster type="aimsentry_blue" health="140" routeid="1" units="20" timeoffset="500" timegap="15"/> <cluster type="aimsentry_blue" health="140" routeid="2" units="20" timeoffset="500" timegap="15"/> <cluster type="attackapc" health="550" routeid="2" units="10" timeoffset="800" timegap="35"/> <cluster type="jeep" health="500" routeid="2" units="10" timeoffset="400" timegap="45"/> <cluster type="doombot" health="500" routeid="3" units="10" timeoffset="800" timegap="45"/> <cluster type="helicopter" health="650" routeid="4" units="5" timeoffset="800" timegap="60"/> </wave> <wave id="23" minTime="60" bossRound="0" cashBonus="40" scoreBonus="1200"> <cluster type="attackapc" health="450" routeid="1" units="10" timeoffset="100" timegap="45"/> <cluster type="lighttank" health="550" routeid="1" units="7" timeoffset="460" timegap="45"/> <cluster type="aimsentry_red" health="300" routeid="0" units="7" timeoffset="900" timegap="25"/> <cluster type="aimsentry_blue" health="220" routeid="2" units="20" timeoffset="0" timegap="35"/> <cluster type="doombot" health="350" routeid="2" units="30" timeoffset="600" timegap="35"/> <cluster type="heavytank" health="1800" routeid="3" units="7" timeoffset="0" timegap="60"/> <cluster type="moleoid" health="180" routeid="3" units="30" timeoffset="1000" timegap="35"/> <cluster type="moleoid" health="180" routeid="3" units="30" timeoffset="1000" timegap="35"/> <cluster type="moleoid" health="180" routeid="3" units="30" timeoffset="1000" timegap="35"/> <cluster type="cruisemissile" health="400" routeid="4" units="5" timeoffset="600" timegap="100"/> </wave> <wave id="24" minTime="60" bossRound="0" cashBonus="40" scoreBonus="1200"> <cluster type="lighttank" health="550" routeid="2" units="10" timeoffset="250" timegap="45"/> <cluster type="lighttank" health="550" routeid="1" units="10" timeoffset="250" timegap="45"/> <cluster type="heavytank" health="2000" routeid="0" units="5" timeoffset="0" timegap="120"/> <cluster type="helicopter" health="250" routeid="5" units="10" timeoffset="600" timegap="100"/> <cluster type="aimsentry_yellow" health="160" routeid="0" units="30" timeoffset="800" timegap="35"/> <cluster type="aimsentry_blue" health="160" routeid="2" units="15" timeoffset="1000" timegap="45"/> <cluster type="doombot" health="200" routeid="3" units="30" timeoffset="800" timegap="35"/> <cluster type="cruisemissile" health="500" routeid="0" units="4" timeoffset="400" timegap="70"/> <cluster type="cruisemissile" health="500" routeid="4" units="2" timeoffset="400" timegap="60"/> </wave> <wave id="25" minTime="60" bossRound="0" cashBonus="50" scoreBonus="2500"> <cluster type="jeep" health="120" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="attackapc" health="250" routeid="1" units="15" timeoffset="700" timegap="45"/> <cluster type="lighttank" health="550" routeid="2" units="20" timeoffset="0" timegap="45"/> <cluster type="heavytank" health="2200" routeid="3" units="5" timeoffset="300" timegap="120"/> <cluster type="aimsentry_red" health="220" routeid="0" units="30" timeoffset="800" timegap="35"/> <cluster type="doombot" health="500" routeid="2" units="30" timeoffset="800" timegap="35"/> <cluster type="heavytank" health="3800" routeid="3" units="2" timeoffset="300" timegap="800"/> </wave> <wave id="26" minTime="60" bossRound="0" cashBonus="50" scoreBonus="2500"> <cluster type="aimsentry_blue" health="140" routeid="1" units="15" timeoffset="0" timegap="45"/> <cluster type="lighttank" health="350" routeid="1" units="5" timeoffset="250" timegap="45"/> <cluster type="moleoid" health="20" routeid="1" units="20" timeoffset="500" timegap="45"/> <cluster type="heavytank" health="1700" routeid="2" units="6" timeoffset="0" timegap="120"/> <cluster type="jeep" health="460" routeid="3" units="7" timeoffset="0" timegap="45"/> <cluster type="attackapc" health="550" routeid="3" units="11" timeoffset="250" timegap="45"/> <cluster type="doombot" health="50" routeid="3" units="5" timeoffset="400" timegap="45"/> <cluster type="cruisemissile" health="850" routeid="4" units="10" timeoffset="400" timegap="60"/> <cluster type="helicopter" health="170" routeid="5" units="15" timeoffset="800" timegap="60"/> </wave> <wave id="27" minTime="60" bossRound="0" cashBonus="50" scoreBonus="2500"> <cluster type="heavytank" health="1700" routeid="1" units="5" timeoffset="0" timegap="80"/> <cluster type="heavytank" health="1700" routeid="1" units="5" timeoffset="0" timegap="80"/> <cluster type="heavytank" health="1700" routeid="2" units="5" timeoffset="0" timegap="80"/> <cluster type="heavytank" health="1700" routeid="2" units="5" timeoffset="0" timegap="80"/> <cluster type="heavytank" health="1900" routeid="3" units="5" timeoffset="0" timegap="80"/> <cluster type="heavytank" health="2000" routeid="3" units="5" timeoffset="1000" timegap="80"/> <cluster type="heavytank" health="3000" routeid="0" units="5" timeoffset="1400" timegap="80"/> <cluster type="heavytank" health="3700" routeid="0" units="5" timeoffset="1600" timegap="80"/> <cluster type="heavytank" health="4900" routeid="1" units="5" timeoffset="1900" timegap="80"/> </wave> <wave id="28" minTime="60" bossRound="0" cashBonus="50" scoreBonus="2500"> <cluster type="heavytank" health="3200" routeid="0" units="15" timeoffset="0" timegap="200"/> <cluster type="lighttank" health="650" routeid="1" units="20" timeoffset="0" timegap="45"/> <cluster type="aimsentry_yellow" health="350" routeid="2" units="20" timeoffset="900" timegap="45"/> <cluster type="aimsentry_yellow" health="350" routeid="0" units="20" timeoffset="900" timegap="45"/> <cluster type="aimsentry_red" health="450" routeid="3" units="20" timeoffset="1200" timegap="45"/> <cluster type="doombot" health="750" routeid="3" units="25" timeoffset="300" timegap="45"/> <cluster type="cruisemissile" health="900" routeid="4" units="10" timeoffset="1400" timegap="120"/> <cluster type="helicopter" health="850" routeid="5" units="10" timeoffset="1400" timegap="60"/> </wave> <wave id="29" minTime="60" bossRound="0" cashBonus="50" scoreBonus="2500"> <cluster type="lighttank" health="850" routeid="1" units="30" timeoffset="700" timegap="65"/> <cluster type="heavytank" health="3700" routeid="0" units="20" timeoffset="0" timegap="120"/> <cluster type="cruisemissile" health="750" routeid="4" units="10" timeoffset="200" timegap="60"/> <cluster type="cruisemissile" health="750" routeid="5" units="10" timeoffset="400" timegap="60"/> <cluster type="cruisemissile" health="750" routeid="4" units="7" timeoffset="800" timegap="60"/> <cluster type="cruisemissile" health="950" routeid="1" units="5" timeoffset="1200" timegap="60"/> <cluster type="cruisemissile" health="850" routeid="2" units="5" timeoffset="1600" timegap="60"/> <cluster type="cruisemissile" health="1150" routeid="3" units="5" timeoffset="2000" timegap="60"/> </wave> <wave id="30" minTime="60" bossRound="1" cashBonus="0" scoreBonus="0"> <cluster type="lighttank" health="1700" routeid="1" units="25" timeoffset="0" timegap="45"/> <cluster type="drdoom" health="15400" routeid="2" units="1" timeoffset="6400" timegap="120"/> <cluster type="aimsentry_yellow" health="300" routeid="0" units="30" timeoffset="500" timegap="65"/> <cluster type="aimsentry_red" health="300" routeid="2" units="20" timeoffset="500" timegap="45"/> <cluster type="aimsentry_blue" health="300" routeid="3" units="20" timeoffset="500" timegap="45"/> <cluster type="heavytank" health="3400" routeid="3" units="15" timeoffset="0" timegap="55"/> <cluster type="doombot" health="5835" routeid="0" units="1" timeoffset="5800" timegap="35"/> <cluster type="doombot" health="5835" routeid="1" units="1" timeoffset="5800" timegap="35"/> <cluster type="doombot" health="5835" routeid="2" units="1" timeoffset="5800" timegap="35"/> <cluster type="doombot" health="6135" routeid="3" units="1" timeoffset="5800" timegap="35"/> <cluster type="attackapc" health="600" routeid="2" units="15" timeoffset="1000" timegap="35"/> <cluster type="doombot" health="835" routeid="1" units="30" timeoffset="1300" timegap="35"/> <cluster type="doombot" health="835" routeid="0" units="30" timeoffset="1300" timegap="35"/> <cluster type="moleoid" health="380" routeid="1" units="50" timeoffset="2300" timegap="25"/> <cluster type="moleoid" health="380" routeid="2" units="50" timeoffset="2300" timegap="25"/> <cluster type="moleoid" health="380" routeid="3" units="50" timeoffset="2300" timegap="25"/> <cluster type="cruisemissile" health="2600" routeid="4" units="15" timeoffset="3800" timegap="60"/> <cluster type="helicopter" health="1900" routeid="5" units="10" timeoffset="3800" timegap="60"/> <cluster type="jeep" health="550" routeid="1" units="15" timeoffset="5200" timegap="25"/> <cluster type="jeep" health="350" routeid="2" units="15" timeoffset="5200" timegap="25"/> <cluster type="jeep" health="450" routeid="3" units="15" timeoffset="5200" timegap="25"/> </wave> </waves> </level> </levels> <bosspopup> <moleman> <launch displayTime="7000">When I defeat you, Doom will richly reward me!</launch> <success displayTime="7000">Nooooo! My brilliant attack should have worked!</success> <fail displayTime="7000">Now to grab those Fractals!</fail> </moleman> <modok> <launch displayTime="7000">The superior mind of MODOK will crush your measly defenses!</launch> <success displayTime="7000">Argh! This can’t be happening!</success> <fail displayTime="7000">Again I prove myself as the best there is!</fail> </modok> <drdoom> <launch displayTime="12000">I will have my victory fools, even if I have to do it myself!</launch> <success displayTime="12000">DAMN YOU!</success> <fail displayTime="12000">DEFEATED BY DOOM!</fail> </drdoom> </bosspopup> <finance> <player> <startingFunds funds="75"/> </player> <towers> <blasterTower level1="5" level2="15" level3="30" frequencyBonus="10" rangeBonus="10" resaleFraction="0.5"/> <slowdownTower level1="15" level2="35" level3="65" frequencyBonus="15" rangeBonus="15" resaleFraction="0.5"/> <rocketTower level1="25" level2="45" level3="100" frequencyBonus="20" rangeBonus="20" resaleFraction="0.4"/> <laserTower level1="30" level2="60" level3="115" frequencyBonus="30" rangeBonus="50" resaleFraction="0.4"/> <lightningTower level1="40" level2="85" level3="130" frequencyBonus="30" rangeBonus="50" resaleFraction="0.4"/> </towers> </finance> <enemies> <moleoid speed="0.7" cost="1" score="50"/> <aimsentry speed="1.0" cost="1" score="70"/> <doombot speed="1.1" cost="2" score="100"/> <jeep speed="1.7" cost="3" score="200"/> <helicopter speed="1.9" cost="5" score="800"/> <attackapc speed="1.4" cost="7" score="800"/> <lighttank speed="1.2" cost="11" score="1200"/> <cruisemissile speed="2.1" cost="12" score="1500"/> <heavytank speed="0.9" cost="19" score="2500"/> <moleman speed="0.5" cost="175" score="15000"/> <modok speed="0.7" cost="325" score="30000"/> <drdoom speed="0.9" cost="500" score="50000"/> </enemies> <towers> <blasterTower> <frequency level1="10" level2="5" level3="4"/> <range level1="42" level2="56" level3="72"/> </blasterTower> <slowdownTower> <frequency level1="60" level2="44" level3="25"/> <range level1="70" level2="80" level3="96"/> </slowdownTower> <rocketTower> <frequency level1="50" level2="40" level3="32"/> <range level1="59" level2="75" level3="90"/> </rocketTower> <laserTower> <frequency level1="50" level2="35" level3="25"/> <range level1="63" level2="80" level3="90"/> </laserTower> <lightningTower> <frequency level1="60" level2="50" level3="30"/> <range level1="90" level2="100" level3="110"/> </lightningTower> </towers> <weapons> <blaster> <damage level1="4" level2="7" level3="9"/> </blaster> <slowdown> <damage level1="0.8" level2="0.5" level3="0.3"/> <duration level1="50" level2="60" level3="85"/> <splashdamage level1="8" level2="12" level3="18"/> </slowdown> <rocket> <damage level1="10" level2="17" level3="30"/> <splashdamage level1="13" level2="18" level3="24"/> </rocket> <laser> <damage level1="13" level2="20" level3="35"/> </laser> <lightning> <damage level1="17" level2="25" level3="42"/> </lightning> </weapons> </data> ; public static function loadData():void{ GameBroadcaster.dispatchEvent(new Event(EmbeddedData.EMBEDDED_DATA_LOADED)); } public static function getData():XML{ return (m_data); } private static function xmlLoadCompleteHandler(_arg1:Event):void{ xmlLoader.removeEventListener(Event.COMPLETE, xmlLoadCompleteHandler); m_data = XML(xmlLoader.data); GameBroadcaster.dispatchEvent(new Event(EmbeddedData.EMBEDDED_DATA_LOADED)); } } }//package
Section 427
//GameBroadcaster (GameBroadcaster) package { import flash.events.*; public class GameBroadcaster { private static var eventDispatcher:EventDispatcher; public static function dispatchEvent(_arg1:Event):void{ if (eventDispatcher){ eventDispatcher.dispatchEvent(_arg1); }; } public static function broadcast(_arg1:Event):void{ trace(("Event Broadcast " + _arg1.type)); dispatchEvent(_arg1); } public static function removeEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false):void{ if (eventDispatcher){ eventDispatcher.removeEventListener(_arg1, _arg2, _arg3); }; } public static function addEventListener(_arg1:String, _arg2:Function, _arg3:Boolean=false, _arg4:int=0, _arg5:Boolean=true):void{ if (!eventDispatcher){ eventDispatcher = new EventDispatcher(); }; eventDispatcher.addEventListener(_arg1, _arg2, _arg3, _arg4, _arg5); } } }//package
Section 428
//SoundController (SoundController) package { import flash.events.*; import com.markfennell.sound.*; import flash.utils.*; import flash.geom.*; import assets_sfx.sfx.towers.*; import assets_sfx.sfx.common.*; import assets_sfx.sfx.explosions.*; import assets_sfx.sfx.music.*; import assets_sfx.sfx.weapons.*; public class SoundController { private var embed_tower_upgrade:TowerUpgrade; private var embed_ui_panel_sound2:PanelSound2; private var embed_explosion_medium:MediumExplosion; private var m_soundsEnabled:Boolean;// = true private var embed_ui_panel_sound:PanelSound; private var embed_sfx_menu_track:MenuLoop; private var embed_weapon_lightning:LightningFire; private var m_music_position:Number;// = 0 private var embed_weapon_slowdown:SlowdownFire; private var embed_explosion_boss:BossExplosion; private var m_ragePlayer:SoundPlayer; private var m_rageMode:Boolean; private var m_soundsArray:Array; private var _sfx_ui2:bleep2; private var embed_weapon_blaster:BlasterFire; private var _sfx_ui1:bleep1; private var _sfx_ui3:bleep3; private var embed_weapon_laser:LaserFire; private var m_soundDictionary:Dictionary; private var m_volumeEffects:Number;// = 1 private var embed_explosion_heavy:HeavyExplosion; private var embed_explosion_medium_glass:MediumGlassExplosion; private var embed_ui_nav_button_sound:NavButtonSound; private var m_musicArray:Array; private var embed_weapon_rocket_explosion:RocketExplosion; private var embed_explosion_heli:HeliExplosion; private var embed_tower_build:TowerBuild; private var m_music:SoundPlayer; private var m_volumeMusic:Number;// = 0.3 private var embed_enemy_objective:EnemyObjective; private var embed_sfx_game_track:GameLoop; public var musicEnabled:Boolean;// = true private var m_currentTrack:int;// = -1 private var embed_tower_sell:TowerSell; private var embed_weapon_rocket:RocketFire; private var embed_explosion_medium_vehicle:MediumVehicleExplosion; private var m_foleyArray:Array; private var embed_explosion_small:SmallExplosion; private static var m_instance:SoundController = null; public function SoundController(){ m_instance = this; m_musicArray = ["assets_sfx.sfx.music.MenuLoop", "assets_sfx.sfx.music.GameLoop"]; m_soundsArray = []; m_foleyArray = []; } public function start_music(_arg1:int=0, _arg2:Boolean=false):void{ var _local3:*; trace(("STARTING MUSIC TRACK " + _arg1)); if ((((m_currentTrack == _arg1)) && (!(_arg2)))){ return; }; if (musicEnabled){ m_currentTrack = _arg1; if (m_music){ m_music.destroy(); }; _local3 = getDefinitionByName(m_musicArray[m_currentTrack]); m_music = new SoundPlayer(new (_local3)); m_music.stoppable = false; _local3 = null; m_music.play((Constants.VOLUME_MUSIC * m_volumeMusic), 999); }; } public function set volumeEffects(_arg1:Number):void{ m_volumeEffects = Math.max(0, Math.min(1, _arg1)); } public function resume_music():void{ start_music(m_currentTrack, true); } public function get volumeEffects():Number{ return (m_volumeEffects); } public function stop_music():void{ m_music.stop(); } public function musicRestart(_arg1:Event=null):void{ if (musicEnabled){ m_music.stop(); m_music.play((Constants.VOLUME_MUSIC * m_volumeMusic), 999); }; } public function pause_music(_arg1:Boolean):void{ var pause = _arg1; try { if (pause){ m_music.pause(); } else { if (musicEnabled){ m_music.resume(); }; }; } catch(e:Error) { }; } public function set soundsEnabled(_arg1:Boolean):void{ m_soundsEnabled = _arg1; } public function playSound(_arg1:SoundEvent):void{ var _local2:*; var _local3:SoundPlayer; if (soundsEnabled){ if (_arg1.force){ stopSounds(); }; _local2 = getDefinitionByName(_arg1.name); _local3 = new SoundPlayer(new (_local2)); _local3.play((_arg1.volume * m_volumeEffects), _arg1.loops); _local2 = null; }; } public function createFoley(_arg1:String, _arg2:Number, _arg3:IFoleySource, _arg4:String="loop"):void{ var _local5:* = getDefinitionByName(_arg1); var _local6:FoleySound = new FoleySound(new (_local5), _arg2, _arg3, _arg4); m_foleyArray.push(_local6); } public function playAttack(_arg1:Boolean):void{ if (_arg1){ switch (int((Math.random() * 7))){ }; } else { switch (int((Math.random() * 4))){ }; }; } public function playExplosion(_arg1:Number=0.6):void{ var _local2:Number = _arg1; if (m_rageMode){ _local2 = 1; }; switch (int((Math.random() * 4))){ }; } public function renderFoley(_arg1:Point, _arg2:Boolean=false):void{ var _local3:Number; if (((_arg2) || (!(soundsEnabled)))){ _local3 = 0; } else { _local3 = m_volumeEffects; }; var _local4:int; while (_local4 < m_foleyArray.length) { m_foleyArray[_local4].render(_local3, _arg1); _local4++; }; } public function playHit():void{ var _local1:Number = 0.6; switch (int((Math.random() * 5))){ }; } public function set volumeMusic(_arg1:Number):void{ m_volumeMusic = Math.max(0, Math.min(1, _arg1)); } public function get volumeMusic():Number{ return (m_volumeMusic); } public function get soundsEnabled():Boolean{ return (m_soundsEnabled); } public function resumeSounds():void{ } public function playSpecialAttack(_arg1:String):void{ var _local2:Number = 1; switch (_arg1){ }; } public function stopSounds():void{ SoundPlayer.stopSounds(); } public static function getInstance():SoundController{ if (m_instance == null){ m_instance = new (SoundController); }; return (m_instance); } } }//package
Section 429
//SuperHeroSquad_dart_v1 (SuperHeroSquad_dart_v1) package { import flash.events.*; import console.*; import flash.display.*; import game.achievements.*; import com.malee.net.clearspring.*; import org.casalib.util.*; public class SuperHeroSquad_dart_v1 extends Sprite { private var m_console:Console; public static var ClearSpring:ClearSpringInterface; public static var loadTime:int; public function SuperHeroSquad_dart_v1(){ addEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage); } private function initialiseConsole(_arg1:Event=null):void{ GameBroadcaster.removeEventListener(EmbeddedData.EMBEDDED_DATA_LOADED, initialiseConsole); m_console = new Console(); addChild(m_console); Console.GoogleAnalytics.trackEvent(Constants.TRACKING_TITLE, "game", "load", loadTime); } private function handleOnAddedToStage(_arg1:Event):void{ ClearSpring = new ClearSpringInterface(this); removeEventListener(Event.ADDED_TO_STAGE, handleOnAddedToStage); StageReference.setStage(stage); stage.scaleMode = StageScaleMode.NO_SCALE; stage.quality = StageQuality.MEDIUM; stage.stageFocusRect = false; AchievementController.instance.initialise(); GameBroadcaster.addEventListener(EmbeddedData.EMBEDDED_DATA_LOADED, initialiseConsole); EmbeddedData.loadData(); } public function destroy():void{ m_console.destroy(); } } }//package

Library Items

Symbol 1 GraphicUsed by:2
Symbol 2 MovieClipUses:1Used by:12
Symbol 3 FontUsed by:4
Symbol 4 TextUses:3Used by:5
Symbol 5 MovieClipUses:4Used by:12
Symbol 6 BitmapUsed by:7
Symbol 7 GraphicUses:6Used by:12
Symbol 8 BitmapUsed by:9
Symbol 9 GraphicUses:8Used by:10
Symbol 10 MovieClipUses:9Used by:11
Symbol 11 MovieClip {assets_ui_fla.scanLines_126} [assets_ui_fla.scanLines_126]Uses:10Used by:12
Symbol 12 MovieClip {assets_ui.PreloaderBackgroundUI} [assets_ui.PreloaderBackgroundUI]Uses:2 5 7 11
Symbol 13 BitmapUsed by:14
Symbol 14 GraphicUses:13Used by:15
Symbol 15 MovieClipUses:14Used by:22
Symbol 16 MovieClipUsed by:22
Symbol 17 BitmapUsed by:18
Symbol 18 GraphicUses:17Used by:19
Symbol 19 MovieClipUses:18Used by:22
Symbol 20 BitmapUsed by:21
Symbol 21 GraphicUses:20Used by:22
Symbol 22 MovieClip {assets_ui.Preloader} [assets_ui.Preloader]Uses:15 16 19 21
Symbol 23 BitmapUsed by:24
Symbol 24 GraphicUses:23Used by:25
Symbol 25 MovieClip {assets_ui.pages.CharactersUI} [assets_ui.pages.CharactersUI]Uses:24
Symbol 26 GraphicUsed by:27 31
Symbol 27 MovieClipUses:26Used by:31 607
Symbol 28 BitmapUsed by:29
Symbol 29 GraphicUses:28Used by:30
Symbol 30 MovieClipUses:29Used by:31 607
Symbol 31 MovieClip {assets_ui.pages.IntroVideoUI} [assets_ui.pages.IntroVideoUI]Uses:26 27 30
Symbol 32 BitmapUsed by:33
Symbol 33 GraphicUses:32Used by:34
Symbol 34 MovieClipUses:33Used by:38
Symbol 35 BitmapUsed by:36
Symbol 36 GraphicUses:35Used by:37
Symbol 37 MovieClipUses:36Used by:38
Symbol 38 MovieClip {assets_ui.pages.TitleUI} [assets_ui.pages.TitleUI]Uses:34 37
Symbol 39 BitmapUsed by:40
Symbol 40 GraphicUses:39Used by:70
Symbol 41 BitmapUsed by:42
Symbol 42 GraphicUses:41Used by:43
Symbol 43 MovieClipUses:42Used by:70
Symbol 44 BitmapUsed by:45
Symbol 45 GraphicUses:44Used by:46
Symbol 46 MovieClipUses:45Used by:70
Symbol 47 BitmapUsed by:48
Symbol 48 GraphicUses:47Used by:49
Symbol 49 MovieClipUses:48Used by:70
Symbol 50 BitmapUsed by:51
Symbol 51 GraphicUses:50Used by:52
Symbol 52 MovieClipUses:51Used by:61
Symbol 53 BitmapUsed by:54
Symbol 54 GraphicUses:53Used by:58
Symbol 55 FontUsed by:56 57 156 160 164 168 189 193 211 597 598 732 742 743 831
Symbol 56 EditableTextUses:55Used by:58
Symbol 57 EditableTextUses:55Used by:58
Symbol 58 MovieClipUses:54 56 57Used by:61 65 69
Symbol 59 GraphicUsed by:60
Symbol 60 MovieClipUses:59Used by:61 65 69
Symbol 61 MovieClipUses:52 58 60Used by:70
Symbol 62 BitmapUsed by:63
Symbol 63 GraphicUses:62Used by:64
Symbol 64 MovieClipUses:63Used by:65
Symbol 65 MovieClipUses:64 58 60Used by:70
Symbol 66 BitmapUsed by:67
Symbol 67 GraphicUses:66Used by:68
Symbol 68 MovieClipUses:67Used by:69
Symbol 69 MovieClipUses:68 58 60Used by:70
Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI]Uses:40 43 46 49 61 65 69
Symbol 71 BitmapUsed by:72
Symbol 72 GraphicUses:71Used by:78
Symbol 73 FontUsed by:74
Symbol 74 EditableTextUses:73Used by:78
Symbol 75 BitmapUsed by:76
Symbol 76 GraphicUses:75Used by:77
Symbol 77 MovieClipUses:76Used by:78
Symbol 78 MovieClip {assets_ui.pages.CreditsUI} [assets_ui.pages.CreditsUI]Uses:72 74 77
Symbol 79 Sound {assets_sfx.sfx.common.bleep3} [assets_sfx.sfx.common.bleep3]
Symbol 80 Sound {assets_sfx.sfx.common.bleep2} [assets_sfx.sfx.common.bleep2]
Symbol 81 Sound {assets_sfx.sfx.explosions.MediumVehicleExplosion} [assets_sfx.sfx.explosions.MediumVehicleExplosion]
Symbol 82 Sound {assets_sfx.sfx.common.bleep1} [assets_sfx.sfx.common.bleep1]
Symbol 83 Sound {assets_sfx.sfx.towers.TowerSell} [assets_sfx.sfx.towers.TowerSell]
Symbol 84 Sound {assets_sfx.sfx.music.MenuLoop} [assets_sfx.sfx.music.MenuLoop]
Symbol 85 Sound {assets_sfx.sfx.explosions.MediumExplosion} [assets_sfx.sfx.explosions.MediumExplosion]
Symbol 86 Sound {assets_sfx.sfx.explosions.MediumGlassExplosion} [assets_sfx.sfx.explosions.MediumGlassExplosion]
Symbol 87 Sound {assets_sfx.sfx.towers.TowerBuild} [assets_sfx.sfx.towers.TowerBuild]
Symbol 88 Sound {assets_sfx.sfx.music.GameLoop} [assets_sfx.sfx.music.GameLoop]
Symbol 89 Sound {assets_sfx.sfx.towers.TowerUpgrade} [assets_sfx.sfx.towers.TowerUpgrade]
Symbol 90 Sound {assets_sfx.sfx.weapons.LaserFire} [assets_sfx.sfx.weapons.LaserFire]
Symbol 91 Sound {assets_sfx.sfx.explosions.EnemyObjective} [assets_sfx.sfx.explosions.EnemyObjective]
Symbol 92 Sound {assets_sfx.sfx.weapons.RocketFire} [assets_sfx.sfx.weapons.RocketFire]
Symbol 93 Sound {assets_sfx.sfx.explosions.HeliExplosion} [assets_sfx.sfx.explosions.HeliExplosion]
Symbol 94 Sound {assets_sfx.sfx.common.NavButtonSound} [assets_sfx.sfx.common.NavButtonSound]
Symbol 95 Sound {assets_sfx.sfx.weapons.LightningFire} [assets_sfx.sfx.weapons.LightningFire]
Symbol 96 Sound {assets_sfx.sfx.explosions.SmallExplosion} [assets_sfx.sfx.explosions.SmallExplosion]
Symbol 97 Sound {assets_sfx.sfx.common.PanelSound} [assets_sfx.sfx.common.PanelSound]
Symbol 98 Sound {assets_sfx.sfx.explosions.BossExplosion} [assets_sfx.sfx.explosions.BossExplosion]
Symbol 99 Sound {assets_sfx.sfx.common.PanelSound2} [assets_sfx.sfx.common.PanelSound2]
Symbol 100 Sound {assets_sfx.sfx.explosions.HeavyExplosion} [assets_sfx.sfx.explosions.HeavyExplosion]
Symbol 101 Sound {assets_sfx.sfx.weapons.BlasterFire} [assets_sfx.sfx.weapons.BlasterFire]
Symbol 102 Sound {assets_sfx.sfx.weapons.SlowdownFire} [assets_sfx.sfx.weapons.SlowdownFire]
Symbol 103 Sound {assets_sfx.sfx.weapons.RocketExplosion} [assets_sfx.sfx.weapons.RocketExplosion]
Symbol 104 BitmapUsed by:105
Symbol 105 GraphicUses:104Used by:106
Symbol 106 MovieClip {assets_ui.pages.HelpUI} [assets_ui.pages.HelpUI]Uses:105
Symbol 107 BitmapUsed by:108
Symbol 108 GraphicUses:107Used by:109
Symbol 109 MovieClip {assets.Level01} [assets.Level01]Uses:108
Symbol 110 MovieClip {assets.Level01_animated} [assets.Level01_animated]
Symbol 111 GraphicUsed by:112
Symbol 112 MovieClip {assets.ui.GameMask} [assets.ui.GameMask]Uses:111
Symbol 113 GraphicUsed by:114 607
Symbol 114 MovieClip {assets.Level01Background} [assets.Level01Background]Uses:113
Symbol 115 BitmapUsed by:116
Symbol 116 GraphicUses:115Used by:138
Symbol 117 ShapeTweeningUsed by:129
Symbol 118 BitmapUsed by:119
Symbol 119 GraphicUses:118Used by:120
Symbol 120 MovieClipUses:119Used by:129
Symbol 121 ShapeTweeningUsed by:129
Symbol 122 BitmapUsed by:123
Symbol 123 GraphicUses:122Used by:124
Symbol 124 MovieClipUses:123Used by:129
Symbol 125 ShapeTweeningUsed by:129
Symbol 126 ShapeTweeningUsed by:129
Symbol 127 GraphicUsed by:129
Symbol 128 GraphicUsed by:129
Symbol 129 MovieClip {assets_ui_fla.soundSlider_47} [assets_ui_fla.soundSlider_47]Uses:117 120 121 124 125 126 127 128Used by:138
Symbol 130 BitmapUsed by:131
Symbol 131 GraphicUses:130Used by:132
Symbol 132 MovieClipUses:131Used by:138
Symbol 133 BitmapUsed by:134
Symbol 134 GraphicUses:133Used by:135
Symbol 135 MovieClipUses:134Used by:138
Symbol 136 GraphicUsed by:137
Symbol 137 ButtonUses:136Used by:138
Symbol 138 MovieClip {assets_ui.HudSoundControls} [assets_ui.HudSoundControls]Uses:116 129 132 135 137
Symbol 139 BitmapUsed by:140
Symbol 140 GraphicUses:139Used by:141
Symbol 141 MovieClip {assets_ui.HudBtnSHS} [assets_ui.HudBtnSHS]Uses:140
Symbol 142 BitmapUsed by:143
Symbol 143 GraphicUses:142Used by:144
Symbol 144 MovieClipUses:143Used by:197
Symbol 145 BitmapUsed by:146
Symbol 146 GraphicUses:145Used by:147
Symbol 147 MovieClipUses:146Used by:197
Symbol 148 BitmapUsed by:149
Symbol 149 GraphicUses:148Used by:150
Symbol 150 MovieClipUses:149Used by:197
Symbol 151 BitmapUsed by:152
Symbol 152 GraphicUses:151Used by:153
Symbol 153 MovieClipUses:152Used by:197
Symbol 154 GraphicUsed by:155
Symbol 155 MovieClipUses:154Used by:157
Symbol 156 EditableTextUses:55Used by:157
Symbol 157 MovieClipUses:155 156Used by:197
Symbol 158 GraphicUsed by:159
Symbol 159 MovieClipUses:158Used by:161
Symbol 160 EditableTextUses:55Used by:161
Symbol 161 MovieClipUses:159 160Used by:197
Symbol 162 GraphicUsed by:163
Symbol 163 MovieClipUses:162Used by:165
Symbol 164 EditableTextUses:55Used by:165
Symbol 165 MovieClipUses:163 164Used by:197
Symbol 166 GraphicUsed by:167
Symbol 167 MovieClipUses:166Used by:171
Symbol 168 EditableTextUses:55Used by:171 176 184
Symbol 169 BitmapUsed by:170
Symbol 170 GraphicUses:169Used by:171
Symbol 171 MovieClipUses:167 168 170Used by:197
Symbol 172 GraphicUsed by:173
Symbol 173 MovieClipUses:172Used by:176
Symbol 174 BitmapUsed by:175
Symbol 175 GraphicUses:174Used by:176
Symbol 176 MovieClipUses:173 168 175Used by:197
Symbol 177 BitmapUsed by:178
Symbol 178 GraphicUses:177Used by:179
Symbol 179 MovieClipUses:178Used by:197
Symbol 180 GraphicUsed by:181
Symbol 181 MovieClipUses:180Used by:184
Symbol 182 GraphicUsed by:183
Symbol 183 MovieClipUses:182Used by:184
Symbol 184 MovieClipUses:181 168 183Used by:197
Symbol 185 BitmapUsed by:186
Symbol 186 GraphicUses:185Used by:196
Symbol 187 GraphicUsed by:188
Symbol 188 MovieClipUses:187Used by:190
Symbol 189 EditableTextUses:55Used by:190
Symbol 190 MovieClipUses:188 189Used by:196
Symbol 191 GraphicUsed by:192
Symbol 192 MovieClipUses:191Used by:194
Symbol 193 EditableTextUses:55Used by:194
Symbol 194 MovieClipUses:192 193Used by:196
Symbol 195 GraphicUsed by:196
Symbol 196 MovieClipUses:186 190 194 195Used by:197
Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons]Uses:144 147 150 153 157 161 165 171 176 179 184 196
Symbol 198 BitmapUsed by:199
Symbol 199 GraphicUses:198Used by:200
Symbol 200 MovieClip {assets_ui.HudBtnMarvelKids} [assets_ui.HudBtnMarvelKids]Uses:199
Symbol 201 BitmapUsed by:202
Symbol 202 GraphicUses:201Used by:205
Symbol 203 BitmapUsed by:204
Symbol 204 GraphicUses:203Used by:205
Symbol 205 MovieClip {assets_ui_fla.HudUI_107} [assets_ui_fla.HudUI_107]Uses:202 204Used by:213
Symbol 206 BitmapUsed by:208
Symbol 207 BitmapUsed by:208 602
Symbol 208 GraphicUses:206 207Used by:212
Symbol 209 FontUsed by:210
Symbol 210 TextUses:209Used by:212
Symbol 211 EditableTextUses:55Used by:212
Symbol 212 MovieClipUses:208 210 211Used by:213
Symbol 213 MovieClip {assets_ui.HudUI} [assets_ui.HudUI]Uses:205 212
Symbol 214 BitmapUsed by:215
Symbol 215 GraphicUses:214Used by:216
Symbol 216 MovieClip {assets_ui.HudBtnCredits} [assets_ui.HudBtnCredits]Uses:215
Symbol 217 BitmapUsed by:218
Symbol 218 GraphicUses:217Used by:219
Symbol 219 MovieClip {assets_ui.pages.characters.ModokPage} [assets_ui.pages.characters.ModokPage]Uses:218
Symbol 220 BitmapUsed by:221
Symbol 221 GraphicUses:220Used by:222
Symbol 222 MovieClip {assets_ui.pages.characters.MsmarvelPage} [assets_ui.pages.characters.MsmarvelPage]Uses:221
Symbol 223 BitmapUsed by:224
Symbol 224 GraphicUses:223Used by:225
Symbol 225 MovieClip {assets_ui.pages.characters.ThorPage} [assets_ui.pages.characters.ThorPage]Uses:224
Symbol 226 BitmapUsed by:227
Symbol 227 GraphicUses:226Used by:228
Symbol 228 MovieClip {assets_ui.pages.characters.IronmanPage} [assets_ui.pages.characters.IronmanPage]Uses:227
Symbol 229 BitmapUsed by:230
Symbol 230 GraphicUses:229Used by:231
Symbol 231 MovieClip {assets_ui.pages.characters.MolemanPage} [assets_ui.pages.characters.MolemanPage]Uses:230
Symbol 232 BitmapUsed by:233
Symbol 233 GraphicUses:232Used by:234
Symbol 234 MovieClip {assets_ui.pages.characters.SpidermanPage} [assets_ui.pages.characters.SpidermanPage]Uses:233
Symbol 235 BitmapUsed by:236
Symbol 236 GraphicUses:235Used by:237
Symbol 237 MovieClip {assets_ui.pages.characters.CyclopsPage} [assets_ui.pages.characters.CyclopsPage]Uses:236
Symbol 238 BitmapUsed by:239
Symbol 239 GraphicUses:238Used by:240
Symbol 240 MovieClip {assets_ui.pages.characters.DrdoomPage} [assets_ui.pages.characters.DrdoomPage]Uses:239
Symbol 241 BitmapUsed by:242
Symbol 242 GraphicUses:241Used by:245
Symbol 243 BitmapUsed by:244
Symbol 244 GraphicUses:243Used by:245
Symbol 245 MovieClip {assets_ui_fla.characterBrowserBgPanel_15} [assets_ui_fla.characterBrowserBgPanel_15]Uses:242 244Used by:294
Symbol 246 BitmapUsed by:247
Symbol 247 GraphicUses:246Used by:248
Symbol 248 MovieClipUses:247Used by:294 552
Symbol 249 BitmapUsed by:250
Symbol 250 GraphicUses:249Used by:251
Symbol 251 MovieClipUses:250Used by:294 552
Symbol 252 BitmapUsed by:253
Symbol 253 GraphicUses:252Used by:254
Symbol 254 MovieClipUses:253Used by:294 552
Symbol 255 BitmapUsed by:256
Symbol 256 GraphicUses:255Used by:257
Symbol 257 MovieClipUses:256Used by:294 552
Symbol 258 BitmapUsed by:259
Symbol 259 GraphicUses:258Used by:260
Symbol 260 MovieClipUses:259Used by:294 552
Symbol 261 BitmapUsed by:262
Symbol 262 GraphicUses:261Used by:263
Symbol 263 MovieClipUses:262Used by:294
Symbol 264 BitmapUsed by:265
Symbol 265 GraphicUses:264Used by:266
Symbol 266 MovieClipUses:265Used by:294
Symbol 267 BitmapUsed by:268
Symbol 268 GraphicUses:267Used by:269
Symbol 269 MovieClipUses:268Used by:294
Symbol 270 BitmapUsed by:271
Symbol 271 GraphicUses:270Used by:272
Symbol 272 MovieClipUses:271Used by:294 552
Symbol 273 BitmapUsed by:274
Symbol 274 GraphicUses:273Used by:275
Symbol 275 MovieClipUses:274Used by:294 552
Symbol 276 BitmapUsed by:277
Symbol 277 GraphicUses:276Used by:278
Symbol 278 MovieClipUses:277Used by:294 552
Symbol 279 BitmapUsed by:280
Symbol 280 GraphicUses:279Used by:281
Symbol 281 MovieClipUses:280Used by:294 552
Symbol 282 BitmapUsed by:283
Symbol 283 GraphicUses:282Used by:284
Symbol 284 MovieClipUses:283Used by:294 552
Symbol 285 BitmapUsed by:286
Symbol 286 GraphicUses:285Used by:287
Symbol 287 MovieClipUses:286Used by:294
Symbol 288 BitmapUsed by:289
Symbol 289 GraphicUses:288Used by:290
Symbol 290 MovieClipUses:289Used by:294
Symbol 291 BitmapUsed by:292
Symbol 292 GraphicUses:291Used by:293
Symbol 293 MovieClipUses:292Used by:294
Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg]Uses:245 248 251 254 257 260 263 266 269 272 275 278 281 284 287 290 293
Symbol 295 BitmapUsed by:296
Symbol 296 GraphicUses:295Used by:302
Symbol 297 BitmapUsed by:298
Symbol 298 GraphicUses:297Used by:299
Symbol 299 MovieClipUses:298Used by:302
Symbol 300 GraphicUsed by:301
Symbol 301 MovieClipUses:300Used by:302
Symbol 302 MovieClip {assets_ui.pages.helpBrowser.browserBg} [assets_ui.pages.helpBrowser.browserBg]Uses:296 299 301
Symbol 303 GraphicUsed by:304
Symbol 304 MovieClip {assets.level01.fortress.DamageFlash} [assets.level01.fortress.DamageFlash]Uses:303
Symbol 305 BitmapUsed by:306
Symbol 306 GraphicUses:305Used by:307
Symbol 307 MovieClip {assets.level01.fortress.HealthFull} [assets.level01.fortress.HealthFull]Uses:306
Symbol 308 BitmapUsed by:309
Symbol 309 GraphicUses:308Used by:310
Symbol 310 MovieClip {assets.level01.fortress.HealthLow} [assets.level01.fortress.HealthLow]Uses:309
Symbol 311 BitmapUsed by:312
Symbol 312 GraphicUses:311Used by:313
Symbol 313 MovieClip {assets.level01.fortress.HealthMedium} [assets.level01.fortress.HealthMedium]Uses:312
Symbol 314 BitmapUsed by:315
Symbol 315 GraphicUses:314Used by:316
Symbol 316 MovieClip {assets.effects.MapScar} [assets.effects.MapScar]Uses:315
Symbol 317 BitmapUsed by:318
Symbol 318 GraphicUses:317Used by:319 518
Symbol 319 MovieClip {assets.hud.SlowdownTowerIcon} [assets.hud.SlowdownTowerIcon]Uses:318
Symbol 320 BitmapUsed by:321
Symbol 321 GraphicUses:320Used by:322 443
Symbol 322 MovieClip {assets.hud.LightningTowerIcon} [assets.hud.LightningTowerIcon]Uses:321
Symbol 323 BitmapUsed by:324
Symbol 324 GraphicUses:323Used by:325 466
Symbol 325 MovieClip {assets.hud.BlasterTowerIcon} [assets.hud.BlasterTowerIcon]Uses:324
Symbol 326 BitmapUsed by:327
Symbol 327 GraphicUses:326Used by:328 500
Symbol 328 MovieClip {assets.hud.LaserTowerIcon} [assets.hud.LaserTowerIcon]Uses:327
Symbol 329 BitmapUsed by:330
Symbol 330 GraphicUses:329Used by:331 537
Symbol 331 MovieClip {assets.hud.RocketTowerIcon} [assets.hud.RocketTowerIcon]Uses:330
Symbol 332 BitmapUsed by:333
Symbol 333 GraphicUses:332Used by:334
Symbol 334 MovieClip {assets.hud.HudBG} [assets.hud.HudBG]Uses:333
Symbol 335 BitmapUsed by:336
Symbol 336 GraphicUses:335Used by:337
Symbol 337 MovieClip {assets.weapons.SlowdownExplosion} [assets.weapons.SlowdownExplosion]Uses:336
Symbol 338 BitmapUsed by:339
Symbol 339 GraphicUses:338Used by:340
Symbol 340 MovieClip {assets.enemies.DoombotShadow} [assets.enemies.DoombotShadow]Uses:339
Symbol 341 BitmapUsed by:342
Symbol 342 GraphicUses:341Used by:347
Symbol 343 BitmapUsed by:344
Symbol 344 GraphicUses:343Used by:347
Symbol 345 BitmapUsed by:346
Symbol 346 GraphicUses:345Used by:347
Symbol 347 MovieClip {assets.enemies.DoombotClip} [assets.enemies.DoombotClip]Uses:342 344 346
Symbol 348 BitmapUsed by:349
Symbol 349 GraphicUses:348Used by:354
Symbol 350 BitmapUsed by:351
Symbol 351 GraphicUses:350Used by:354
Symbol 352 BitmapUsed by:353
Symbol 353 GraphicUses:352Used by:354
Symbol 354 MovieClip {assets.enemies.MoleoidClip} [assets.enemies.MoleoidClip]Uses:349 351 353
Symbol 355 BitmapUsed by:356
Symbol 356 GraphicUses:355Used by:357
Symbol 357 MovieClip {assets.enemies.MoleoidShadowClip} [assets.enemies.MoleoidShadowClip]Uses:356
Symbol 358 BitmapUsed by:359
Symbol 359 GraphicUses:358Used by:360
Symbol 360 MovieClip {assets.enemies.DrDoomShadowClip} [assets.enemies.DrDoomShadowClip]Uses:359
Symbol 361 BitmapUsed by:362
Symbol 362 GraphicUses:361Used by:363
Symbol 363 MovieClip {assets.enemies.DrDoomClip} [assets.enemies.DrDoomClip]Uses:362
Symbol 364 BitmapUsed by:365
Symbol 365 GraphicUses:364Used by:366
Symbol 366 MovieClip {assets.enemies.HelicopterShadowClip} [assets.enemies.HelicopterShadowClip]Uses:365
Symbol 367 BitmapUsed by:368
Symbol 368 GraphicUses:367Used by:369
Symbol 369 MovieClip {assets.enemies.HelicopterClip} [assets.enemies.HelicopterClip]Uses:368
Symbol 370 BitmapUsed by:371
Symbol 371 GraphicUses:370Used by:372
Symbol 372 MovieClip {assets.enemies.AIMSentryShadowClip} [assets.enemies.AIMSentryShadowClip]Uses:371
Symbol 373 BitmapUsed by:374
Symbol 374 GraphicUses:373Used by:379
Symbol 375 BitmapUsed by:376
Symbol 376 GraphicUses:375Used by:379
Symbol 377 BitmapUsed by:378
Symbol 378 GraphicUses:377Used by:379
Symbol 379 MovieClip {assets.enemies.AIMSentry_BlueClip} [assets.enemies.AIMSentry_BlueClip]Uses:374 376 378
Symbol 380 BitmapUsed by:381
Symbol 381 GraphicUses:380Used by:382
Symbol 382 MovieClip {assets.enemies.ModokClip} [assets.enemies.ModokClip]Uses:381
Symbol 383 BitmapUsed by:384
Symbol 384 GraphicUses:383Used by:385
Symbol 385 MovieClip {assets.enemies.ModokShadowClip} [assets.enemies.ModokShadowClip]Uses:384
Symbol 386 BitmapUsed by:387
Symbol 387 GraphicUses:386Used by:392
Symbol 388 BitmapUsed by:389
Symbol 389 GraphicUses:388Used by:392
Symbol 390 BitmapUsed by:391
Symbol 391 GraphicUses:390Used by:392
Symbol 392 MovieClip {assets.enemies.AIMSentry_RedClip} [assets.enemies.AIMSentry_RedClip]Uses:387 389 391
Symbol 393 BitmapUsed by:394
Symbol 394 GraphicUses:393Used by:395
Symbol 395 MovieClip {assets.enemies.MoleManShadowClip} [assets.enemies.MoleManShadowClip]Uses:394
Symbol 396 BitmapUsed by:397
Symbol 397 GraphicUses:396Used by:402
Symbol 398 BitmapUsed by:399
Symbol 399 GraphicUses:398Used by:402
Symbol 400 BitmapUsed by:401
Symbol 401 GraphicUses:400Used by:402
Symbol 402 MovieClip {assets.enemies.MoleManClip} [assets.enemies.MoleManClip]Uses:397 399 401
Symbol 403 BitmapUsed by:404
Symbol 404 GraphicUses:403Used by:405
Symbol 405 MovieClip {assets.enemies.LightTankClip} [assets.enemies.LightTankClip]Uses:404
Symbol 406 BitmapUsed by:407
Symbol 407 GraphicUses:406Used by:408
Symbol 408 MovieClip {assets.enemies.LightTankShadowClip} [assets.enemies.LightTankShadowClip]Uses:407
Symbol 409 BitmapUsed by:410
Symbol 410 GraphicUses:409Used by:411
Symbol 411 MovieClip {assets.enemies.HeavyTankClip} [assets.enemies.HeavyTankClip]Uses:410
Symbol 412 BitmapUsed by:413
Symbol 413 GraphicUses:412Used by:414
Symbol 414 MovieClip {assets.enemies.HeavyTankShadowClip} [assets.enemies.HeavyTankShadowClip]Uses:413
Symbol 415 BitmapUsed by:416
Symbol 416 GraphicUses:415Used by:417
Symbol 417 MovieClip {assets.enemies.JeepClip} [assets.enemies.JeepClip]Uses:416
Symbol 418 BitmapUsed by:419
Symbol 419 GraphicUses:418Used by:420
Symbol 420 MovieClip {assets.enemies.JeepShadowClip} [assets.enemies.JeepShadowClip]Uses:419
Symbol 421 BitmapUsed by:422
Symbol 422 GraphicUses:421Used by:423
Symbol 423 MovieClip {assets.enemies.CruiseMissileClip} [assets.enemies.CruiseMissileClip]Uses:422
Symbol 424 BitmapUsed by:425
Symbol 425 GraphicUses:424Used by:426
Symbol 426 MovieClip {assets.enemies.CruiseMissileShadowClip} [assets.enemies.CruiseMissileShadowClip]Uses:425
Symbol 427 BitmapUsed by:428
Symbol 428 GraphicUses:427Used by:429
Symbol 429 MovieClip {assets.enemies.AttackAPCShadowClip} [assets.enemies.AttackAPCShadowClip]Uses:428
Symbol 430 BitmapUsed by:431
Symbol 431 GraphicUses:430Used by:432
Symbol 432 MovieClip {assets.enemies.AttackAPCClip} [assets.enemies.AttackAPCClip]Uses:431
Symbol 433 BitmapUsed by:434
Symbol 434 GraphicUses:433Used by:439
Symbol 435 BitmapUsed by:436
Symbol 436 GraphicUses:435Used by:439
Symbol 437 BitmapUsed by:438
Symbol 438 GraphicUses:437Used by:439
Symbol 439 MovieClip {assets.enemies.AIMSentry_YellowClip} [assets.enemies.AIMSentry_YellowClip]Uses:434 436 438
Symbol 440 BitmapUsed by:441
Symbol 441 GraphicUses:440Used by:442
Symbol 442 MovieClipUses:441Used by:443 446 449
Symbol 443 MovieClip {assets.towers.LightningTowerL1} [assets.towers.LightningTowerL1]Uses:321 442
Symbol 444 BitmapUsed by:445
Symbol 445 GraphicUses:444Used by:446
Symbol 446 MovieClip {assets.towers.LightningTowerL2} [assets.towers.LightningTowerL2]Uses:445 442
Symbol 447 BitmapUsed by:448
Symbol 448 GraphicUses:447Used by:450
Symbol 449 MovieClipUses:442Used by:450
Symbol 450 MovieClip {assets.towers.LightningTowerL3} [assets.towers.LightningTowerL3]Uses:448 449
Symbol 451 BitmapUsed by:452
Symbol 452 GraphicUses:451Used by:453
Symbol 453 MovieClip {assets.towers.LightningTowerShadowL1} [assets.towers.LightningTowerShadowL1]Uses:452
Symbol 454 BitmapUsed by:455
Symbol 455 GraphicUses:454Used by:456
Symbol 456 MovieClip {assets.towers.LightningTowerShadowL3} [assets.towers.LightningTowerShadowL3]Uses:455
Symbol 457 BitmapUsed by:458
Symbol 458 GraphicUses:457Used by:459
Symbol 459 MovieClip {assets.towers.LightningTowerShadowL2} [assets.towers.LightningTowerShadowL2]Uses:458
Symbol 460 BitmapUsed by:461
Symbol 461 GraphicUses:460Used by:462
Symbol 462 MovieClip {assets.towers.BlasterTowerShadowL3} [assets.towers.BlasterTowerShadowL3]Uses:461
Symbol 463 BitmapUsed by:464
Symbol 464 GraphicUses:463Used by:465
Symbol 465 MovieClipUses:464Used by:466 469 493 497 499
Symbol 466 MovieClip {assets.towers.BlasterTowerL1} [assets.towers.BlasterTowerL1]Uses:324 465
Symbol 467 BitmapUsed by:468
Symbol 468 GraphicUses:467Used by:470
Symbol 469 MovieClipUses:465Used by:470
Symbol 470 MovieClip {assets.towers.BlasterTowerL2} [assets.towers.BlasterTowerL2]Uses:468 469
Symbol 471 BitmapUsed by:472 474
Symbol 472 GraphicUses:471Used by:473
Symbol 473 MovieClip {assets.towers.BlasterTowerShadowL2} [assets.towers.BlasterTowerShadowL2]Uses:472
Symbol 474 GraphicUses:471Used by:475
Symbol 475 MovieClip {assets.towers.BlasterTowerShadowL1} [assets.towers.BlasterTowerShadowL1]Uses:474
Symbol 476 BitmapUsed by:477
Symbol 477 GraphicUses:476Used by:481
Symbol 478 BitmapUsed by:479
Symbol 479 GraphicUses:478Used by:480
Symbol 480 MovieClipUses:479Used by:481
Symbol 481 MovieClip {assets.towers.BlasterTowerL3} [assets.towers.BlasterTowerL3]Uses:477 480
Symbol 482 BitmapUsed by:483
Symbol 483 GraphicUses:482Used by:484
Symbol 484 MovieClip {assets.towers.LaserTowerShadowL2} [assets.towers.LaserTowerShadowL2]Uses:483
Symbol 485 BitmapUsed by:486
Symbol 486 GraphicUses:485Used by:487
Symbol 487 MovieClip {assets.towers.LaserTowerShadowL1} [assets.towers.LaserTowerShadowL1]Uses:486
Symbol 488 BitmapUsed by:489
Symbol 489 GraphicUses:488Used by:490
Symbol 490 MovieClip {assets.towers.LaserTowerShadowL3} [assets.towers.LaserTowerShadowL3]Uses:489
Symbol 491 BitmapUsed by:492
Symbol 492 GraphicUses:491Used by:494
Symbol 493 MovieClipUses:465Used by:494
Symbol 494 MovieClip {assets.towers.LaserTowerL3} [assets.towers.LaserTowerL3]Uses:492 493
Symbol 495 BitmapUsed by:496
Symbol 496 GraphicUses:495Used by:498
Symbol 497 MovieClipUses:465Used by:498
Symbol 498 MovieClip {assets.towers.LaserTowerL2} [assets.towers.LaserTowerL2]Uses:496 497
Symbol 499 MovieClipUses:465Used by:500
Symbol 500 MovieClip {assets.towers.LaserTowerL1} [assets.towers.LaserTowerL1]Uses:327 499
Symbol 501 BitmapUsed by:502
Symbol 502 GraphicUses:501Used by:503
Symbol 503 MovieClip {assets.towers.SlowdownTowerShadowL3} [assets.towers.SlowdownTowerShadowL3]Uses:502
Symbol 504 BitmapUsed by:505
Symbol 505 GraphicUses:504Used by:506
Symbol 506 MovieClip {assets.towers.SlowdownTowerShadowL2} [assets.towers.SlowdownTowerShadowL2]Uses:505
Symbol 507 BitmapUsed by:508
Symbol 508 GraphicUses:507Used by:509
Symbol 509 MovieClip {assets.towers.SlowdownTowerShadowL1} [assets.towers.SlowdownTowerShadowL1]Uses:508
Symbol 510 BitmapUsed by:511
Symbol 511 GraphicUses:510Used by:515
Symbol 512 BitmapUsed by:513 516
Symbol 513 GraphicUses:512Used by:514
Symbol 514 MovieClipUses:513Used by:515
Symbol 515 MovieClip {assets.towers.SlowdownTowerL2} [assets.towers.SlowdownTowerL2]Uses:511 514
Symbol 516 GraphicUses:512Used by:517
Symbol 517 MovieClipUses:516Used by:518 521
Symbol 518 MovieClip {assets.towers.SlowdownTowerL1} [assets.towers.SlowdownTowerL1]Uses:318 517
Symbol 519 BitmapUsed by:520
Symbol 520 GraphicUses:519Used by:521
Symbol 521 MovieClip {assets.towers.SlowdownTowerL3} [assets.towers.SlowdownTowerL3]Uses:520 517
Symbol 522 BitmapUsed by:523
Symbol 523 GraphicUses:522Used by:524
Symbol 524 MovieClip {assets.towers.RocketTowerShadowL2} [assets.towers.RocketTowerShadowL2]Uses:523
Symbol 525 BitmapUsed by:526
Symbol 526 GraphicUses:525Used by:527
Symbol 527 MovieClip {assets.towers.RocketTowerShadowL3} [assets.towers.RocketTowerShadowL3]Uses:526
Symbol 528 BitmapUsed by:529
Symbol 529 GraphicUses:528Used by:530
Symbol 530 MovieClip {assets.towers.RocketTowerShadowL1} [assets.towers.RocketTowerShadowL1]Uses:529
Symbol 531 BitmapUsed by:532 813
Symbol 532 GraphicUses:531Used by:533
Symbol 533 MovieClipUses:532Used by:536
Symbol 534 GraphicUsed by:535
Symbol 535 MovieClipUses:534Used by:536
Symbol 536 MovieClip {assets_fla.BlasterGunfire1_rocket_116} [assets_fla.BlasterGunfire1_rocket_116]Uses:533 535Used by:537 540 543
Symbol 537 MovieClip {assets.towers.RocketTowerL1} [assets.towers.RocketTowerL1]Uses:536 330
Symbol 538 BitmapUsed by:539
Symbol 539 GraphicUses:538Used by:540
Symbol 540 MovieClip {assets.towers.RocketTowerL2} [assets.towers.RocketTowerL2]Uses:539 536
Symbol 541 BitmapUsed by:542
Symbol 542 GraphicUses:541Used by:543
Symbol 543 MovieClip {assets.towers.RocketTowerL3} [assets.towers.RocketTowerL3]Uses:542 536
Symbol 544 BitmapUsed by:545
Symbol 545 GraphicUses:544Used by:546
Symbol 546 MovieClip {assets_ui.pages.help.HelpPage4} [assets_ui.pages.help.HelpPage4]Uses:545
Symbol 547 BitmapUsed by:548
Symbol 548 GraphicUses:547Used by:549
Symbol 549 MovieClip {assets_ui.pages.help.HelpPage3} [assets_ui.pages.help.HelpPage3]Uses:548
Symbol 550 BitmapUsed by:551
Symbol 551 GraphicUses:550Used by:552
Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2]Uses:551 248 251 254 257 260 272 275 278 281 284
Symbol 553 BitmapUsed by:554
Symbol 554 GraphicUses:553Used by:555
Symbol 555 MovieClip {assets_ui.pages.help.defenders.CyclopsPage} [assets_ui.pages.help.defenders.CyclopsPage]Uses:554
Symbol 556 BitmapUsed by:557
Symbol 557 GraphicUses:556Used by:558
Symbol 558 MovieClip {assets_ui.pages.help.defenders.SpidermanPage} [assets_ui.pages.help.defenders.SpidermanPage]Uses:557
Symbol 559 BitmapUsed by:560
Symbol 560 GraphicUses:559Used by:561
Symbol 561 MovieClip {assets_ui.pages.help.defenders.MsmarvelPage} [assets_ui.pages.help.defenders.MsmarvelPage]Uses:560
Symbol 562 BitmapUsed by:563
Symbol 563 GraphicUses:562Used by:564
Symbol 564 MovieClip {assets_ui.pages.help.defenders.ThorPage} [assets_ui.pages.help.defenders.ThorPage]Uses:563
Symbol 565 BitmapUsed by:566
Symbol 566 GraphicUses:565Used by:567
Symbol 567 MovieClip {assets_ui.pages.help.defenders.IronmanPage} [assets_ui.pages.help.defenders.IronmanPage]Uses:566
Symbol 568 BitmapUsed by:569
Symbol 569 GraphicUses:568Used by:570
Symbol 570 MovieClip {assets_ui.pages.help.HelpPage1} [assets_ui.pages.help.HelpPage1]Uses:569
Symbol 571 BitmapUsed by:572
Symbol 572 GraphicUses:571Used by:573
Symbol 573 MovieClip {assets_ui.pages.help.HelpPage5} [assets_ui.pages.help.HelpPage5]Uses:572
Symbol 574 BitmapUsed by:575
Symbol 575 GraphicUses:574Used by:580
Symbol 576 GraphicUsed by:577 583 656
Symbol 577 MovieClipUses:576Used by:580 584 674
Symbol 578 GraphicUsed by:579
Symbol 579 MovieClipUses:578Used by:580 584 674
Symbol 580 MovieClip {assets.hud.GameHelpScreen} [assets.hud.GameHelpScreen]Uses:575 577 579
Symbol 581 BitmapUsed by:582
Symbol 582 GraphicUses:581Used by:584
Symbol 583 MovieClipUses:576Used by:584 674
Symbol 584 MovieClip {assets.hud.ConfirmExitScreen} [assets.hud.ConfirmExitScreen]Uses:582 577 583 579
Symbol 585 BitmapUsed by:586
Symbol 586 GraphicUses:585Used by:587
Symbol 587 MovieClip {assets.hud.HoverDenied} [assets.hud.HoverDenied]Uses:586
Symbol 588 BitmapUsed by:589
Symbol 589 GraphicUses:588Used by:590
Symbol 590 MovieClip {assets.hud.HoverAllowed} [assets.hud.HoverAllowed]Uses:589
Symbol 591 BitmapUsed by:592
Symbol 592 GraphicUses:591Used by:593
Symbol 593 MovieClip {assets.hud.GameDefeatScreen} [assets.hud.GameDefeatScreen]Uses:592
Symbol 594 FontUsed by:595 596 675 676 677 832
Symbol 595 TextUses:594Used by:603
Symbol 596 TextUses:594Used by:603
Symbol 597 EditableTextUses:55Used by:603
Symbol 598 EditableTextUses:55Used by:603
Symbol 599 BitmapUsed by:600
Symbol 600 GraphicUses:599Used by:601
Symbol 601 MovieClipUses:600Used by:603
Symbol 602 GraphicUses:207Used by:603
Symbol 603 MovieClip {assets.hud.GameTopPanel} [assets.hud.GameTopPanel]Uses:595 596 597 598 601 602
Symbol 604 BitmapUsed by:605
Symbol 605 GraphicUses:604Used by:606
Symbol 606 MovieClipUses:605Used by:607
Symbol 607 MovieClip {assets.hud.GameVictoryScreen} [assets.hud.GameVictoryScreen]Uses:113 27 30 606
Symbol 608 BitmapUsed by:609
Symbol 609 GraphicUses:608Used by:610
Symbol 610 MovieClipUses:609Used by:653
Symbol 611 BitmapUsed by:612
Symbol 612 GraphicUses:611Used by:613
Symbol 613 MovieClipUses:612Used by:653
Symbol 614 BitmapUsed by:615
Symbol 615 GraphicUses:614Used by:616
Symbol 616 MovieClipUses:615Used by:653
Symbol 617 BitmapUsed by:618
Symbol 618 GraphicUses:617Used by:619
Symbol 619 MovieClipUses:618Used by:653
Symbol 620 BitmapUsed by:621
Symbol 621 GraphicUses:620Used by:622
Symbol 622 MovieClipUses:621Used by:653
Symbol 623 BitmapUsed by:624
Symbol 624 GraphicUses:623Used by:625
Symbol 625 MovieClipUses:624Used by:653
Symbol 626 BitmapUsed by:627
Symbol 627 GraphicUses:626Used by:628
Symbol 628 MovieClipUses:627Used by:653
Symbol 629 BitmapUsed by:630
Symbol 630 GraphicUses:629Used by:631
Symbol 631 MovieClipUses:630Used by:653
Symbol 632 BitmapUsed by:633
Symbol 633 GraphicUses:632Used by:634
Symbol 634 MovieClipUses:633Used by:653
Symbol 635 BitmapUsed by:636
Symbol 636 GraphicUses:635Used by:637
Symbol 637 MovieClipUses:636Used by:653
Symbol 638 BitmapUsed by:639
Symbol 639 GraphicUses:638Used by:640
Symbol 640 MovieClipUses:639Used by:653
Symbol 641 BitmapUsed by:642
Symbol 642 GraphicUses:641Used by:643
Symbol 643 MovieClipUses:642Used by:653
Symbol 644 BitmapUsed by:645
Symbol 645 GraphicUses:644Used by:646
Symbol 646 MovieClipUses:645Used by:653
Symbol 647 BitmapUsed by:648
Symbol 648 GraphicUses:647Used by:649
Symbol 649 MovieClipUses:648Used by:653
Symbol 650 BitmapUsed by:651
Symbol 651 GraphicUses:650Used by:652
Symbol 652 MovieClipUses:651Used by:653
Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel]Uses:610 613 616 619 622 625 628 631 634 637 640 643 646 649 652
Symbol 654 BitmapUsed by:655
Symbol 655 GraphicUses:654Used by:659
Symbol 656 MovieClipUses:576Used by:659
Symbol 657 GraphicUsed by:658
Symbol 658 MovieClipUses:657Used by:659
Symbol 659 MovieClip {assets.hud.GamePauseScreen} [assets.hud.GamePauseScreen]Uses:655 656 658
Symbol 660 BitmapUsed by:661
Symbol 661 GraphicUses:660Used by:666
Symbol 662 BitmapUsed by:663
Symbol 663 GraphicUses:662Used by:666
Symbol 664 BitmapUsed by:665
Symbol 665 GraphicUses:664Used by:666
Symbol 666 MovieClip {assets_fla.BossPopupAvatars_75} [assets_fla.BossPopupAvatars_75]Uses:661 663 665Used by:671
Symbol 667 BitmapUsed by:668
Symbol 668 GraphicUses:667Used by:671
Symbol 669 FontUsed by:670
Symbol 670 EditableTextUses:669Used by:671
Symbol 671 MovieClip {assets.hud.BossPopupPanel} [assets.hud.BossPopupPanel]Uses:666 668 670
Symbol 672 BitmapUsed by:673
Symbol 673 GraphicUses:672Used by:674
Symbol 674 MovieClip {assets.hud.DifficultySelectScreen} [assets.hud.DifficultySelectScreen]Uses:673 577 583 579
Symbol 675 TextUses:594Used by:693
Symbol 676 TextUses:594Used by:693
Symbol 677 TextUses:594Used by:693
Symbol 678 BitmapUsed by:679
Symbol 679 GraphicUses:678Used by:686 689 692
Symbol 680 GraphicUsed by:681 736 746
Symbol 681 MovieClipUses:680Used by:686 689 692
Symbol 682 BitmapUsed by:683
Symbol 683 GraphicUses:682Used by:686 689 692
Symbol 684 BitmapUsed by:685
Symbol 685 GraphicUses:684Used by:686
Symbol 686 MovieClipUses:679 681 683 685Used by:693
Symbol 687 BitmapUsed by:688
Symbol 688 GraphicUses:687Used by:689
Symbol 689 MovieClipUses:679 681 683 688Used by:693
Symbol 690 BitmapUsed by:691
Symbol 691 GraphicUses:690Used by:692
Symbol 692 MovieClipUses:679 681 683 691Used by:693
Symbol 693 MovieClip {assets.hud.StatBar} [assets.hud.StatBar]Uses:675 676 677 686 689 692Used by:735 833
Symbol 694 BitmapUsed by:695
Symbol 695 GraphicUses:694Used by:698 733
Symbol 696 FontUsed by:697 701
Symbol 697 EditableTextUses:696Used by:698
Symbol 698 MovieClipUses:695 697Used by:735
Symbol 699 BitmapUsed by:700
Symbol 700 GraphicUses:699Used by:702 734
Symbol 701 EditableTextUses:696Used by:702
Symbol 702 MovieClipUses:700 701Used by:735
Symbol 703 BitmapUsed by:704
Symbol 704 GraphicUses:703Used by:713
Symbol 705 BitmapUsed by:706
Symbol 706 GraphicUses:705Used by:713
Symbol 707 BitmapUsed by:708
Symbol 708 GraphicUses:707Used by:713
Symbol 709 BitmapUsed by:710
Symbol 710 GraphicUses:709Used by:713
Symbol 711 BitmapUsed by:712
Symbol 712 GraphicUses:711Used by:713
Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40]Uses:704 706 708 710 712Used by:735 833
Symbol 714 BitmapUsed by:715
Symbol 715 GraphicUses:714Used by:724
Symbol 716 BitmapUsed by:717
Symbol 717 GraphicUses:716Used by:724
Symbol 718 BitmapUsed by:719
Symbol 719 GraphicUses:718Used by:724
Symbol 720 BitmapUsed by:721
Symbol 721 GraphicUses:720Used by:724
Symbol 722 BitmapUsed by:723
Symbol 723 GraphicUses:722Used by:724
Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41]Uses:715 717 719 721 723Used by:735
Symbol 725 BitmapUsed by:726
Symbol 726 GraphicUses:725Used by:731
Symbol 727 BitmapUsed by:728
Symbol 728 GraphicUses:727Used by:731
Symbol 729 BitmapUsed by:730
Symbol 730 GraphicUses:729Used by:731
Symbol 731 MovieClip {assets_fla.towerLevelBadge_42} [assets_fla.towerLevelBadge_42]Uses:726 728 730Used by:735
Symbol 732 TextUses:55Used by:733 734
Symbol 733 MovieClipUses:695 732Used by:735
Symbol 734 MovieClipUses:700 732Used by:735
Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel]Uses:693 698 702 713 724 731 733 734
Symbol 736 MovieClipUses:680Used by:741
Symbol 737 BitmapUsed by:738
Symbol 738 GraphicUses:737Used by:741
Symbol 739 BitmapUsed by:740
Symbol 740 GraphicUses:739Used by:741
Symbol 741 MovieClipUses:736 738 740Used by:760
Symbol 742 TextUses:55Used by:760
Symbol 743 EditableTextUses:55Used by:760
Symbol 744 BitmapUsed by:745
Symbol 745 GraphicUses:744Used by:751
Symbol 746 MovieClipUses:680Used by:751
Symbol 747 BitmapUsed by:748
Symbol 748 GraphicUses:747Used by:751
Symbol 749 BitmapUsed by:750
Symbol 750 GraphicUses:749Used by:751
Symbol 751 MovieClipUses:745 746 748 750Used by:760
Symbol 752 BitmapUsed by:753
Symbol 753 GraphicUses:752Used by:760
Symbol 754 BitmapUsed by:755
Symbol 755 GraphicUses:754Used by:756
Symbol 756 MovieClipUses:755Used by:760
Symbol 757 BitmapUsed by:758
Symbol 758 GraphicUses:757Used by:759
Symbol 759 MovieClipUses:758Used by:760
Symbol 760 MovieClip {assets.hud.GameBottomPanel} [assets.hud.GameBottomPanel]Uses:741 742 743 751 753 756 759
Symbol 761 BitmapUsed by:762
Symbol 762 GraphicUses:761Used by:763
Symbol 763 MovieClip {assets.weapons.SlowdownProjectile} [assets.weapons.SlowdownProjectile]Uses:762
Symbol 764 BitmapUsed by:766 770 773
Symbol 765 BitmapUsed by:766
Symbol 766 GraphicUses:764 765Used by:769
Symbol 767 GraphicUsed by:768
Symbol 768 MovieClipUses:767Used by:769 771 774
Symbol 769 MovieClip {assets.weapons.RocketProjectileL3} [assets.weapons.RocketProjectileL3]Uses:766 768
Symbol 770 GraphicUses:764Used by:771
Symbol 771 MovieClip {assets.weapons.RocketProjectileL1} [assets.weapons.RocketProjectileL1]Uses:770 768
Symbol 772 BitmapUsed by:773
Symbol 773 GraphicUses:764 772Used by:774
Symbol 774 MovieClip {assets.weapons.RocketProjectileL2} [assets.weapons.RocketProjectileL2]Uses:773 768
Symbol 775 GraphicUsed by:776
Symbol 776 MovieClipUses:775Used by:777
Symbol 777 MovieClip {assets.enemies.HealthBar} [assets.enemies.HealthBar]Uses:776
Symbol 778 BitmapUsed by:779
Symbol 779 GraphicUses:778Used by:812
Symbol 780 BitmapUsed by:781
Symbol 781 GraphicUses:780Used by:812
Symbol 782 BitmapUsed by:783
Symbol 783 GraphicUses:782Used by:812
Symbol 784 BitmapUsed by:785
Symbol 785 GraphicUses:784Used by:812
Symbol 786 BitmapUsed by:787
Symbol 787 GraphicUses:786Used by:812
Symbol 788 BitmapUsed by:789
Symbol 789 GraphicUses:788Used by:812
Symbol 790 BitmapUsed by:791
Symbol 791 GraphicUses:790Used by:812
Symbol 792 BitmapUsed by:793
Symbol 793 GraphicUses:792Used by:812
Symbol 794 BitmapUsed by:795
Symbol 795 GraphicUses:794Used by:812
Symbol 796 BitmapUsed by:797
Symbol 797 GraphicUses:796Used by:812
Symbol 798 BitmapUsed by:799
Symbol 799 GraphicUses:798Used by:812
Symbol 800 BitmapUsed by:801
Symbol 801 GraphicUses:800Used by:812
Symbol 802 BitmapUsed by:803
Symbol 803 GraphicUses:802Used by:812
Symbol 804 BitmapUsed by:805
Symbol 805 GraphicUses:804Used by:812
Symbol 806 BitmapUsed by:807
Symbol 807 GraphicUses:806Used by:812
Symbol 808 BitmapUsed by:809
Symbol 809 GraphicUses:808Used by:812
Symbol 810 BitmapUsed by:811
Symbol 811 GraphicUses:810Used by:812
Symbol 812 MovieClip {assets.effects.ExplodeUI} [assets.effects.ExplodeUI]Uses:779 781 783 785 787 789 791 793 795 797 799 801 803 805 807 809 811
Symbol 813 GraphicUses:531Used by:814
Symbol 814 MovieClipUses:813Used by:815
Symbol 815 MovieClip {assets.effects.ParticleUI} [assets.effects.ParticleUI]Uses:814
Symbol 816 GraphicUsed by:830
Symbol 817 BitmapUsed by:818
Symbol 818 GraphicUses:817Used by:819
Symbol 819 MovieClipUses:818Used by:830
Symbol 820 GraphicUsed by:830
Symbol 821 GraphicUsed by:830
Symbol 822 GraphicUsed by:830
Symbol 823 GraphicUsed by:830
Symbol 824 GraphicUsed by:830
Symbol 825 GraphicUsed by:830
Symbol 826 GraphicUsed by:830
Symbol 827 GraphicUsed by:830
Symbol 828 GraphicUsed by:830
Symbol 829 GraphicUsed by:830
Symbol 830 MovieClip {assets.effects.ChunkUI} [assets.effects.ChunkUI]Uses:816 819 820 821 822 823 824 825 826 827 828 829
Symbol 831 EditableTextUses:55Used by:833
Symbol 832 TextUses:594Used by:833
Symbol 833 MovieClip {assets.hud.BuyStatsPanel} [assets.hud.BuyStatsPanel]Uses:693 831 832 713

Instance Names

"Advertisement"Symbol 12 MovieClip {assets_ui.PreloaderBackgroundUI} [assets_ui.PreloaderBackgroundUI] Frame 1Symbol 5 MovieClip
"bar"Symbol 22 MovieClip {assets_ui.Preloader} [assets_ui.Preloader] Frame 1Symbol 16 MovieClip
"videoWindow"Symbol 31 MovieClip {assets_ui.pages.IntroVideoUI} [assets_ui.pages.IntroVideoUI] Frame 1Symbol 27 MovieClip
"skipBtn"Symbol 31 MovieClip {assets_ui.pages.IntroVideoUI} [assets_ui.pages.IntroVideoUI] Frame 1Symbol 30 MovieClip
"skipGlowBtn"Symbol 31 MovieClip {assets_ui.pages.IntroVideoUI} [assets_ui.pages.IntroVideoUI] Frame 1Symbol 30 MovieClip
"titleText"Symbol 58 MovieClip Frame 1Symbol 56 EditableText
"descriptionText"Symbol 58 MovieClip Frame 1Symbol 57 EditableText
"shape"Symbol 61 MovieClip Frame 1Symbol 52 MovieClip
"toolTip"Symbol 61 MovieClip Frame 1Symbol 58 MovieClip
"hit"Symbol 61 MovieClip Frame 1Symbol 60 MovieClip
"shape"Symbol 65 MovieClip Frame 1Symbol 64 MovieClip
"toolTip"Symbol 65 MovieClip Frame 1Symbol 58 MovieClip
"hit"Symbol 65 MovieClip Frame 1Symbol 60 MovieClip
"shape"Symbol 69 MovieClip Frame 1Symbol 68 MovieClip
"toolTip"Symbol 69 MovieClip Frame 1Symbol 58 MovieClip
"hit"Symbol 69 MovieClip Frame 1Symbol 60 MovieClip
"baseMoleman"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 43 MovieClip
"baseGoldTower"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 43 MovieClip
"baseMillionaire"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 46 MovieClip
"baseDrdoom"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 46 MovieClip
"baseGameAddict"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 49 MovieClip
"baseModok"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 46 MovieClip
"baseHighScore"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 49 MovieClip
"baseConstructor"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 46 MovieClip
"baseDefender"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 49 MovieClip
"baseMasterDefender"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 49 MovieClip
"lockMoleman"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 61 MovieClip
"lockDefender"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 65 MovieClip
"lockModok"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 69 MovieClip
"lockMillionaire"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 69 MovieClip
"lockHighScore"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 65 MovieClip
"lockGoldTower"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 61 MovieClip
"lockDrdoom"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 69 MovieClip
"lockConstructor"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 69 MovieClip
"lockMasterDefender"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 65 MovieClip
"lockGameAddict"Symbol 70 MovieClip {assets_ui.pages.MedalsUI} [assets_ui.pages.MedalsUI] Frame 1Symbol 65 MovieClip
"version"Symbol 78 MovieClip {assets_ui.pages.CreditsUI} [assets_ui.pages.CreditsUI] Frame 1Symbol 74 EditableText
"musicSlider"Symbol 138 MovieClip {assets_ui.HudSoundControls} [assets_ui.HudSoundControls] Frame 1Symbol 129 MovieClip {assets_ui_fla.soundSlider_47} [assets_ui_fla.soundSlider_47]
"soundSlider"Symbol 138 MovieClip {assets_ui.HudSoundControls} [assets_ui.HudSoundControls] Frame 1Symbol 129 MovieClip {assets_ui_fla.soundSlider_47} [assets_ui_fla.soundSlider_47]
"soundButton"Symbol 138 MovieClip {assets_ui.HudSoundControls} [assets_ui.HudSoundControls] Frame 1Symbol 137 Button
"musicButton"Symbol 138 MovieClip {assets_ui.HudSoundControls} [assets_ui.HudSoundControls] Frame 1Symbol 137 Button
"hover"Symbol 157 MovieClip Frame 1Symbol 155 MovieClip
"label"Symbol 157 MovieClip Frame 1Symbol 156 EditableText
"hover"Symbol 161 MovieClip Frame 1Symbol 159 MovieClip
"label"Symbol 161 MovieClip Frame 1Symbol 160 EditableText
"hover"Symbol 165 MovieClip Frame 1Symbol 163 MovieClip
"label"Symbol 165 MovieClip Frame 1Symbol 164 EditableText
"hover"Symbol 171 MovieClip Frame 1Symbol 167 MovieClip
"label"Symbol 171 MovieClip Frame 1Symbol 168 EditableText
"hover"Symbol 176 MovieClip Frame 1Symbol 173 MovieClip
"label"Symbol 176 MovieClip Frame 1Symbol 168 EditableText
"hover"Symbol 184 MovieClip Frame 1Symbol 181 MovieClip
"label"Symbol 184 MovieClip Frame 1Symbol 168 EditableText
"hover"Symbol 190 MovieClip Frame 1Symbol 188 MovieClip
"label"Symbol 190 MovieClip Frame 1Symbol 189 EditableText
"hover"Symbol 194 MovieClip Frame 1Symbol 192 MovieClip
"label"Symbol 194 MovieClip Frame 1Symbol 193 EditableText
"ButtonPause"Symbol 196 MovieClip Frame 1Symbol 190 MovieClip
"ButtonMain"Symbol 196 MovieClip Frame 1Symbol 194 MovieClip
"BaseHelp"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 144 MovieClip
"BaseMulti"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 147 MovieClip
"BaseMore"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 150 MovieClip
"BaseCharacters"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 153 MovieClip
"ButtonHelp"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 157 MovieClip
"ButtonCharacters"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 161 MovieClip
"ButtonMore"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 165 MovieClip
"ButtonShare"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 171 MovieClip
"ButtonMedals"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 176 MovieClip
"BaseStart"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 179 MovieClip
"ButtonStart"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 184 MovieClip
"InGame"Symbol 197 MovieClip {assets_ui.HudUIButtons} [assets_ui.HudUIButtons] Frame 1Symbol 196 MovieClip
"scoretext"Symbol 212 MovieClip Frame 1Symbol 211 EditableText
"top"Symbol 213 MovieClip {assets_ui.HudUI} [assets_ui.HudUI] Frame 1Symbol 205 MovieClip {assets_ui_fla.HudUI_107} [assets_ui_fla.HudUI_107]
"MenuHeader"Symbol 213 MovieClip {assets_ui.HudUI} [assets_ui.HudUI] Frame 1Symbol 212 MovieClip
"bgPanel"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 245 MovieClip {assets_ui_fla.characterBrowserBgPanel_15} [assets_ui_fla.characterBrowserBgPanel_15]
"ironmanOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 248 MovieClip
"msmarvelOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 251 MovieClip
"thorOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 254 MovieClip
"cyclopsOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 257 MovieClip
"spidermanOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 260 MovieClip
"drdoomOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 263 MovieClip
"modokOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 266 MovieClip
"molemanOff"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 269 MovieClip
"ironmanOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 272 MovieClip
"msmarvelOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 275 MovieClip
"thorOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 278 MovieClip
"cyclopsOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 281 MovieClip
"spidermanOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 284 MovieClip
"drdoomOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 287 MovieClip
"modokOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 290 MovieClip
"molemanOn"Symbol 294 MovieClip {assets_ui.pages.characterBrowser.browserBg} [assets_ui.pages.characterBrowser.browserBg] Frame 1Symbol 293 MovieClip
"arrowLeftOff"Symbol 302 MovieClip {assets_ui.pages.helpBrowser.browserBg} [assets_ui.pages.helpBrowser.browserBg] Frame 1Symbol 299 MovieClip
"arrowRightOff"Symbol 302 MovieClip {assets_ui.pages.helpBrowser.browserBg} [assets_ui.pages.helpBrowser.browserBg] Frame 1Symbol 299 MovieClip
"arrowLeftOn"Symbol 302 MovieClip {assets_ui.pages.helpBrowser.browserBg} [assets_ui.pages.helpBrowser.browserBg] Frame 1Symbol 301 MovieClip
"arrowRightOn"Symbol 302 MovieClip {assets_ui.pages.helpBrowser.browserBg} [assets_ui.pages.helpBrowser.browserBg] Frame 1Symbol 301 MovieClip
"gunfire"Symbol 443 MovieClip {assets.towers.LightningTowerL1} [assets.towers.LightningTowerL1] Frame 1Symbol 442 MovieClip
"gunfire"Symbol 446 MovieClip {assets.towers.LightningTowerL2} [assets.towers.LightningTowerL2] Frame 1Symbol 442 MovieClip
"gunfire"Symbol 449 MovieClip Frame 1Symbol 442 MovieClip
"gunfire"Symbol 450 MovieClip {assets.towers.LightningTowerL3} [assets.towers.LightningTowerL3] Frame 1Symbol 449 MovieClip
"gunfire"Symbol 466 MovieClip {assets.towers.BlasterTowerL1} [assets.towers.BlasterTowerL1] Frame 1Symbol 465 MovieClip
"gunfire"Symbol 470 MovieClip {assets.towers.BlasterTowerL2} [assets.towers.BlasterTowerL2] Frame 1Symbol 469 MovieClip
"gunfire"Symbol 481 MovieClip {assets.towers.BlasterTowerL3} [assets.towers.BlasterTowerL3] Frame 1Symbol 480 MovieClip
"gunfire"Symbol 494 MovieClip {assets.towers.LaserTowerL3} [assets.towers.LaserTowerL3] Frame 1Symbol 493 MovieClip
"gunfire"Symbol 498 MovieClip {assets.towers.LaserTowerL2} [assets.towers.LaserTowerL2] Frame 1Symbol 497 MovieClip
"gunfire"Symbol 500 MovieClip {assets.towers.LaserTowerL1} [assets.towers.LaserTowerL1] Frame 1Symbol 499 MovieClip
"gunfire"Symbol 515 MovieClip {assets.towers.SlowdownTowerL2} [assets.towers.SlowdownTowerL2] Frame 1Symbol 514 MovieClip
"gunfire"Symbol 518 MovieClip {assets.towers.SlowdownTowerL1} [assets.towers.SlowdownTowerL1] Frame 1Symbol 517 MovieClip
"gunfire"Symbol 521 MovieClip {assets.towers.SlowdownTowerL3} [assets.towers.SlowdownTowerL3] Frame 1Symbol 517 MovieClip
"gunfire"Symbol 537 MovieClip {assets.towers.RocketTowerL1} [assets.towers.RocketTowerL1] Frame 1Symbol 536 MovieClip {assets_fla.BlasterGunfire1_rocket_116} [assets_fla.BlasterGunfire1_rocket_116]
"gunfire"Symbol 540 MovieClip {assets.towers.RocketTowerL2} [assets.towers.RocketTowerL2] Frame 1Symbol 536 MovieClip {assets_fla.BlasterGunfire1_rocket_116} [assets_fla.BlasterGunfire1_rocket_116]
"gunfire"Symbol 543 MovieClip {assets.towers.RocketTowerL3} [assets.towers.RocketTowerL3] Frame 1Symbol 536 MovieClip {assets_fla.BlasterGunfire1_rocket_116} [assets_fla.BlasterGunfire1_rocket_116]
"ironmanOff"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 248 MovieClip
"msmarvelOff"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 251 MovieClip
"thorOff"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 254 MovieClip
"cyclopsOff"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 257 MovieClip
"spidermanOff"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 260 MovieClip
"ironmanOn"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 272 MovieClip
"msmarvelOn"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 275 MovieClip
"thorOn"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 278 MovieClip
"cyclopsOn"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 281 MovieClip
"spidermanOn"Symbol 552 MovieClip {assets_ui.pages.help.HelpPage2} [assets_ui.pages.help.HelpPage2] Frame 1Symbol 284 MovieClip
"closeButton"Symbol 580 MovieClip {assets.hud.GameHelpScreen} [assets.hud.GameHelpScreen] Frame 1Symbol 577 MovieClip
"closeGlow"Symbol 580 MovieClip {assets.hud.GameHelpScreen} [assets.hud.GameHelpScreen] Frame 1Symbol 579 MovieClip
"noButton"Symbol 584 MovieClip {assets.hud.ConfirmExitScreen} [assets.hud.ConfirmExitScreen] Frame 1Symbol 577 MovieClip
"yesButton"Symbol 584 MovieClip {assets.hud.ConfirmExitScreen} [assets.hud.ConfirmExitScreen] Frame 1Symbol 583 MovieClip
"noGlow"Symbol 584 MovieClip {assets.hud.ConfirmExitScreen} [assets.hud.ConfirmExitScreen] Frame 1Symbol 579 MovieClip
"yesGlow"Symbol 584 MovieClip {assets.hud.ConfirmExitScreen} [assets.hud.ConfirmExitScreen] Frame 1Symbol 579 MovieClip
"cash_txt"Symbol 603 MovieClip {assets.hud.GameTopPanel} [assets.hud.GameTopPanel] Frame 1Symbol 597 EditableText
"score_txt"Symbol 603 MovieClip {assets.hud.GameTopPanel} [assets.hud.GameTopPanel] Frame 1Symbol 598 EditableText
"helpBtn"Symbol 603 MovieClip {assets.hud.GameTopPanel} [assets.hud.GameTopPanel] Frame 1Symbol 601 MovieClip
"videoWindow"Symbol 607 MovieClip {assets.hud.GameVictoryScreen} [assets.hud.GameVictoryScreen] Frame 1Symbol 27 MovieClip
"skipBtn"Symbol 607 MovieClip {assets.hud.GameVictoryScreen} [assets.hud.GameVictoryScreen] Frame 1Symbol 30 MovieClip
"skipGlowBtn"Symbol 607 MovieClip {assets.hud.GameVictoryScreen} [assets.hud.GameVictoryScreen] Frame 1Symbol 30 MovieClip
"victoryImage"Symbol 607 MovieClip {assets.hud.GameVictoryScreen} [assets.hud.GameVictoryScreen] Frame 1Symbol 606 MovieClip
"msmarvelDisabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 610 MovieClip
"spidermanDisabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 613 MovieClip
"ironmanDisabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 616 MovieClip
"thorDisabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 619 MovieClip
"cyclopsDisabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 622 MovieClip
"msmarvelEnabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 625 MovieClip
"spidermanEnabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 628 MovieClip
"ironmanEnabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 631 MovieClip
"thorEnabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 634 MovieClip
"cyclopsEnabled"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 637 MovieClip
"msmarvelOver"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 640 MovieClip
"spidermanOver"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 643 MovieClip
"ironmanOver"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 646 MovieClip
"thorOver"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 649 MovieClip
"cyclopsOver"Symbol 653 MovieClip {assets.hud.BuyPanel} [assets.hud.BuyPanel] Frame 1Symbol 652 MovieClip
"pauseButton"Symbol 659 MovieClip {assets.hud.GamePauseScreen} [assets.hud.GamePauseScreen] Frame 1Symbol 656 MovieClip
"pauseGlow"Symbol 659 MovieClip {assets.hud.GamePauseScreen} [assets.hud.GamePauseScreen] Frame 1Symbol 658 MovieClip
"avatar"Symbol 671 MovieClip {assets.hud.BossPopupPanel} [assets.hud.BossPopupPanel] Frame 1Symbol 666 MovieClip {assets_fla.BossPopupAvatars_75} [assets_fla.BossPopupAvatars_75]
"txt"Symbol 671 MovieClip {assets.hud.BossPopupPanel} [assets.hud.BossPopupPanel] Frame 1Symbol 670 EditableText
"normalButton"Symbol 674 MovieClip {assets.hud.DifficultySelectScreen} [assets.hud.DifficultySelectScreen] Frame 1Symbol 577 MovieClip
"epicButton"Symbol 674 MovieClip {assets.hud.DifficultySelectScreen} [assets.hud.DifficultySelectScreen] Frame 1Symbol 583 MovieClip
"normalGlow"Symbol 674 MovieClip {assets.hud.DifficultySelectScreen} [assets.hud.DifficultySelectScreen] Frame 1Symbol 579 MovieClip
"epicGlow"Symbol 674 MovieClip {assets.hud.DifficultySelectScreen} [assets.hud.DifficultySelectScreen] Frame 1Symbol 579 MovieClip
"upgradeBar"Symbol 686 MovieClip Frame 1Symbol 681 MovieClip
"currentBar"Symbol 686 MovieClip Frame 1Symbol 681 MovieClip
"upgradeBar"Symbol 689 MovieClip Frame 1Symbol 681 MovieClip
"currentBar"Symbol 689 MovieClip Frame 1Symbol 681 MovieClip
"upgradeBar"Symbol 692 MovieClip Frame 1Symbol 681 MovieClip
"currentBar"Symbol 692 MovieClip Frame 1Symbol 681 MovieClip
"frequency"Symbol 693 MovieClip {assets.hud.StatBar} [assets.hud.StatBar] Frame 1Symbol 686 MovieClip
"range"Symbol 693 MovieClip {assets.hud.StatBar} [assets.hud.StatBar] Frame 1Symbol 689 MovieClip
"damage"Symbol 693 MovieClip {assets.hud.StatBar} [assets.hud.StatBar] Frame 1Symbol 692 MovieClip
"txt"Symbol 698 MovieClip Frame 1Symbol 697 EditableText
"txt"Symbol 702 MovieClip Frame 1Symbol 701 EditableText
"statBar"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 693 MovieClip {assets.hud.StatBar} [assets.hud.StatBar]
"upgradeOff"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 698 MovieClip
"sellOff"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 698 MovieClip
"upgradeOver"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 702 MovieClip
"sellOver"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 702 MovieClip
"label"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40]
"icon"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41]
"badge"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 731 MovieClip {assets_fla.towerLevelBadge_42} [assets_fla.towerLevelBadge_42]
"closeOff"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 733 MovieClip
"closeOver"Symbol 735 MovieClip {assets.hud.SelectedPanel} [assets.hud.SelectedPanel] Frame 1Symbol 734 MovieClip
"deadMask"Symbol 741 MovieClip Frame 1Symbol 736 MovieClip
"aliveMask"Symbol 741 MovieClip Frame 1Symbol 736 MovieClip
"minMask"Symbol 751 MovieClip Frame 1Symbol 746 MovieClip
"maxMask"Symbol 751 MovieClip Frame 1Symbol 746 MovieClip
"livesProgress"Symbol 760 MovieClip {assets.hud.GameBottomPanel} [assets.hud.GameBottomPanel] Frame 1Symbol 741 MovieClip
"wave_txt"Symbol 760 MovieClip {assets.hud.GameBottomPanel} [assets.hud.GameBottomPanel] Frame 1Symbol 743 EditableText
"waveProgress"Symbol 760 MovieClip {assets.hud.GameBottomPanel} [assets.hud.GameBottomPanel] Frame 1Symbol 751 MovieClip
"sendNextWave"Symbol 760 MovieClip {assets.hud.GameBottomPanel} [assets.hud.GameBottomPanel] Frame 1Symbol 756 MovieClip
"nextWaveGlow"Symbol 760 MovieClip {assets.hud.GameBottomPanel} [assets.hud.GameBottomPanel] Frame 1Symbol 759 MovieClip
"red_mc"Symbol 777 MovieClip {assets.enemies.HealthBar} [assets.enemies.HealthBar] Frame 1Symbol 776 MovieClip
"green_mc"Symbol 777 MovieClip {assets.enemies.HealthBar} [assets.enemies.HealthBar] Frame 1Symbol 776 MovieClip
"statBar"Symbol 833 MovieClip {assets.hud.BuyStatsPanel} [assets.hud.BuyStatsPanel] Frame 1Symbol 693 MovieClip {assets.hud.StatBar} [assets.hud.StatBar]
"cost_txt"Symbol 833 MovieClip {assets.hud.BuyStatsPanel} [assets.hud.BuyStatsPanel] Frame 1Symbol 831 EditableText
"label"Symbol 833 MovieClip {assets.hud.BuyStatsPanel} [assets.hud.BuyStatsPanel] Frame 1Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40]

Special Tags

FileAttributes (69)Timeline Frame 1Access network only, Metadata present, AS3.
SWFMetaData (77)Timeline Frame 1459 bytes "<rdf:RDF xmlns:rdf='http://www.w3.org/1999/02/22-rdf-syntax-ns#'><rdf:Description rdf:about='' xmlns ..."
ScriptLimits (65)Timeline Frame 1MaxRecursionDepth: 1000, ScriptTimeout: 60 seconds
ExportAssets (56)Timeline Frame 1Symbol 12 as "assets_ui.PreloaderBackgroundUI"
ExportAssets (56)Timeline Frame 1Symbol 22 as "assets_ui.Preloader"
ExportAssets (56)Timeline Frame 1Symbol 11 as "assets_ui_fla.scanLines_126"
ExportAssets (56)Timeline Frame 2Symbol 25 as "assets_ui.pages.CharactersUI"
ExportAssets (56)Timeline Frame 2Symbol 31 as "assets_ui.pages.IntroVideoUI"
ExportAssets (56)Timeline Frame 2Symbol 38 as "assets_ui.pages.TitleUI"
ExportAssets (56)Timeline Frame 2Symbol 70 as "assets_ui.pages.MedalsUI"
ExportAssets (56)Timeline Frame 2Symbol 78 as "assets_ui.pages.CreditsUI"
ExportAssets (56)Timeline Frame 2Symbol 79 as "assets_sfx.sfx.common.bleep3"
ExportAssets (56)Timeline Frame 2Symbol 80 as "assets_sfx.sfx.common.bleep2"
ExportAssets (56)Timeline Frame 2Symbol 81 as "assets_sfx.sfx.explosions.MediumVehicleExplosion"
ExportAssets (56)Timeline Frame 2Symbol 82 as "assets_sfx.sfx.common.bleep1"
ExportAssets (56)Timeline Frame 2Symbol 83 as "assets_sfx.sfx.towers.TowerSell"
ExportAssets (56)Timeline Frame 2Symbol 84 as "assets_sfx.sfx.music.MenuLoop"
ExportAssets (56)Timeline Frame 2Symbol 85 as "assets_sfx.sfx.explosions.MediumExplosion"
ExportAssets (56)Timeline Frame 2Symbol 86 as "assets_sfx.sfx.explosions.MediumGlassExplosion"
ExportAssets (56)Timeline Frame 2Symbol 87 as "assets_sfx.sfx.towers.TowerBuild"
ExportAssets (56)Timeline Frame 2Symbol 88 as "assets_sfx.sfx.music.GameLoop"
ExportAssets (56)Timeline Frame 2Symbol 89 as "assets_sfx.sfx.towers.TowerUpgrade"
ExportAssets (56)Timeline Frame 2Symbol 90 as "assets_sfx.sfx.weapons.LaserFire"
ExportAssets (56)Timeline Frame 2Symbol 91 as "assets_sfx.sfx.explosions.EnemyObjective"
ExportAssets (56)Timeline Frame 2Symbol 92 as "assets_sfx.sfx.weapons.RocketFire"
ExportAssets (56)Timeline Frame 2Symbol 93 as "assets_sfx.sfx.explosions.HeliExplosion"
ExportAssets (56)Timeline Frame 2Symbol 94 as "assets_sfx.sfx.common.NavButtonSound"
ExportAssets (56)Timeline Frame 2Symbol 95 as "assets_sfx.sfx.weapons.LightningFire"
ExportAssets (56)Timeline Frame 2Symbol 96 as "assets_sfx.sfx.explosions.SmallExplosion"
ExportAssets (56)Timeline Frame 2Symbol 97 as "assets_sfx.sfx.common.PanelSound"
ExportAssets (56)Timeline Frame 2Symbol 98 as "assets_sfx.sfx.explosions.BossExplosion"
ExportAssets (56)Timeline Frame 2Symbol 99 as "assets_sfx.sfx.common.PanelSound2"
ExportAssets (56)Timeline Frame 2Symbol 100 as "assets_sfx.sfx.explosions.HeavyExplosion"
ExportAssets (56)Timeline Frame 2Symbol 101 as "assets_sfx.sfx.weapons.BlasterFire"
ExportAssets (56)Timeline Frame 2Symbol 102 as "assets_sfx.sfx.weapons.SlowdownFire"
ExportAssets (56)Timeline Frame 2Symbol 103 as "assets_sfx.sfx.weapons.RocketExplosion"
ExportAssets (56)Timeline Frame 2Symbol 106 as "assets_ui.pages.HelpUI"
ExportAssets (56)Timeline Frame 2Symbol 109 as "assets.Level01"
ExportAssets (56)Timeline Frame 2Symbol 110 as "assets.Level01_animated"
ExportAssets (56)Timeline Frame 2Symbol 112 as "assets.ui.GameMask"
ExportAssets (56)Timeline Frame 2Symbol 114 as "assets.Level01Background"
ExportAssets (56)Timeline Frame 2Symbol 138 as "assets_ui.HudSoundControls"
ExportAssets (56)Timeline Frame 2Symbol 141 as "assets_ui.HudBtnSHS"
ExportAssets (56)Timeline Frame 2Symbol 197 as "assets_ui.HudUIButtons"
ExportAssets (56)Timeline Frame 2Symbol 200 as "assets_ui.HudBtnMarvelKids"
ExportAssets (56)Timeline Frame 2Symbol 213 as "assets_ui.HudUI"
ExportAssets (56)Timeline Frame 2Symbol 216 as "assets_ui.HudBtnCredits"
ExportAssets (56)Timeline Frame 2Symbol 219 as "assets_ui.pages.characters.ModokPage"
ExportAssets (56)Timeline Frame 2Symbol 222 as "assets_ui.pages.characters.MsmarvelPage"
ExportAssets (56)Timeline Frame 2Symbol 225 as "assets_ui.pages.characters.ThorPage"
ExportAssets (56)Timeline Frame 2Symbol 228 as "assets_ui.pages.characters.IronmanPage"
ExportAssets (56)Timeline Frame 2Symbol 231 as "assets_ui.pages.characters.MolemanPage"
ExportAssets (56)Timeline Frame 2Symbol 234 as "assets_ui.pages.characters.SpidermanPage"
ExportAssets (56)Timeline Frame 2Symbol 237 as "assets_ui.pages.characters.CyclopsPage"
ExportAssets (56)Timeline Frame 2Symbol 240 as "assets_ui.pages.characters.DrdoomPage"
ExportAssets (56)Timeline Frame 2Symbol 294 as "assets_ui.pages.characterBrowser.browserBg"
ExportAssets (56)Timeline Frame 2Symbol 302 as "assets_ui.pages.helpBrowser.browserBg"
ExportAssets (56)Timeline Frame 2Symbol 304 as "assets.level01.fortress.DamageFlash"
ExportAssets (56)Timeline Frame 2Symbol 307 as "assets.level01.fortress.HealthFull"
ExportAssets (56)Timeline Frame 2Symbol 310 as "assets.level01.fortress.HealthLow"
ExportAssets (56)Timeline Frame 2Symbol 313 as "assets.level01.fortress.HealthMedium"
ExportAssets (56)Timeline Frame 2Symbol 316 as "assets.effects.MapScar"
ExportAssets (56)Timeline Frame 2Symbol 319 as "assets.hud.SlowdownTowerIcon"
ExportAssets (56)Timeline Frame 2Symbol 322 as "assets.hud.LightningTowerIcon"
ExportAssets (56)Timeline Frame 2Symbol 325 as "assets.hud.BlasterTowerIcon"
ExportAssets (56)Timeline Frame 2Symbol 328 as "assets.hud.LaserTowerIcon"
ExportAssets (56)Timeline Frame 2Symbol 331 as "assets.hud.RocketTowerIcon"
ExportAssets (56)Timeline Frame 2Symbol 334 as "assets.hud.HudBG"
ExportAssets (56)Timeline Frame 2Symbol 337 as "assets.weapons.SlowdownExplosion"
ExportAssets (56)Timeline Frame 2Symbol 129 as "assets_ui_fla.soundSlider_47"
ExportAssets (56)Timeline Frame 2Symbol 205 as "assets_ui_fla.HudUI_107"
ExportAssets (56)Timeline Frame 2Symbol 340 as "assets.enemies.DoombotShadow"
ExportAssets (56)Timeline Frame 2Symbol 347 as "assets.enemies.DoombotClip"
ExportAssets (56)Timeline Frame 2Symbol 354 as "assets.enemies.MoleoidClip"
ExportAssets (56)Timeline Frame 2Symbol 357 as "assets.enemies.MoleoidShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 360 as "assets.enemies.DrDoomShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 363 as "assets.enemies.DrDoomClip"
ExportAssets (56)Timeline Frame 2Symbol 366 as "assets.enemies.HelicopterShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 369 as "assets.enemies.HelicopterClip"
ExportAssets (56)Timeline Frame 2Symbol 372 as "assets.enemies.AIMSentryShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 379 as "assets.enemies.AIMSentry_BlueClip"
ExportAssets (56)Timeline Frame 2Symbol 382 as "assets.enemies.ModokClip"
ExportAssets (56)Timeline Frame 2Symbol 385 as "assets.enemies.ModokShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 392 as "assets.enemies.AIMSentry_RedClip"
ExportAssets (56)Timeline Frame 2Symbol 395 as "assets.enemies.MoleManShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 402 as "assets.enemies.MoleManClip"
ExportAssets (56)Timeline Frame 2Symbol 405 as "assets.enemies.LightTankClip"
ExportAssets (56)Timeline Frame 2Symbol 408 as "assets.enemies.LightTankShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 411 as "assets.enemies.HeavyTankClip"
ExportAssets (56)Timeline Frame 2Symbol 414 as "assets.enemies.HeavyTankShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 417 as "assets.enemies.JeepClip"
ExportAssets (56)Timeline Frame 2Symbol 420 as "assets.enemies.JeepShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 423 as "assets.enemies.CruiseMissileClip"
ExportAssets (56)Timeline Frame 2Symbol 426 as "assets.enemies.CruiseMissileShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 429 as "assets.enemies.AttackAPCShadowClip"
ExportAssets (56)Timeline Frame 2Symbol 432 as "assets.enemies.AttackAPCClip"
ExportAssets (56)Timeline Frame 2Symbol 439 as "assets.enemies.AIMSentry_YellowClip"
ExportAssets (56)Timeline Frame 2Symbol 443 as "assets.towers.LightningTowerL1"
ExportAssets (56)Timeline Frame 2Symbol 446 as "assets.towers.LightningTowerL2"
ExportAssets (56)Timeline Frame 2Symbol 450 as "assets.towers.LightningTowerL3"
ExportAssets (56)Timeline Frame 2Symbol 453 as "assets.towers.LightningTowerShadowL1"
ExportAssets (56)Timeline Frame 2Symbol 456 as "assets.towers.LightningTowerShadowL3"
ExportAssets (56)Timeline Frame 2Symbol 459 as "assets.towers.LightningTowerShadowL2"
ExportAssets (56)Timeline Frame 2Symbol 462 as "assets.towers.BlasterTowerShadowL3"
ExportAssets (56)Timeline Frame 2Symbol 466 as "assets.towers.BlasterTowerL1"
ExportAssets (56)Timeline Frame 2Symbol 470 as "assets.towers.BlasterTowerL2"
ExportAssets (56)Timeline Frame 2Symbol 473 as "assets.towers.BlasterTowerShadowL2"
ExportAssets (56)Timeline Frame 2Symbol 475 as "assets.towers.BlasterTowerShadowL1"
ExportAssets (56)Timeline Frame 2Symbol 481 as "assets.towers.BlasterTowerL3"
ExportAssets (56)Timeline Frame 2Symbol 484 as "assets.towers.LaserTowerShadowL2"
ExportAssets (56)Timeline Frame 2Symbol 487 as "assets.towers.LaserTowerShadowL1"
ExportAssets (56)Timeline Frame 2Symbol 490 as "assets.towers.LaserTowerShadowL3"
ExportAssets (56)Timeline Frame 2Symbol 494 as "assets.towers.LaserTowerL3"
ExportAssets (56)Timeline Frame 2Symbol 498 as "assets.towers.LaserTowerL2"
ExportAssets (56)Timeline Frame 2Symbol 500 as "assets.towers.LaserTowerL1"
ExportAssets (56)Timeline Frame 2Symbol 503 as "assets.towers.SlowdownTowerShadowL3"
ExportAssets (56)Timeline Frame 2Symbol 506 as "assets.towers.SlowdownTowerShadowL2"
ExportAssets (56)Timeline Frame 2Symbol 509 as "assets.towers.SlowdownTowerShadowL1"
ExportAssets (56)Timeline Frame 2Symbol 515 as "assets.towers.SlowdownTowerL2"
ExportAssets (56)Timeline Frame 2Symbol 518 as "assets.towers.SlowdownTowerL1"
ExportAssets (56)Timeline Frame 2Symbol 521 as "assets.towers.SlowdownTowerL3"
ExportAssets (56)Timeline Frame 2Symbol 524 as "assets.towers.RocketTowerShadowL2"
ExportAssets (56)Timeline Frame 2Symbol 527 as "assets.towers.RocketTowerShadowL3"
ExportAssets (56)Timeline Frame 2Symbol 530 as "assets.towers.RocketTowerShadowL1"
ExportAssets (56)Timeline Frame 2Symbol 537 as "assets.towers.RocketTowerL1"
ExportAssets (56)Timeline Frame 2Symbol 540 as "assets.towers.RocketTowerL2"
ExportAssets (56)Timeline Frame 2Symbol 543 as "assets.towers.RocketTowerL3"
ExportAssets (56)Timeline Frame 2Symbol 245 as "assets_ui_fla.characterBrowserBgPanel_15"
ExportAssets (56)Timeline Frame 2Symbol 546 as "assets_ui.pages.help.HelpPage4"
ExportAssets (56)Timeline Frame 2Symbol 549 as "assets_ui.pages.help.HelpPage3"
ExportAssets (56)Timeline Frame 2Symbol 552 as "assets_ui.pages.help.HelpPage2"
ExportAssets (56)Timeline Frame 2Symbol 555 as "assets_ui.pages.help.defenders.CyclopsPage"
ExportAssets (56)Timeline Frame 2Symbol 558 as "assets_ui.pages.help.defenders.SpidermanPage"
ExportAssets (56)Timeline Frame 2Symbol 561 as "assets_ui.pages.help.defenders.MsmarvelPage"
ExportAssets (56)Timeline Frame 2Symbol 564 as "assets_ui.pages.help.defenders.ThorPage"
ExportAssets (56)Timeline Frame 2Symbol 567 as "assets_ui.pages.help.defenders.IronmanPage"
ExportAssets (56)Timeline Frame 2Symbol 570 as "assets_ui.pages.help.HelpPage1"
ExportAssets (56)Timeline Frame 2Symbol 573 as "assets_ui.pages.help.HelpPage5"
ExportAssets (56)Timeline Frame 2Symbol 580 as "assets.hud.GameHelpScreen"
ExportAssets (56)Timeline Frame 2Symbol 584 as "assets.hud.ConfirmExitScreen"
ExportAssets (56)Timeline Frame 2Symbol 587 as "assets.hud.HoverDenied"
ExportAssets (56)Timeline Frame 2Symbol 590 as "assets.hud.HoverAllowed"
ExportAssets (56)Timeline Frame 2Symbol 593 as "assets.hud.GameDefeatScreen"
ExportAssets (56)Timeline Frame 2Symbol 603 as "assets.hud.GameTopPanel"
ExportAssets (56)Timeline Frame 2Symbol 607 as "assets.hud.GameVictoryScreen"
ExportAssets (56)Timeline Frame 2Symbol 653 as "assets.hud.BuyPanel"
ExportAssets (56)Timeline Frame 2Symbol 659 as "assets.hud.GamePauseScreen"
ExportAssets (56)Timeline Frame 2Symbol 671 as "assets.hud.BossPopupPanel"
ExportAssets (56)Timeline Frame 2Symbol 674 as "assets.hud.DifficultySelectScreen"
ExportAssets (56)Timeline Frame 2Symbol 735 as "assets.hud.SelectedPanel"
ExportAssets (56)Timeline Frame 2Symbol 760 as "assets.hud.GameBottomPanel"
ExportAssets (56)Timeline Frame 2Symbol 763 as "assets.weapons.SlowdownProjectile"
ExportAssets (56)Timeline Frame 2Symbol 769 as "assets.weapons.RocketProjectileL3"
ExportAssets (56)Timeline Frame 2Symbol 771 as "assets.weapons.RocketProjectileL1"
ExportAssets (56)Timeline Frame 2Symbol 774 as "assets.weapons.RocketProjectileL2"
ExportAssets (56)Timeline Frame 2Symbol 777 as "assets.enemies.HealthBar"
ExportAssets (56)Timeline Frame 2Symbol 536 as "assets_fla.BlasterGunfire1_rocket_116"
ExportAssets (56)Timeline Frame 2Symbol 812 as "assets.effects.ExplodeUI"
ExportAssets (56)Timeline Frame 2Symbol 815 as "assets.effects.ParticleUI"
ExportAssets (56)Timeline Frame 2Symbol 830 as "assets.effects.ChunkUI"
ExportAssets (56)Timeline Frame 2Symbol 833 as "assets.hud.BuyStatsPanel"
ExportAssets (56)Timeline Frame 2Symbol 666 as "assets_fla.BossPopupAvatars_75"
ExportAssets (56)Timeline Frame 2Symbol 693 as "assets.hud.StatBar"
ExportAssets (56)Timeline Frame 2Symbol 724 as "assets_fla.towerSelectedIcons_41"
ExportAssets (56)Timeline Frame 2Symbol 731 as "assets_fla.towerLevelBadge_42"
ExportAssets (56)Timeline Frame 2Symbol 713 as "assets_fla.towerTitleLabels_40"
SerialNumber (41)Timeline Frame 1

Labels

"preloader_AbstractPreloaderViewDart"Frame 1
"SuperHeroSquad_dart_v1"Frame 2
"intro"Symbol 38 MovieClip {assets_ui.pages.TitleUI} [assets_ui.pages.TitleUI] Frame 2
"off"Symbol 129 MovieClip {assets_ui_fla.soundSlider_47} [assets_ui_fla.soundSlider_47] Frame 2
"on"Symbol 129 MovieClip {assets_ui_fla.soundSlider_47} [assets_ui_fla.soundSlider_47] Frame 9
"menu"Symbol 205 MovieClip {assets_ui_fla.HudUI_107} [assets_ui_fla.HudUI_107] Frame 1
"game"Symbol 205 MovieClip {assets_ui_fla.HudUI_107} [assets_ui_fla.HudUI_107] Frame 5
"hero"Symbol 245 MovieClip {assets_ui_fla.characterBrowserBgPanel_15} [assets_ui_fla.characterBrowserBgPanel_15] Frame 1
"villain"Symbol 245 MovieClip {assets_ui_fla.characterBrowserBgPanel_15} [assets_ui_fla.characterBrowserBgPanel_15] Frame 2
"fire"Symbol 536 MovieClip {assets_fla.BlasterGunfire1_rocket_116} [assets_fla.BlasterGunfire1_rocket_116] Frame 2
"moleman"Symbol 666 MovieClip {assets_fla.BossPopupAvatars_75} [assets_fla.BossPopupAvatars_75] Frame 1
"modok"Symbol 666 MovieClip {assets_fla.BossPopupAvatars_75} [assets_fla.BossPopupAvatars_75] Frame 2
"drdoom"Symbol 666 MovieClip {assets_fla.BossPopupAvatars_75} [assets_fla.BossPopupAvatars_75] Frame 3
"msmarvel"Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40] Frame 1
"spiderman"Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40] Frame 2
"ironman"Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40] Frame 3
"cyclops"Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40] Frame 4
"thor"Symbol 713 MovieClip {assets_fla.towerTitleLabels_40} [assets_fla.towerTitleLabels_40] Frame 5
"msmarvel"Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41] Frame 1
"spiderman"Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41] Frame 2
"ironman"Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41] Frame 3
"cyclops"Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41] Frame 4
"thor"Symbol 724 MovieClip {assets_fla.towerSelectedIcons_41} [assets_fla.towerSelectedIcons_41] Frame 5
"gold"Symbol 731 MovieClip {assets_fla.towerLevelBadge_42} [assets_fla.towerLevelBadge_42] Frame 1
"silver"Symbol 731 MovieClip {assets_fla.towerLevelBadge_42} [assets_fla.towerLevelBadge_42] Frame 2
"broze"Symbol 731 MovieClip {assets_fla.towerLevelBadge_42} [assets_fla.towerLevelBadge_42] Frame 3




http://swfchan.com/19/91503/info.shtml
Created: 27/3 -2019 21:51:59 Last modified: 27/3 -2019 21:51:59 Server time: 02/05 -2024 04:15:02