Section 1
//AdLoader (CPMStar.AdLoader)
package CPMStar {
import flash.display.*;
import flash.net.*;
import flash.system.*;
public class AdLoader {
private static var cpmstarLoader:Loader;
public static function LoadAd(_arg1:int, _arg2:int):DisplayObject{
Security.allowDomain("server.cpmstar.com");
var _local3 = "http://server.cpmstar.com/adviewas3.swf";
cpmstarLoader = new Loader();
cpmstarLoader.load(new URLRequest(((((_local3 + "?poolid=") + _arg1) + "&subpoolid=") + _arg2)));
return (cpmstarLoader);
}
}
}//package CPMStar
Section 2
//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 3
//ag_intro_mc_74 (THGFOLTG_fla.ag_intro_mc_74)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class ag_intro_mc_74 extends MovieClip {
public function ag_intro_mc_74(){
addFrameScript(0, frame1, 178, frame179);
}
function frame1(){
gotoAndPlay(2);
}
function frame179(){
stop();
}
}
}//package THGFOLTG_fla
Section 4
//BackBTN_27 (THGFOLTG_fla.BackBTN_27)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class BackBTN_27 extends MovieClip {
public function BackBTN_27(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 5
//City_2 (THGFOLTG_fla.City_2)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class City_2 extends MovieClip {
public function City_2(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 6
//CreditsBTN_24 (THGFOLTG_fla.CreditsBTN_24)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class CreditsBTN_24 extends MovieClip {
public function CreditsBTN_24(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 7
//GameOverMainMenu_45 (THGFOLTG_fla.GameOverMainMenu_45)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class GameOverMainMenu_45 extends MovieClip {
public function GameOverMainMenu_45(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 8
//GameOverMoreGames_46 (THGFOLTG_fla.GameOverMoreGames_46)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class GameOverMoreGames_46 extends MovieClip {
public function GameOverMoreGames_46(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 9
//HighBTN_30 (THGFOLTG_fla.HighBTN_30)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class HighBTN_30 extends MovieClip {
public function HighBTN_30(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 10
//LowBTN_32 (THGFOLTG_fla.LowBTN_32)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class LowBTN_32 extends MovieClip {
public function LowBTN_32(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 11
//MedBTN_31 (THGFOLTG_fla.MedBTN_31)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class MedBTN_31 extends MovieClip {
public function MedBTN_31(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 12
//MoreGamesBTN_25 (THGFOLTG_fla.MoreGamesBTN_25)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class MoreGamesBTN_25 extends MovieClip {
public function MoreGamesBTN_25(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 13
//OffBTN_34 (THGFOLTG_fla.OffBTN_34)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class OffBTN_34 extends MovieClip {
public function OffBTN_34(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 14
//OnBTN_33 (THGFOLTG_fla.OnBTN_33)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class OnBTN_33 extends MovieClip {
public function OnBTN_33(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 15
//PauseContinue_59 (THGFOLTG_fla.PauseContinue_59)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class PauseContinue_59 extends MovieClip {
public function PauseContinue_59(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 16
//PauseMainMenu_60 (THGFOLTG_fla.PauseMainMenu_60)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class PauseMainMenu_60 extends MovieClip {
public function PauseMainMenu_60(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 17
//PauseMoreGames_61 (THGFOLTG_fla.PauseMoreGames_61)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class PauseMoreGames_61 extends MovieClip {
public function PauseMoreGames_61(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 18
//PlayGameBTN_23 (THGFOLTG_fla.PlayGameBTN_23)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class PlayGameBTN_23 extends MovieClip {
public function PlayGameBTN_23(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 19
//SettingsBTN_26 (THGFOLTG_fla.SettingsBTN_26)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class SettingsBTN_26 extends MovieClip {
public function SettingsBTN_26(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package THGFOLTG_fla
Section 20
//SoundBuffer_68 (THGFOLTG_fla.SoundBuffer_68)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class SoundBuffer_68 extends MovieClip {
public function SoundBuffer_68(){
addFrameScript(0, frame1);
}
function frame1(){
gotoAndStop(totalFrames);
}
}
}//package THGFOLTG_fla
Section 21
//Tip_42 (THGFOLTG_fla.Tip_42)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class Tip_42 extends MovieClip {
public function Tip_42(){
addFrameScript(119, frame120);
}
function frame120(){
stop();
}
}
}//package THGFOLTG_fla
Section 22
//Tutorial_47 (THGFOLTG_fla.Tutorial_47)
package THGFOLTG_fla {
import flash.display.*;
public dynamic class Tutorial_47 extends MovieClip {
public var skip_btn:MovieClip;
public function Tutorial_47(){
addFrameScript(269, frame270);
}
function frame270(){
stop();
}
}
}//package THGFOLTG_fla
Section 23
//BossMeteor (BossMeteor)
package {
import flash.display.*;
public class BossMeteor extends MovieClip {
private var initX;
private var initY;
public var mainRef:Main;
public var vX;
public var vY;
private var targetX;// = 300
private var maxVY;
private var targetY;// = 550
public var mass:int;
public var fire:meteorImpact;
public var blnDead:Boolean;
public var type:Number;
private function RandNum(_arg1:Number, _arg2:Number):Number{
return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1));
}
public function behavior():void{
if (mainRef.currentState() == 1){
if (vY < maxVY){
vY = (vY + (2 / (this.scaleX * this.scaleX)));
};
if ((((((((this.y < ((targetY + initY) + 100))) && ((this.y >= (initY - 100))))) && ((this.x > (0 - (this.width / 2)))))) && ((this.x < (600 + (this.width / 2)))))){
this.x = (this.x + vX);
this.y = (this.y + vY);
} else {
if ((((((this.x > (0 - (this.width / 2)))) && ((this.x < (600 + (this.width / 2)))))) && ((this.y > 0)))){
blnDead = true;
mainRef.shakeScreen(((this.scaleX - 1) / 100));
this.gotoAndPlay((this.currentFrame + 1));
animationCheck();
} else {
if (this.y < (initY - 100)){
mainRef.game_mc.adjustScore(((this.width * this.scaleX) + 800));
mainRef.game_mc.DeleteMeteor(this);
} else {
mainRef.game_mc.adjustScore((((this.width * this.scaleX) + 800) - this.y));
mainRef.game_mc.DeleteMeteor(this);
};
};
};
};
}
public function Setup(_arg1:Main, _arg2:Number):void{
mainRef = _arg1;
blnDead = false;
type = (_arg2 + 1);
this.scaleX = (mainRef.game_mc.getTimerCount() / (5 + (mainRef.game_mc.getTimerCount() / 15)));
this.scaleY = scaleX;
this.x = 300;
this.y = (-100 - (this.height / 2));
initX = this.x;
initY = this.y;
maxVY = (((targetY - initY) / this.scaleX) / 50);
vY = (((targetY - initY) / this.scaleX) / 200);
vX = (((targetX - initX) / this.scaleX) / 200);
mass = (this.scaleX * 160);
}
public function shatter():void{
mainRef.shakeScreen(15);
}
private function animationCheck():void{
var _local1:MovieClip;
if (this.currentFrame == 2){
mainRef.game_mc.adjustHealth((this.width / 5));
mainRef.sPlayer.PlaySound(new Impact());
mainRef.sPlayer.PlaySound(new Fire());
};
if (this.currentFrame == this.totalFrames){
_local1 = new meteorImpact();
mainRef.game_mc.graveyard.addChild(_local1);
_local1.x = this.x;
_local1.y = (this.y + (this.height / 4));
if (type == 1){
_local1.scaleX = this.scaleX;
} else {
if (type == 2){
_local1.scaleX = (this.scaleX * 1.5);
};
};
_local1.scaleY = _local1.scaleX;
mainRef.game_mc.DeleteMeteor(this);
};
}
public function KillMe():void{
var _local1:* = mainRef.game_mc.hero_mc.getCurrentTarget();
if (_local1 == this){
mainRef.game_mc.hero_mc.clearCurrentTarget();
mainRef.game_mc.hero_mc.gotoAndStop(nextFrame);
};
mainRef.game_mc.meteorZone_mc.removeChild(this);
}
}
}//package
Section 24
//BOSSmeteorA (BOSSmeteorA)
package {
public dynamic class BOSSmeteorA extends BossMeteor {
public function BOSSmeteorA(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 25
//BOSSmeteorB (BOSSmeteorB)
package {
public dynamic class BOSSmeteorB extends BossMeteor {
public function BOSSmeteorB(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 26
//Button (Button)
package {
import flash.media.*;
public dynamic class Button extends Sound {
}
}//package
Section 27
//ContinueBTN (ContinueBTN)
package {
import flash.display.*;
public dynamic class ContinueBTN extends MovieClip {
public function ContinueBTN(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 28
//Fire (Fire)
package {
import flash.media.*;
public dynamic class Fire extends Sound {
}
}//package
Section 29
//GAME (GAME)
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.geom.*;
import flash.net.*;
import flash.utils.*;
import flash.text.*;
import flash.system.*;
import flash.ui.*;
import flash.filters.*;
import adobe.utils.*;
import flash.accessibility.*;
import flash.errors.*;
import flash.external.*;
import flash.printing.*;
import flash.profiler.*;
import flash.sampler.*;
import flash.xml.*;
public dynamic class GAME extends GameEngine {
public var pauseTimer:Timer;
public function GAME(){
addFrameScript(0, frame1, 1, frame2, 2, frame3, 3, frame4, 4, frame5);
}
public function runMainMenu(_arg1:TimerEvent):void{
Main(parent).mainMenu();
}
function frame1(){
stop();
city.sky.gotoAndStop(1);
city.ground.gotoAndStop(1);
pauseTimer = new Timer(100, 1);
pauseTimer.addEventListener(TimerEvent.TIMER, runMainMenu);
pauseTimer.start();
}
function frame2(){
stop();
city.sky.gotoAndStop(1);
city.ground.gotoAndStop(1);
Main(root).runCredits();
}
function frame3(){
stop();
city.sky.gotoAndStop(1);
city.ground.gotoAndStop(1);
Main(root).runSettings();
}
function frame4(){
stop();
city.sky.gotoAndPlay(2);
city.ground.gotoAndPlay(2);
hero_mc.Setup(Main(root));
}
function frame5(){
stop();
city.sky.stop();
city.ground.stop();
}
}
}//package
Section 30
//GameEngine (GameEngine)
package {
import flash.display.*;
import flash.events.*;
import flash.utils.*;
import flash.text.*;
public class GameEngine extends MovieClip {
public var back_btn:MovieClip;
private var bossSpawnDelay;
public var tutorial_mc:MovieClip;
private var enemyToSpawn:Number;
private var superSpeedTimer:Timer;
private var mainRef:Main;
private var enemies:Array;
public var moregames_btn:MovieClip;
public var credits_btn:MovieClip;
public var settings_btn:MovieClip;
public var activeEnemies:Array;
private var powerupSpawnDelay;
public var health_dt:TextField;
public var powerupIcon1:ShockWaveIcon;
public var powerupIcon2:ShockWaveIcon;
public var powerupIcon3:ShockWaveIcon;
public var score_dt:TextField;
public var graphicsMED_btn:MovieClip;
public var musicON_btn:MovieClip;
public var poly_btn:MovieClip;
public var city:MovieClip;
public var gameTimer:Timer;
public var Cursor:MovieClip;
private var pickups:Array;
public var soundOFF_btn:MovieClip;
public var gameOver_mc:MovieClip;
public var activePickups:Array;
public var score:int;
private var pickupToSpawn:Number;
public var musicOFF_btn:MovieClip;
private var cityHealth:Number;
public var meteorZone_mc:MovieClip;
public var graveyard:Graveyard;
private var spawnDelay;
public var graphicsHIGH_btn:MovieClip;
public var soundON_btn:MovieClip;
private var bosses:Array;
public var graphicsLOW_btn:MovieClip;
public var heroCredits_mc:MovieClip;
public var hero_mc:Hero_sm;
public var start_btn:MovieClip;
public function GameEngine(){
gameTimer = new Timer(1000, 0);
activeEnemies = new Array();
activePickups = new Array();
superSpeedTimer = new Timer(3000, 1);
super();
}
private function RandNum(_arg1:Number, _arg2:Number):Number{
return (Math.round((((Math.random() * ((_arg2 - _arg1) + 0.8)) + _arg1) - 0.4)));
}
private function generatePowerup():void{
pickupToSpawn = RandNum(0, (pickups.length - 1));
var _local1:MovieClip = new (pickups[pickupToSpawn]);
mainRef.addChild(_local1);
_local1.Setup(mainRef, pickupToSpawn);
activePickups.push(_local1);
}
public function spliceArray(_arg1:MovieClip):void{
var _local2:Number = 0;
while (_local2 < activeEnemies.length) {
if (_arg1 == activeEnemies[_local2]){
activeEnemies.splice(_local2, 1);
break;
};
_local2++;
};
}
public function updateMeteors():void{
var _local1:int;
_local1 = 0;
while (_local1 < activeEnemies.length) {
activeEnemies[_local1].behavior();
_local1++;
};
}
public function adjustScore(_arg1:int):void{
score = (score + _arg1);
score_dt.text = score.toString();
}
public function DeleteMeteor(_arg1:MovieClip):void{
shortenDelay();
var _local2:Number = 0;
while (_local2 < activeEnemies.length) {
if (_arg1.name == activeEnemies[_local2].name){
activeEnemies.splice(_local2, 1);
_arg1.KillMe();
break;
};
_local2++;
};
}
public function checkDelay():void{
if (gameTimer.currentCount >= bossSpawnDelay){
bossSpawnDelay = (bossSpawnDelay + (gameTimer.currentCount / 1.5));
spawnDelay = (spawnDelay + RandNum((1 + (200 / gameTimer.currentCount)), (2 + (400 / gameTimer.currentCount))));
generateBoss();
} else {
if (gameTimer.currentCount >= spawnDelay){
spawnDelay = (spawnDelay + RandNum((1 + (10 / Math.sqrt(gameTimer.currentCount))), (2 + (20 / Math.sqrt(gameTimer.currentCount)))));
generate();
};
};
if (gameTimer.currentCount >= powerupSpawnDelay){
powerupSpawnDelay = (spawnDelay + RandNum(15, 30));
generatePowerup();
};
}
public function Setup(_arg1:Main):void{
enemies = new Array();
bosses = new Array();
pickups = new Array();
cityHealth = 100;
score = 0;
mainRef = _arg1;
enemies.push(meteorA);
enemies.push(meteorB);
bosses.push(BOSSmeteorA);
bosses.push(BOSSmeteorB);
pickups.push(ShockWavePickup);
pickups.push(LaserBeamsPickup);
pickups.push(SuperSpeedPickup);
spawnDelay = 4;
bossSpawnDelay = 45;
powerupSpawnDelay = RandNum(15, 30);
this.addEventListener(Event.ENTER_FRAME, setHealthScore);
}
public function shortenDelay():void{
if (meteorZone_mc.numChildren == 1){
spawnDelay = (gameTimer.currentCount + 2);
};
}
private function endGame(_arg1:TimerEvent):void{
gameTimer.stop();
if (activePickups.length > 0){
mainRef.removeChild(activePickups[0]);
activePickups.splice(0, 1);
};
gotoAndStop(5);
}
private function generate():void{
var _local2:int;
var _local3:uint;
enemyToSpawn = RandNum(0, (enemies.length - 1));
var _local1:MovieClip = new (enemies[enemyToSpawn]);
_local1.Setup(mainRef, enemyToSpawn);
if (meteorZone_mc.numChildren > 0){
_local3 = (meteorZone_mc.numChildren - 1);
_local2 = _local3;
while (_local2 >= 1) {
if (meteorZone_mc.getChildAt(_local2).width <= _local1.width){
_local3--;
};
_local2--;
};
} else {
_local3 = 0;
};
if (_local3 == meteorZone_mc.numChildren){
meteorZone_mc.addChild(_local1);
} else {
meteorZone_mc.addChildAt(_local1, (_local3 + 1));
};
activeEnemies.push(_local1);
}
private function generateBoss():void{
enemyToSpawn = RandNum(0, (bosses.length - 1));
var _local1:MovieClip = new (bosses[enemyToSpawn]);
meteorZone_mc.addChildAt(_local1, 0);
activeEnemies.push(_local1);
_local1.Setup(mainRef, enemyToSpawn);
}
public function getActiveEnemies():Array{
return (activeEnemies);
}
public function moveCursor():void{
if ((((((((stage.mouseX >= 0)) && ((stage.mouseX <= 600)))) && ((stage.mouseY >= 0)))) && ((stage.mouseY <= 550)))){
Cursor.x = stage.mouseX;
Cursor.y = stage.mouseY;
Cursor.alpha = (0 + (Math.sqrt((((stage.mouseX - hero_mc.x) * (stage.mouseX - hero_mc.x)) + ((stage.mouseY - hero_mc.y) * (stage.mouseY - hero_mc.y)))) / 700));
};
}
public function spawnShockWave():void{
var _local1:* = new ShockWavePower();
_local1.x = hero_mc.x;
_local1.y = hero_mc.y;
addChild(_local1);
_local1.Setup(mainRef);
}
public function getTimerCount():Number{
return (gameTimer.currentCount);
}
public function endSuperSpeed(_arg1:TimerEvent):void{
if (hero_mc != null){
hero_mc.blnSuperSpeed = false;
superSpeedTimer.removeEventListener(TimerEvent.TIMER_COMPLETE, endSuperSpeed);
superSpeedTimer.reset();
hero_mc.speedGlow(0);
};
}
private function setHealthScore(_arg1:Event):void{
score_dt.text = "0";
health_dt.text = "100%";
this.removeEventListener(Event.ENTER_FRAME, setHealthScore);
}
public function adjustHealth(_arg1:int):void{
var _local2:Timer;
if (cityHealth == 0){
} else {
cityHealth = (cityHealth - _arg1);
if (cityHealth < 0){
cityHealth = 0;
};
health_dt.text = (cityHealth + "%");
mainRef.game_mc.city.skyline.gotoAndStop((6 - Math.round(((5 * cityHealth) / 100))));
if (cityHealth == 0){
_local2 = new Timer(1000, 1);
_local2.addEventListener(TimerEvent.TIMER, endGame);
_local2.start();
};
};
}
public function activateSuperSpeed():void{
hero_mc.blnSuperSpeed = true;
superSpeedTimer.addEventListener(TimerEvent.TIMER_COMPLETE, endSuperSpeed);
superSpeedTimer.start();
hero_mc.speedGlow(3);
}
}
}//package
Section 31
//Graveyard (Graveyard)
package {
import flash.display.*;
public dynamic class Graveyard extends MovieClip {
}
}//package
Section 32
//Hero_sm (Hero_sm)
package {
public dynamic class Hero_sm extends HeroController {
public function Hero_sm(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 33
//HeroController (HeroController)
package {
import flash.display.*;
import flash.events.*;
import fl.motion.*;
import flash.filters.*;
public class HeroController extends MovieClip {
private var tint:Color;
private var hitRadius;
private var forceX;
public var blnSuperSpeed:Boolean;
public var cape:MovieClip;
private var forceY;
private var rotdir:int;
private var ActiveEnemies:Array;
private var capeFrame:Number;
private var initRot:int;
public var mainRef:Main;
public var targetEnemy:MovieClip;
public var motionblur_mc:MovieClip;
private var movdis:int;
private var detint:Color;
private var hero_filters:Array;
public function HeroController(){
tint = new Color();
detint = new Color();
super();
}
private function motionBlur(_arg1:Number, _arg2:Number):void{
var _local3:BlurFilter = new BlurFilter(_arg1, _arg2, 1);
if (hero_filters.length < 2){
hero_filters.push(_local3);
} else {
hero_filters[0] = _local3;
};
if (this.currentFrame != 3){
this.filters = hero_filters;
};
}
public function speedGlow(_arg1):void{
var _local2:GlowFilter = new GlowFilter(16724838, 0.8, 10, 10, _arg1, 1, false, false);
if (hero_filters.length < 2){
hero_filters.push(_local2);
} else {
hero_filters[1] = _local2;
};
this.filters = hero_filters;
}
private function animateCape():void{
if (capeFrame > this.cape.totalFrames){
capeFrame = 1;
};
this.cape.gotoAndStop(capeFrame);
capeFrame++;
}
public function Setup(_arg1:Main):void{
mainRef = _arg1;
blnSuperSpeed = false;
capeFrame = 1;
initRot = 0;
hero_filters = new Array();
motionBlur(0, 0);
speedGlow(0);
this.filters = hero_filters;
detint.setTint(0xFF6600, 0);
heroReset();
}
public function clearCurrentTarget():void{
targetEnemy = null;
}
public function HitTest():void{
var _local1:int;
var _local2:int;
ActiveEnemies = mainRef.game_mc.getActiveEnemies();
rotdir = (((Math.atan2((stage.mouseY - this.y), ((stage.mouseX - this.x) / 4)) * 180) / Math.PI) + 90);
movdis = Math.sqrt(((Math.abs((stage.mouseX - this.x)) * Math.abs((stage.mouseX - this.x))) + (Math.abs((stage.mouseY - this.y)) * Math.abs((stage.mouseY - this.y)))));
if (ActiveEnemies.length == 0){
targetEnemy = null;
} else {
_local2 = 0;
while (_local2 < ActiveEnemies.length) {
_local1 = (((Math.atan2((ActiveEnemies[_local2].y - this.y), ((stage.mouseX - ActiveEnemies[_local2].x) / 4)) * 180) / Math.PI) + 90);
hitRadius = Math.sqrt(Math.abs((((this.x - ActiveEnemies[_local2].x) * (this.x - ActiveEnemies[_local2].x)) + ((this.y - ActiveEnemies[_local2].y) * (this.y - ActiveEnemies[_local2].y)))));
if (Math.abs((_local1 - rotdir)) <= 45){
hitRadius = (hitRadius - (movdis / 10));
};
if ((((((((((hitRadius <= (ActiveEnemies[_local2].width / 2.2))) && ((hitRadius >= (ActiveEnemies[_local2].width / 6))))) && ((this.y > (ActiveEnemies[_local2].y - (ActiveEnemies[_local2].height / 4)))))) && ((stage.mouseY < (this.y + 20))))) && ((ActiveEnemies[_local2].blnDead == false)))){
this.gotoAndStop(4);
animateCape();
targetEnemy = ActiveEnemies[_local2];
deflect();
break;
} else {
targetEnemy = null;
};
_local2++;
};
};
}
public function moveHero():void{
var _local1:int;
var _local2:int;
if (((((((!((targetEnemy == null))) && ((blnSuperSpeed == true)))) && ((targetEnemy.width < 320)))) && ((targetEnemy.blnDead == false)))){
targetEnemy.shatter();
} else {
if (targetEnemy != null){
rotdir = (((Math.atan2((targetEnemy.y - this.y), ((stage.mouseX - targetEnemy.x) / 4)) * 180) / Math.PI) + 90);
this.scaleY = 1;
motionBlur(0, 0);
this.transform.colorTransform = detint;
this.rotation = rotdir;
initRot = this.rotation;
this.y = (targetEnemy.y + ((targetEnemy.height / 2.3) * Math.sin((((90 - rotdir) * Math.PI) / 180))));
if (stage.mouseX > targetEnemy.x){
this.x = (targetEnemy.x - ((targetEnemy.width / 2.2) * Math.abs(Math.cos((((90 - rotdir) * Math.PI) / 180)))));
} else {
if (stage.mouseX < targetEnemy.x){
this.x = (targetEnemy.x + ((targetEnemy.width / 2.2) * Math.abs(Math.cos((((90 - rotdir) * Math.PI) / 180)))));
};
};
} else {
if (targetEnemy == null){
if (blnSuperSpeed == false){
this.x = ((this.x * 0.85) + (stage.mouseX * 0.15));
this.y = ((this.y * 0.85) + (stage.mouseY * 0.15));
} else {
this.x = ((this.x * 0.6) + (stage.mouseX * 0.4));
this.y = ((this.y * 0.6) + (stage.mouseY * 0.4));
};
if ((((Math.abs((this.x - stage.mouseX)) < 2)) && ((Math.abs((this.y - stage.mouseY)) < 2)))){
heroReset();
} else {
if (movdis < 60){
if (stage.mouseX < this.x){
rotdir = ((-((((Math.atan2((stage.mouseY - this.y), (this.x - stage.mouseX)) * 180) / Math.PI) + 90)) * movdis) / 50);
} else {
if (stage.mouseX > this.x){
rotdir = (((((Math.atan2((stage.mouseY - this.y), (stage.mouseX - this.x)) * 180) / Math.PI) + 90) * movdis) / 50);
};
};
this.gotoAndStop(2);
this.scaleY = 1;
motionBlur(Math.abs((stage.mouseX - this.x)), Math.abs((stage.mouseY - this.y)));
this.rotation = rotdir;
tint.setTint(0xFF6600, (movdis / 70));
this.transform.colorTransform = tint;
} else {
rotdir = (((Math.atan2((stage.mouseY - this.y), (stage.mouseX - this.x)) * 180) / Math.PI) + 90);
initRot = this.rotation;
this.rotation = rotdir;
motionBlur(0, 0);
this.transform.colorTransform = detint;
this.gotoAndStop(3);
_local1 = initRot;
_local2 = rotdir;
if (initRot < 0){
_local1 = (360 + initRot);
};
if (rotdir < 0){
_local2 = (360 + rotdir);
};
if ((((_local1 < 90)) && ((_local2 > 270)))){
_local1 = (360 + rotdir);
};
if ((((_local2 < 90)) && ((_local1 > 270)))){
_local2 = (360 + _local2);
};
if (Math.abs((_local2 - _local1)) > 15){
this.scaleY = 1;
} else {
this.scaleY = (movdis / 50);
};
};
};
};
};
};
}
public function getCurrentTarget():MovieClip{
if (targetEnemy != null){
return (targetEnemy);
};
return (null);
}
public function heroReset(){
this.x = stage.mouseX;
this.y = stage.mouseY;
this.gotoAndStop(1);
animateCape();
this.rotation = 0;
this.scaleY = 1;
motionBlur(0, 0);
this.transform.colorTransform = detint;
}
private function deflect():void{
forceX = ((stage.mouseX - targetEnemy.x) / targetEnemy.mass);
forceY = ((stage.mouseY - this.y) / targetEnemy.mass);
if (Math.abs(targetEnemy.vX) < (Math.abs(forceX) * 100)){
targetEnemy.vX = (targetEnemy.vX + forceX);
};
if (((((stage.mouseY - 10) < this.y)) && ((targetEnemy.vY > (forceY * 100))))){
targetEnemy.vY = (targetEnemy.vY + forceY);
};
}
}
}//package
Section 34
//Impact (Impact)
package {
import flash.media.*;
public dynamic class Impact extends Sound {
}
}//package
Section 35
//Intro (Intro)
package {
public dynamic class Intro extends Preloader {
public function Intro(){
addFrameScript(0, frame1, 180, frame181);
}
function frame1(){
stop();
}
function frame181(){
heroLogo.buttonMode = true;
heroLogo.useHandCursor = true;
}
}
}//package
Section 36
//KeyboardControls (KeyboardControls)
package {
import flash.events.*;
public class KeyboardControls {
var seven:Boolean;// = false
var eight:Boolean;// = false
var downy:Boolean;// = false
var three:Boolean;// = false
var four:Boolean;// = false
var zero:Boolean;// = false
var five:Boolean;// = false
var shifty:Boolean;// = false
var nine:Boolean;// = false
var spacey:Boolean;// = false
var upy:Boolean;// = false
var lefty:Boolean;// = false
var two:Boolean;// = false
var righty:Boolean;// = false
var six:Boolean;// = false
var p:Boolean;// = false
var one:Boolean;// = false
public function KeyboardControls(_arg1){
_arg1.addEventListener(KeyboardEvent.KEY_DOWN, Downs);
_arg1.addEventListener(KeyboardEvent.KEY_UP, Ups);
}
public function get Right():Boolean{
return (righty);
}
public function set Six(_arg1:Boolean){
six = _arg1;
}
public function set Three(_arg1:Boolean){
three = _arg1;
}
public function set One(_arg1:Boolean){
one = _arg1;
}
public function set Zero(_arg1:Boolean){
zero = _arg1;
}
public function set Four(_arg1:Boolean){
four = _arg1;
}
public function set Down(_arg1:Boolean){
downy = _arg1;
}
public function Ups(_arg1){
if (_arg1.keyCode == 80){
p = false;
};
if (_arg1.keyCode == 51){
three = false;
};
if (_arg1.keyCode == 52){
four = false;
};
if (_arg1.keyCode == 53){
five = false;
};
if (_arg1.keyCode == 54){
six = false;
};
if (_arg1.keyCode == 55){
seven = false;
};
if (_arg1.keyCode == 56){
eight = false;
};
if (_arg1.keyCode == 57){
nine = false;
};
if (_arg1.keyCode == 48){
zero = false;
};
if (_arg1.keyCode == 50){
two = false;
};
if (_arg1.keyCode == 49){
one = false;
};
if (_arg1.keyCode == 38){
upy = false;
};
if (_arg1.keyCode == 37){
lefty = false;
};
if (_arg1.keyCode == 40){
downy = false;
};
if (_arg1.keyCode == 39){
righty = false;
};
if (_arg1.keyCode == 32){
spacey = false;
};
if (_arg1.keyCode == 16){
shifty = false;
};
}
public function set P(_arg1:Boolean){
p = _arg1;
}
public function get Left():Boolean{
return (lefty);
}
public function set Five(_arg1:Boolean){
five = _arg1;
}
public function get Two():Boolean{
return (two);
}
public function get Up():Boolean{
return (upy);
}
public function get Six():Boolean{
return (six);
}
public function get Four():Boolean{
return (four);
}
public function get Zero():Boolean{
return (zero);
}
public function get Down():Boolean{
return (downy);
}
public function set Shift(_arg1:Boolean){
shifty = _arg1;
}
public function get One():Boolean{
return (one);
}
public function set Left(_arg1:Boolean){
lefty = _arg1;
}
public function get P():Boolean{
return (p);
}
public function set Nine(_arg1:Boolean){
nine = _arg1;
}
public function set Two(_arg1:Boolean){
two = _arg1;
}
public function get Nine():Boolean{
return (nine);
}
public function set Seven(_arg1:Boolean){
seven = _arg1;
}
public function set Eight(_arg1:Boolean){
eight = _arg1;
}
public function get Five():Boolean{
return (five);
}
public function get Shift():Boolean{
return (shifty);
}
public function get Space():Boolean{
return (spacey);
}
public function get Eight():Boolean{
return (eight);
}
public function Downs(_arg1:KeyboardEvent){
if (_arg1.keyCode == 80){
p = true;
};
if (_arg1.keyCode == 38){
upy = true;
};
if (_arg1.keyCode == 37){
lefty = true;
};
if (_arg1.keyCode == 40){
downy = true;
};
if (_arg1.keyCode == 39){
righty = true;
};
if (_arg1.keyCode == 32){
spacey = true;
};
if (_arg1.keyCode == 16){
shifty = true;
};
if (_arg1.keyCode == 49){
one = true;
};
if (_arg1.keyCode == 50){
two = true;
};
if (_arg1.keyCode == 51){
three = true;
};
if (_arg1.keyCode == 52){
four = true;
};
if (_arg1.keyCode == 53){
five = true;
};
if (_arg1.keyCode == 54){
six = true;
};
if (_arg1.keyCode == 55){
seven = true;
};
if (_arg1.keyCode == 56){
eight = true;
};
if (_arg1.keyCode == 57){
nine = true;
};
if (_arg1.keyCode == 48){
zero = true;
};
}
public function get Seven():Boolean{
return (seven);
}
public function set Up(_arg1:Boolean){
upy = _arg1;
}
public function set Right(_arg1:Boolean){
righty = _arg1;
}
public function set Space(_arg1:Boolean){
spacey = _arg1;
}
public function get Three():Boolean{
return (three);
}
}
}//package
Section 37
//Laser (Laser)
package {
import flash.media.*;
public dynamic class Laser extends Sound {
}
}//package
Section 38
//LaserBeamsPickup (LaserBeamsPickup)
package {
public dynamic class LaserBeamsPickup extends Pickups {
}
}//package
Section 39
//LaserImpact (LaserImpact)
package {
import flash.display.*;
public dynamic class LaserImpact extends MovieClip {
}
}//package
Section 40
//LazerEyes (LazerEyes)
package {
import flash.display.*;
import flash.events.*;
public class LazerEyes extends Sprite {
var ActiveEnemies:Array;
var LazerSecondaryColor:uint;// = 0xFF9900
var iconNumber:int;
var LazerThickness:Number;// = 1
var player;
var LazerSecondaryThickness;// = 1
var LazerPrimaryColor:uint;// = 0xFF9900
var LazerTimer;// = 0
var enemy;
var mainRef:Main;
var laserImpact_mc:MovieClip;
public function LazerEyes(_arg1:Main, _arg2:int){
mainRef = _arg1;
iconNumber = _arg2;
player = mainRef.game_mc.hero_mc;
enemy = getEnemy();
laserImpact_mc = new LaserImpact();
laserImpact_mc.name = "laserImpact_mc";
if (enemy != null){
addEventListener(Event.ENTER_FRAME, FollowMeteor);
mainRef.turnOffPower(iconNumber);
mainRef.addChild(laserImpact_mc);
};
}
private function FollowMeteor(_arg1:Event){
LazerTimer = (LazerTimer + 1);
laserImpact_mc.x = enemy.x;
laserImpact_mc.y = enemy.y;
graphics.clear();
graphics.lineStyle(LazerSecondaryThickness, LazerSecondaryColor, 0.6);
graphics.moveTo((player.x - 2), (player.y - 8));
graphics.lineTo(enemy.x, enemy.y);
graphics.lineStyle(LazerThickness, LazerPrimaryColor, 0.6);
graphics.moveTo((player.x + 2), (player.y - 8));
graphics.lineTo(enemy.x, enemy.y);
if (LazerTimer == 4){
enemy.shatter();
mainRef.removeMC(laserImpact_mc);
};
if (LazerTimer == 6){
removeEventListener(Event.ENTER_FRAME, FollowMeteor);
graphics.clear();
};
}
private function getEnemy():MovieClip{
var _local2:*;
var _local3:MovieClip;
var _local4:int;
var _local1:int;
_local4 = 0;
while (_local4 < mainRef.game_mc.meteorZone_mc.numChildren) {
_local3 = (mainRef.game_mc.meteorZone_mc.getChildAt(_local4) as MovieClip);
if ((((((((_local3.y > _local1)) && ((_local3.x < 600)))) && ((_local3.x > 0)))) && ((_local3.currentFrame == 1)))){
_local1 = mainRef.game_mc.meteorZone_mc.getChildAt(_local4).y;
_local2 = mainRef.game_mc.meteorZone_mc.getChildAt(_local4);
};
_local4++;
};
return (_local2);
}
}
}//package
Section 41
//LineVector (LineVector)
package {
public class LineVector {
public var x:Number;
public var y:Number;
public function LineVector():void{
x = 0;
y = 0;
}
function Add(_arg1:LineVector):void{
this.x = (this.x + _arg1.x);
this.y = (this.y + _arg1.y);
}
function VecToAngle(_arg1:Number, _arg2:Number):void{
CreateVectorTowardsAngle(_arg1);
Scale(_arg2);
}
function Scale(_arg1:Number):void{
this.x = (this.x * _arg1);
this.y = (this.y * _arg1);
}
function Print():void{
trace(((("Vector: " + this.x) + ", ") + this.y));
}
function ConvertToUnitVector():void{
var _local1:Number = GetLength();
if (_local1 != 0){
this.x = (this.x / _local1);
this.y = (this.y / _local1);
};
}
function CreateVectorTowardsAngle(_arg1:Number):void{
_arg1 = ((_arg1 * Math.PI) / 180);
this.x = (Math.cos(_arg1) * 1);
this.y = (Math.sin(_arg1) * 1);
}
function AngleToAlign(_arg1:Number, _arg2:Number, _arg3:Number):Number{
var _local4:Number = 0;
var _local5:Number = GetAngle();
var _local6:Number = 0;
var _local7 = "";
if (_arg1 >= 0){
_local4 = (_arg1 - 180);
if ((((_local5 < _arg1)) && ((_local5 > _local4)))){
_local6 = (-(_arg3) * _arg2);
_local7 = (_local7 + (((((" AAA " + _arg1) + " ") + _local5) + " ") + _local6));
if ((_local5 - _arg1) > _local6){
_local6 = (_local5 - _arg1);
};
} else {
_local6 = (_arg3 * _arg2);
_local7 = (_local7 + (((((" BBB " + _arg1) + " ") + _local5) + " ") + _local6));
if (_local5 >= 0){
if (_local5 != _local4){
if ((_local5 - _arg1) < _local6){
_local6 = (_local5 - _arg1);
};
};
};
};
} else {
_local4 = (_arg1 + 180);
if ((((_local5 < _local4)) && ((_local5 > _arg1)))){
_local6 = (_arg3 * _arg2);
_local7 = (_local7 + (((((" CCC " + _arg1) + " ") + _local5) + " ") + _local6));
if ((_local5 - _arg1) < _local6){
_local6 = (_local5 - _arg1);
};
} else {
_local6 = (-(_arg3) * _arg2);
_local7 = (_local7 + (((((" DDD " + _arg1) + " ") + _local5) + " ") + _local6));
if (_local5 < 0){
if ((_local5 - _arg1) > _local6){
_local6 = (_local5 - _arg1);
};
};
};
};
if (Math.abs(_local6) > 30){
} else {
if (_local5 == 0){
};
};
return (_local6);
}
function GetLength():Number{
var _local1:Number = ((this.x * this.x) + (this.y * this.y));
return (Math.sqrt(_local1));
}
function GetAngle():Number{
var _local1:Number = Math.atan2(this.y, this.x);
var _local2:Number = ((360 * _local1) / (2 * Math.PI));
return (_local2);
}
}
}//package
Section 42
//LoadingBar (LoadingBar)
package {
import flash.display.*;
public dynamic class LoadingBar extends MovieClip {
public function LoadingBar(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 43
//Main (Main)
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
import flash.net.*;
import flash.ui.*;
public class Main extends MovieClip {
private var pauseScreen:MovieClip;
public var game_mc:GAME;
private var keyControl:KeyboardControls;
private var laserSound:Sound;
private var polyURL:URLRequest;
private var heroURL:URLRequest;
private var screenEffect:ScreenEffects;
private var moreGamesLoader:URLLoader;
private var heroLoader:URLLoader;
public var mPlayer:MusicPlayer;
public var siteLock_btn:MovieClip;
private var selectedSound:String;
private var blnHasSeenTutorial:Boolean;
public var objUrlLocking:UrlLocking;
public var sPlayer:SoundPlayer;
public var bg:MovieClip;
private var selectedGraphics:String;
private var selectedMusic:String;
public var gameState:Number;
private var sparkle_mc;
private var moreGamesURL:URLRequest;
public function Main():void{
addFrameScript(0, frame1, 1, frame2, 2, frame3, 14, frame15);
blnHasSeenTutorial = false;
objUrlLocking = new UrlLocking(stage, false, false);
objUrlLocking.AddAllowableDomain("herointeractive.com");
objUrlLocking.AddAllowableDomain("armorgames.com");
objUrlLocking.AddAdFreeDomain("addictinggames.com");
objUrlLocking.AddAdFreeDomain("agstage.shockwave.com");
objUrlLocking.AddAdFreeDomain("freeonlinegames.com");
objUrlLocking.AddAdFreeDomain("andkon.com");
objUrlLocking.AddAdFreeDomain("kongregate.com");
objUrlLocking.AddAdFreeDomain("kongregatetrunk.com");
objUrlLocking.AddAdFreeDomain("gamezhero.com");
sPlayer = new SoundPlayer();
mPlayer = new MusicPlayer(this.stage);
}
public function MouseOut(_arg1:MouseEvent):void{
_arg1.target.gotoAndStop(1);
}
public function runCredits():void{
game_mc.back_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.back_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.back_btn.addEventListener(MouseEvent.MOUSE_UP, gotoMainMenu);
game_mc.heroCredits_mc.addEventListener(MouseEvent.MOUSE_UP, loadHeroWebsite);
game_mc.heroCredits_mc.buttonMode = true;
game_mc.heroCredits_mc.useHandCursor = true;
game_mc.poly_btn.addEventListener(MouseEvent.MOUSE_UP, loadPolyphone);
game_mc.poly_btn.buttonMode = true;
game_mc.poly_btn.useHandCursor = true;
}
private function runTutorial(_arg1:Event):void{
if (game_mc.tutorial_mc != null){
blnHasSeenTutorial = true;
stage.removeEventListener(Event.ENTER_FRAME, runTutorial);
game_mc.tutorial_mc.skip_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.tutorial_mc.skip_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.tutorial_mc.skip_btn.addEventListener(MouseEvent.MOUSE_UP, gotoGame);
};
}
function frame1(){
stop();
runPreloader();
}
public function currentState():Number{
return (gameState);
}
public function shakeScreen(_arg1:int):void{
screenEffect.SHAKE(_arg1);
}
public function removeMC(_arg1:MovieClip):void{
this.removeChild(_arg1);
}
private function runGame(_arg1:Event):void{
stage.removeEventListener(Event.ENTER_FRAME, runGame);
game_mc.Setup(this);
changeState(1);
}
private function settingsClick(_arg1:MouseEvent):void{
if (_arg1.target == game_mc.graphicsHIGH_btn){
selectedGraphics = _arg1.target.name;
game_mc.graphicsMED_btn.gotoAndStop(1);
game_mc.graphicsLOW_btn.gotoAndStop(1);
stage.quality = StageQuality.HIGH;
} else {
if (_arg1.target == game_mc.graphicsMED_btn){
selectedGraphics = _arg1.target.name;
game_mc.graphicsHIGH_btn.gotoAndStop(1);
game_mc.graphicsLOW_btn.gotoAndStop(1);
stage.quality = StageQuality.MEDIUM;
} else {
if (_arg1.target == game_mc.graphicsLOW_btn){
selectedGraphics = _arg1.target.name;
game_mc.graphicsHIGH_btn.gotoAndStop(1);
game_mc.graphicsMED_btn.gotoAndStop(1);
stage.quality = StageQuality.LOW;
} else {
if (_arg1.target == game_mc.musicON_btn){
selectedMusic = _arg1.target.name;
game_mc.musicOFF_btn.gotoAndStop(1);
MusicMode(true);
} else {
if (_arg1.target == game_mc.musicOFF_btn){
selectedMusic = _arg1.target.name;
game_mc.musicON_btn.gotoAndStop(1);
MusicMode(false);
} else {
if (_arg1.target == game_mc.soundON_btn){
selectedSound = _arg1.target.name;
game_mc.soundOFF_btn.gotoAndStop(1);
SoundMode(true);
} else {
if (_arg1.target == game_mc.soundOFF_btn){
selectedSound = _arg1.target.name;
game_mc.soundON_btn.gotoAndStop(1);
SoundMode(false);
};
};
};
};
};
};
};
_arg1.target.gotoAndStop(3);
}
private function gotoSettings(_arg1:MouseEvent):void{
game_mc.gotoAndStop(3);
}
public function turnOnPower(_arg1:int):void{
if (game_mc.powerupIcon1.currentFrame == 1){
game_mc.powerupIcon1.gotoAndStop((1 + _arg1));
} else {
if (game_mc.powerupIcon2.currentFrame == 1){
game_mc.powerupIcon2.gotoAndStop((1 + _arg1));
} else {
if (game_mc.powerupIcon3.currentFrame == 1){
game_mc.powerupIcon3.gotoAndStop((1 + _arg1));
};
};
};
}
private function runPreloader():void{
var _local1:MovieClip = new Intro();
_local1.x = 300;
_local1.y = 195;
addChild(_local1);
_local1.Setup(this);
}
private function settingsMouseOut(_arg1:MouseEvent):void{
if ((((((_arg1.target == game_mc.graphicsHIGH_btn)) || ((_arg1.target == game_mc.graphicsMED_btn)))) || ((_arg1.target == game_mc.graphicsLOW_btn)))){
if (selectedGraphics != _arg1.target.name){
_arg1.target.gotoAndStop(1);
} else {
_arg1.target.gotoAndStop(3);
};
};
if ((((_arg1.target == game_mc.musicON_btn)) || ((_arg1.target == game_mc.musicOFF_btn)))){
if (selectedMusic != _arg1.target.name){
_arg1.target.gotoAndStop(1);
} else {
_arg1.target.gotoAndStop(3);
};
};
if ((((_arg1.target == game_mc.soundON_btn)) || ((_arg1.target == game_mc.soundOFF_btn)))){
if (selectedSound != _arg1.target.name){
_arg1.target.gotoAndStop(1);
} else {
_arg1.target.gotoAndStop(3);
};
};
}
public function siteLocked():void{
siteLock_btn.addEventListener(MouseEvent.MOUSE_DOWN, gotoMoreGames);
siteLock_btn.sponsorURL_dt.text = "www.armorgames.com";
}
public function SoundMode(_arg1:Boolean):void{
sPlayer.soundOn = _arg1;
}
public function addSparkle(_arg1:int, _arg2:int):void{
sparkle_mc = new PickupSparkle();
addChild(sparkle_mc);
sparkle_mc.x = _arg1;
sparkle_mc.y = _arg2;
sparkle_mc.scaleX = 2;
sparkle_mc.scaleY = 2;
sparkle_mc.addEventListener(Event.ENTER_FRAME, removeSparkle);
}
private function gotoCredits(_arg1:MouseEvent):void{
game_mc.gotoAndStop(2);
}
public function mainMenu():void{
game_mc.start_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.start_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.start_btn.addEventListener(MouseEvent.MOUSE_UP, gotoGame);
game_mc.credits_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.credits_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.credits_btn.addEventListener(MouseEvent.MOUSE_UP, gotoCredits);
game_mc.settings_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.settings_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.settings_btn.addEventListener(MouseEvent.MOUSE_UP, gotoSettings);
game_mc.moregames_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.moregames_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.moregames_btn.addEventListener(MouseEvent.MOUSE_UP, gotoMoreGames);
}
public function gotoMainMenu(_arg1:MouseEvent):void{
var _local2:int;
changeState(0);
game_mc.city.skyline.gotoAndStop(1);
game_mc.gotoAndStop(1);
sPlayer.StopAllSounds();
if (game_mc.activeEnemies.length > 0){
_local2 = 0;
while (_local2 < game_mc.activeEnemies.length) {
game_mc.activeEnemies.splice(_local2, 1);
_local2--;
_local2++;
};
};
if (game_mc.activePickups.length > 0){
game_mc.removeChild(game_mc.activePickups[0]);
game_mc.activePickups.splice(0, 1);
};
if (pauseScreen != null){
if (_arg1.target == pauseScreen.menu_btn){
stage.removeEventListener(Event.ENTER_FRAME, unPause);
keyControl.P = false;
pauseScreen.destroy();
};
};
}
public function changeState(_arg1:Number){
if ((((_arg1 == 0)) && (!((currentState() == 0))))){
mPlayer.PlayMusic(new MenuMusic());
} else {
if ((((_arg1 == 1)) && ((currentState() == 0)))){
mPlayer.PlayMusic(new MainMusic());
};
};
gameState = _arg1;
Run();
}
public function MusicMode(_arg1:Boolean):void{
mPlayer.musicOn = _arg1;
}
public function gotoMoreGames(_arg1:MouseEvent):void{
moreGamesURL = new URLRequest("http://www.armorgames.com");
navigateToURL(moreGamesURL, "_blank");
}
function frame15(){
stop();
siteLocked();
}
public function removePreloader(_arg1:MovieClip):void{
removeChild(_arg1);
keyControl = new KeyboardControls(stage);
screenEffect = new ScreenEffects(this, stage);
}
public function runSettings():void{
game_mc.back_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.back_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.back_btn.addEventListener(MouseEvent.MOUSE_UP, gotoMainMenu);
game_mc.graphicsHIGH_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.graphicsHIGH_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.graphicsHIGH_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
game_mc.graphicsMED_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.graphicsMED_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.graphicsMED_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
game_mc.graphicsLOW_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.graphicsLOW_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.graphicsLOW_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
game_mc.musicON_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.musicON_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.musicON_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
game_mc.musicOFF_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.musicOFF_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.musicOFF_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
game_mc.soundON_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.soundON_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.soundON_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
game_mc.soundOFF_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.soundOFF_btn.addEventListener(MouseEvent.MOUSE_OUT, settingsMouseOut);
game_mc.soundOFF_btn.addEventListener(MouseEvent.MOUSE_UP, settingsClick);
if (selectedGraphics == game_mc.graphicsHIGH_btn.name){
game_mc.graphicsHIGH_btn.gotoAndStop(3);
} else {
if (selectedGraphics == game_mc.graphicsMED_btn.name){
game_mc.graphicsMED_btn.gotoAndStop(3);
} else {
if (selectedGraphics == game_mc.graphicsLOW_btn.name){
game_mc.graphicsLOW_btn.gotoAndStop(3);
} else {
selectedGraphics = "graphicsHIGH_btn";
game_mc.graphicsHIGH_btn.gotoAndStop(3);
};
};
};
if (selectedMusic == game_mc.musicON_btn.name){
game_mc.musicON_btn.gotoAndStop(3);
} else {
if (selectedMusic == game_mc.musicOFF_btn.name){
game_mc.musicOFF_btn.gotoAndStop(3);
} else {
selectedMusic = "musicON_btn";
game_mc.musicON_btn.gotoAndStop(3);
};
};
if (selectedSound == game_mc.soundON_btn.name){
game_mc.soundON_btn.gotoAndStop(3);
} else {
if (selectedSound == game_mc.soundOFF_btn.name){
game_mc.soundOFF_btn.gotoAndStop(3);
} else {
selectedSound = "soundON_btn";
game_mc.soundON_btn.gotoAndStop(3);
};
};
}
private function openPauseScreen():void{
pauseScreen = new PauseScreenOverlay();
pauseScreen.Setup(this);
stage.addChild(pauseScreen);
game_mc.city.stop();
game_mc.city.sky.stop();
game_mc.city.ground.stop();
stage.addEventListener(Event.ENTER_FRAME, unPause);
}
public function updateGame(_arg1:Event):void{
if (game_mc.currentFrame == 4){
game_mc.moveCursor();
game_mc.checkDelay();
game_mc.updateMeteors();
game_mc.hero_mc.HitTest();
game_mc.hero_mc.moveHero();
if (game_mc.activePickups.length > 0){
game_mc.activePickups[0].motion();
};
if (keyControl.P){
keyControl.P = false;
changeState(2);
};
if (keyControl.One){
keyControl.One = false;
usePower(1);
};
if (keyControl.Two){
keyControl.Two = false;
usePower(2);
};
if (keyControl.Three){
keyControl.Three = false;
usePower(3);
};
} else {
changeState(0);
gameOver();
};
}
public function unPause(_arg1:Event):void{
if (((keyControl.P) || ((_arg1.target == pauseScreen.continue_btn)))){
stage.removeEventListener(Event.ENTER_FRAME, unPause);
keyControl.P = false;
pauseScreen.destroy();
changeState(1);
game_mc.city.play();
game_mc.city.sky.play();
game_mc.city.ground.play();
};
}
private function usePower(_arg1:int):void{
if (_arg1 == 1){
if (game_mc.powerupIcon1.currentFrame == 2){
game_mc.spawnShockWave();
turnOffPower(_arg1);
sPlayer.PlaySound(new Shockwave());
} else {
if (game_mc.powerupIcon1.currentFrame == 3){
if (game_mc.meteorZone_mc.numChildren > 0){
addChild(new LazerEyes(this, _arg1));
sPlayer.PlaySound(new Laser());
} else {
return;
};
} else {
if (game_mc.powerupIcon1.currentFrame == 4){
game_mc.activateSuperSpeed();
turnOffPower(_arg1);
sPlayer.PlaySound(new SuperSpeed(), 0.2);
};
};
};
} else {
if (_arg1 == 2){
if (game_mc.powerupIcon2.currentFrame == 2){
game_mc.spawnShockWave();
turnOffPower(_arg1);
sPlayer.PlaySound(new Shockwave());
} else {
if (game_mc.powerupIcon2.currentFrame == 3){
if (game_mc.meteorZone_mc.numChildren > 0){
addChild(new LazerEyes(this, _arg1));
sPlayer.PlaySound(new Laser());
} else {
return;
};
} else {
if (game_mc.powerupIcon2.currentFrame == 4){
game_mc.activateSuperSpeed();
turnOffPower(_arg1);
sPlayer.PlaySound(new SuperSpeed(), 0.2);
};
};
};
} else {
if (_arg1 == 3){
if (game_mc.powerupIcon3.currentFrame == 2){
game_mc.spawnShockWave();
turnOffPower(_arg1);
sPlayer.PlaySound(new Shockwave());
} else {
if (game_mc.powerupIcon3.currentFrame == 3){
if (game_mc.meteorZone_mc.numChildren > 0){
addChild(new LazerEyes(this, _arg1));
sPlayer.PlaySound(new Laser());
} else {
return;
};
} else {
if (game_mc.powerupIcon3.currentFrame == 4){
game_mc.activateSuperSpeed();
turnOffPower(_arg1);
sPlayer.PlaySound(new SuperSpeed(), 0.2);
};
};
};
};
};
};
}
private function clickForPower(_arg1:MouseEvent):void{
if ((((game_mc.powerupIcon1.currentFrame > 1)) && ((gameState == 1)))){
usePower(1);
};
}
private function gameOver():void{
game_mc.gameOver_mc.score_dt.text = ("Score: " + game_mc.score);
game_mc.gameOver_mc.menu_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.gameOver_mc.menu_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.gameOver_mc.menu_btn.addEventListener(MouseEvent.MOUSE_UP, gotoMainMenu);
game_mc.gameOver_mc.moreGames_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
game_mc.gameOver_mc.moreGames_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
game_mc.gameOver_mc.moreGames_btn.addEventListener(MouseEvent.MOUSE_UP, gotoMoreGames);
}
private function Run():void{
switch (gameState){
case 0:
game_mc.gameTimer.stop();
game_mc.gameTimer.reset();
stage.removeEventListener(Event.ENTER_FRAME, updateGame);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, clickForPower);
Mouse.show();
break;
case 1:
Mouse.hide();
game_mc.gameTimer.start();
stage.addEventListener(Event.ENTER_FRAME, updateGame);
stage.addEventListener(MouseEvent.MOUSE_DOWN, clickForPower);
break;
case 2:
game_mc.gameTimer.stop();
stage.removeEventListener(Event.ENTER_FRAME, updateGame);
stage.removeEventListener(MouseEvent.MOUSE_DOWN, clickForPower);
Mouse.show();
openPauseScreen();
break;
};
}
function frame2(){
changeState(0);
}
function frame3(){
gotoAndStop("game");
}
public function removeSparkle(_arg1:Event):void{
if (sparkle_mc.currentFrame == sparkle_mc.totalFrames){
sparkle_mc.removeEventListener(Event.ENTER_FRAME, removeSparkle);
removeChild(sparkle_mc);
};
}
public function turnOffPower(_arg1:int):void{
if (_arg1 == 1){
game_mc.powerupIcon1.gotoAndStop(game_mc.powerupIcon2.currentFrame);
game_mc.powerupIcon2.gotoAndStop(game_mc.powerupIcon3.currentFrame);
game_mc.powerupIcon3.gotoAndStop(1);
} else {
if (_arg1 == 2){
game_mc.powerupIcon2.gotoAndStop(game_mc.powerupIcon3.currentFrame);
game_mc.powerupIcon3.gotoAndStop(1);
} else {
if (_arg1 == 3){
game_mc.powerupIcon3.gotoAndStop(1);
};
};
};
}
private function loadPolyphone(_arg1:MouseEvent):void{
polyURL = new URLRequest("http://www.polyphonemusic.com");
navigateToURL(polyURL, "_blank");
}
private function gotoGame(_arg1:MouseEvent):void{
if (blnHasSeenTutorial == true){
game_mc.gotoAndStop(4);
stage.addEventListener(Event.ENTER_FRAME, runGame);
} else {
game_mc.gotoAndStop(6);
stage.addEventListener(Event.ENTER_FRAME, runTutorial);
};
}
public function MouseOver(_arg1:MouseEvent):void{
_arg1.target.gotoAndStop(2);
if (this.currentFrame > 1){
sPlayer.PlaySound(new Button());
};
}
public function loadHeroWebsite(_arg1:MouseEvent):void{
heroURL = new URLRequest("http://www.herointeractive.com");
navigateToURL(heroURL, "_blank");
}
}
}//package
Section 44
//MainMusic (MainMusic)
package {
import flash.media.*;
public dynamic class MainMusic extends Sound {
}
}//package
Section 45
//MenuMusic (MenuMusic)
package {
import flash.media.*;
public dynamic class MenuMusic extends Sound {
}
}//package
Section 46
//Meteor (Meteor)
package {
import flash.display.*;
import flash.events.*;
public class Meteor extends MovieClip {
private var initX;
private var initY;
private var diceRoll:Number;
public var mainRef:Main;
public var vX;
public var vY;
private var targetX;// = 300
private var maxVY;
private var targetY;// = 530
public var blnShattered:Boolean;
public var blnDead:Boolean;
public var type:Number;
public var mass:Number;
private function RandNum(_arg1:Number, _arg2:Number):Number{
return (Math.round((((Math.random() * ((_arg2 - _arg1) + 0.8)) + _arg1) - 0.4)));
}
public function behavior():void{
if ((((mainRef.currentState() == 1)) && ((blnShattered == false)))){
if (vY < maxVY){
vY = (vY + 0.2);
};
if ((((((((this.y < ((targetY + initY) + 100))) && ((this.y >= (initY - 100))))) && ((this.x > (0 - (this.width / 2)))))) && ((this.x < (600 + (this.width / 2)))))){
this.x = (this.x + vX);
this.y = (this.y + vY);
} else {
if ((((((this.x > (10 - (this.width / 2)))) && ((this.x < (590 + (this.width / 2)))))) && ((this.y > (initY - 10))))){
blnDead = true;
mainRef.shakeScreen((this.width / 50));
this.gotoAndPlay((this.currentFrame + 1));
animationCheck();
} else {
if (this.y < (initY - 100)){
mainRef.game_mc.adjustScore(((this.width * this.scaleX) + 500));
mainRef.game_mc.DeleteMeteor(this);
} else {
mainRef.game_mc.adjustScore((((this.width * this.scaleX) + 500) - this.y));
mainRef.game_mc.DeleteMeteor(this);
};
};
};
};
}
public function Setup(_arg1:Main, _arg2:Number):void{
mainRef = _arg1;
blnShattered = false;
blnDead = false;
var _local3:* = RandNum(1, 10);
type = (_arg2 + 1);
if (_local3 <= 9){
this.scaleX = (RandNum(100, 150) / 100);
} else {
this.scaleX = (RandNum(200, 300) / 100);
};
this.scaleY = this.scaleX;
this.x = RandNum(0, 600);
this.y = (-100 - (this.height / 2));
initX = this.x;
initY = this.y;
diceRoll = RandNum(0, 1);
if (diceRoll == 0){
maxVY = (1 + ((mainRef.game_mc.gameTimer.currentCount / 80) * Math.sqrt((mainRef.game_mc.gameTimer.currentCount / 20))));
} else {
maxVY = RandNum(3, 6);
};
if ((((this.height < 100)) && ((maxVY > 6)))){
maxVY = 6;
} else {
if (maxVY > 15){
maxVY = 15;
};
};
if ((((mainRef.game_mc.gameTimer.currentCount < 30)) && ((maxVY > 4)))){
maxVY = 4;
};
vY = (((targetY - initY) / (this.scaleX * this.scaleX)) / 200);
vX = ((targetX - initX) / 400);
mass = (this.scaleX * 80);
}
public function shatter():void{
if (blnShattered == false){
this.gotoAndPlay(26);
mainRef.game_mc.spliceArray(this);
mainRef.game_mc.adjustScore(800);
mainRef.sPlayer.PlaySound(new Shatter());
};
blnShattered = true;
this.addEventListener(Event.ENTER_FRAME, shatterAnimationCheck);
}
private function animationCheck():void{
var _local1:MovieClip;
if (this.currentFrame == 2){
mainRef.game_mc.adjustHealth((this.width / 5));
mainRef.sPlayer.PlaySound(new Impact());
mainRef.sPlayer.PlaySound(new Fire(), 0.5);
};
if (this.currentFrame == 25){
_local1 = new meteorImpact();
mainRef.game_mc.graveyard.addChild(_local1);
_local1.x = (this.x + 1);
_local1.y = ((this.y + (this.height / 4)) + 1);
if (type == 1){
_local1.scaleX = this.scaleX;
} else {
if (type == 2){
_local1.scaleX = (this.scaleX * 1.5);
};
};
_local1.scaleY = _local1.scaleX;
mainRef.game_mc.DeleteMeteor(this);
};
}
private function shatterAnimationCheck(_arg1:Event):void{
if (this.currentFrame == 50){
mainRef.game_mc.shortenDelay();
this.removeEventListener(Event.ENTER_FRAME, shatterAnimationCheck);
KillMe();
};
}
public function KillMe():void{
var _local1:* = mainRef.game_mc.hero_mc.getCurrentTarget();
if (_local1 == this){
mainRef.game_mc.hero_mc.clearCurrentTarget();
mainRef.game_mc.hero_mc.gotoAndStop(nextFrame);
};
mainRef.game_mc.meteorZone_mc.removeChild(this);
}
}
}//package
Section 47
//meteorA (meteorA)
package {
public dynamic class meteorA extends Meteor {
public function meteorA(){
addFrameScript(0, frame1, 24, frame25);
}
function frame25(){
stop();
}
function frame1(){
stop();
}
}
}//package
Section 48
//meteorB (meteorB)
package {
public dynamic class meteorB extends Meteor {
public function meteorB(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 49
//meteorImpact (meteorImpact)
package {
import flash.display.*;
public dynamic class meteorImpact extends MovieClip {
public function meteorImpact(){
addFrameScript(399, frame400);
}
function frame400(){
stop();
}
}
}//package
Section 50
//MusicPlayer (MusicPlayer)
package {
import flash.display.*;
import flash.events.*;
import flash.media.*;
public class MusicPlayer {
private var numMasterVolume:Number;
private var strDefaultTransition:String;
private var blnMusicOn:Boolean;
private var intTransitionCounterCurrent:int;
var chnMusicChannel0:SoundChannel;
var chnMusicChannel1:SoundChannel;
var arrChannelData:Array;
private var intMode:int;
private var intTransitionCounterTotal:int;
private var intDefaultTransitionTime:int;
public function MusicPlayer(_arg1:Stage){
blnMusicOn = true;
numMasterVolume = 1;
strDefaultTransition = "FadeOutFadeIn";
intDefaultTransitionTime = 120;
_arg1.addEventListener(Event.ENTER_FRAME, Run);
arrChannelData = new Array();
arrChannelData.push({sndMusic:null, dblVolume:1, blnLoop:true, strTransitionEffect:"", intTransitionTime:2});
arrChannelData.push({sndMusic:null, dblVolume:1, blnLoop:true, strTransitionEffect:"", intTransitionTime:2});
}
public function Channel0Complete(_arg1:Event):void{
var _local2:SoundTransform;
if (arrChannelData[0].blnLoop == true){
_local2 = new SoundTransform();
chnMusicChannel0 = arrChannelData[0].sndMusic.play(0, 1);
_local2.volume = (numMasterVolume * arrChannelData[0].dblVolume);
chnMusicChannel0.soundTransform = _local2;
chnMusicChannel0.addEventListener(Event.SOUND_COMPLETE, Channel0Complete);
} else {
intMode = 0;
};
}
public function Channel1Complete(_arg1:Event):void{
var _local2:SoundTransform;
if (arrChannelData[1].blnLoop == true){
_local2 = new SoundTransform();
chnMusicChannel1 = arrChannelData[1].sndMusic.play(0, 1);
_local2.volume = (numMasterVolume * arrChannelData[1].dblVolume);
chnMusicChannel1.soundTransform = _local2;
chnMusicChannel1.addEventListener(Event.SOUND_COMPLETE, Channel1Complete);
} else {
intMode = 0;
};
}
public function set musicOn(_arg1:Boolean):void{
var _local2:* = blnMusicOn;
blnMusicOn = _arg1;
if (_local2 == _arg1){
return;
};
if (blnMusicOn == true){
RestartMusic();
} else {
HaltMusic();
};
}
private function HaltMusic():void{
switch (intMode){
case 0:
break;
case 1:
case 2:
chnMusicChannel0.stop();
break;
case 3:
chnMusicChannel0.stop();
arrChannelData[0].sndMusic = null;
break;
case 4:
try {
chnMusicChannel0.stop();
} catch(e:Error) {
};
try {
chnMusicChannel1.stop();
} catch(e:Error) {
};
arrChannelData[0].sndMusic = arrChannelData[1].sndMusic;
arrChannelData[0].dblVolume = arrChannelData[1].dblVolume;
arrChannelData[0].blnLoop = arrChannelData[1].blnLoop;
arrChannelData[0].strTransitionEffect = arrChannelData[1].strTransitionEffect;
arrChannelData[0].intTransitionTime = arrChannelData[1].intTransitionTime;
break;
case 5:
case 6:
chnMusicChannel1.stop();
arrChannelData[0].sndMusic = arrChannelData[1].sndMusic;
arrChannelData[0].dblVolume = arrChannelData[1].dblVolume;
arrChannelData[0].blnLoop = arrChannelData[1].blnLoop;
arrChannelData[0].strTransitionEffect = arrChannelData[1].strTransitionEffect;
arrChannelData[0].intTransitionTime = arrChannelData[1].intTransitionTime;
break;
case 7:
chnMusicChannel1.stop();
arrChannelData[0].sndMusic = null;
break;
case 8:
try {
chnMusicChannel0.stop();
} catch(e:Error) {
};
try {
chnMusicChannel1.stop();
} catch(e:Error) {
};
break;
};
}
private function FadeOut(_arg1:int, _arg2:Boolean=false):void{
var _local3:Number = (numMasterVolume * arrChannelData[_arg1].dblVolume);
if (intTransitionCounterTotal == 0){
if (_arg1 == 0){
chnMusicChannel0.stop();
} else {
chnMusicChannel1.stop();
};
intMode = 0;
return;
};
intTransitionCounterCurrent++;
var _local4:int = intTransitionCounterTotal;
if (_arg2 == true){
_local4 = Math.round((intTransitionCounterTotal / 2));
};
var _local5:Number = (intTransitionCounterCurrent / intTransitionCounterTotal);
if (_local5 > 1){
_local5 = 1;
};
var _local6:Number = (_local3 * (1 - _local5));
var _local7:SoundTransform = new SoundTransform();
_local7.volume = _local6;
if (_arg1 == 0){
chnMusicChannel0.soundTransform = _local7;
} else {
chnMusicChannel1.soundTransform = _local7;
};
_local7 = new SoundTransform();
if (_local5 == 1){
if (_arg1 == 0){
if (_arg2 == true){
intTransitionCounterTotal = Math.round((intTransitionCounterTotal / 2));
intTransitionCounterCurrent = 0;
intMode = 5;
chnMusicChannel0.stop();
chnMusicChannel1 = arrChannelData[1].sndMusic.play(0, 1);
_local7.volume = 0;
chnMusicChannel1.soundTransform = _local7;
chnMusicChannel1.addEventListener(Event.SOUND_COMPLETE, Channel1Complete);
} else {
chnMusicChannel0.stop();
intMode = 0;
};
} else {
if (_arg1 == 1){
if (_arg2 == true){
intTransitionCounterTotal = Math.round((intTransitionCounterTotal / 2));
intTransitionCounterCurrent = 0;
intMode = 1;
chnMusicChannel1.stop();
chnMusicChannel0 = arrChannelData[0].sndMusic.play(0, 1);
_local7.volume = 0;
chnMusicChannel0.soundTransform = _local7;
chnMusicChannel0.addEventListener(Event.SOUND_COMPLETE, Channel0Complete);
} else {
chnMusicChannel1.stop();
intMode = 0;
};
};
};
};
}
public function Run(_arg1:Event):void{
if (blnMusicOn == false){
return;
};
switch (intMode){
case 1:
if ((arrChannelData[0].strTransitionEffect == "FadeOutFadeIn")){
FadeIn(0);
};
break;
case 4:
if ((arrChannelData[1].strTransitionEffect == "FadeOutFadeIn")){
FadeOut(0, true);
};
break;
case 5:
if ((arrChannelData[1].strTransitionEffect == "FadeOutFadeIn")){
FadeIn(1);
};
break;
case 8:
if ((arrChannelData[0].strTransitionEffect == "FadeOutFadeIn")){
FadeOut(1, true);
};
break;
};
}
private function FadeIn(_arg1:int):void{
var _local2:Number = (numMasterVolume * arrChannelData[_arg1].dblVolume);
if (intTransitionCounterTotal == 0){
if (_arg1 == 0){
intMode = 2;
} else {
intMode = 6;
};
return;
};
intTransitionCounterCurrent++;
var _local3:Number = (intTransitionCounterCurrent / intTransitionCounterTotal);
if (_local3 > 1){
_local3 = 1;
};
var _local4:Number = (_local2 * _local3);
if (_local3 == 1){
if (_arg1 == 0){
intMode = 2;
} else {
intMode = 6;
};
};
var _local5:SoundTransform = new SoundTransform();
_local5.volume = _local4;
if (_arg1 == 0){
chnMusicChannel0.soundTransform = _local5;
} else {
chnMusicChannel1.soundTransform = _local5;
};
}
public function PlayMusic(_arg1:Sound, _arg2:Number=1, _arg3:Boolean=true, _arg4:String="%%%", _arg5:int=-1):void{
if (_arg2 < 0){
_arg2 = 0;
} else {
if (_arg2 > 1){
_arg2 = 1;
};
};
if (_arg4 == "%%%"){
_arg4 = strDefaultTransition;
};
if (_arg5 == -1){
_arg5 = intDefaultTransitionTime;
};
if (_arg5 < 0){
_arg5 = 0;
};
if (_arg5 == 0){
_arg4 = "None";
};
if (_arg4 != "FadeOutFadeIn"){
_arg4 = strDefaultTransition;
};
if (blnMusicOn == false){
arrChannelData[0].sndMusic = _arg1;
arrChannelData[0].dblVolume = _arg2;
arrChannelData[0].blnLoop = _arg3;
return;
};
var _local6:SoundTransform = new SoundTransform();
switch (intMode){
case 0:
chnMusicChannel0 = _arg1.play(0, 1);
_local6.volume = 0;
chnMusicChannel0.soundTransform = _local6;
chnMusicChannel0.addEventListener(Event.SOUND_COMPLETE, Channel0Complete);
intMode = 1;
arrChannelData[0].sndMusic = _arg1;
arrChannelData[0].dblVolume = _arg2;
arrChannelData[0].blnLoop = _arg3;
arrChannelData[0].strTransitionEffect = _arg4;
arrChannelData[0].intTransitionTime = _arg5;
intTransitionCounterTotal = _arg5;
intTransitionCounterCurrent = 0;
break;
case 2:
intMode = 4;
arrChannelData[1].sndMusic = _arg1;
arrChannelData[1].dblVolume = _arg2;
arrChannelData[1].blnLoop = _arg3;
arrChannelData[1].strTransitionEffect = _arg4;
arrChannelData[1].intTransitionTime = _arg5;
intTransitionCounterTotal = _arg5;
intTransitionCounterCurrent = 0;
break;
case 6:
intMode = 8;
arrChannelData[0].sndMusic = _arg1;
arrChannelData[0].dblVolume = _arg2;
arrChannelData[0].blnLoop = _arg3;
arrChannelData[0].strTransitionEffect = _arg4;
arrChannelData[0].intTransitionTime = _arg5;
intTransitionCounterTotal = _arg5;
intTransitionCounterCurrent = 0;
break;
};
}
private function RestartMusic():void{
if (arrChannelData[0].sndMusic == null){
return;
};
var _local1:SoundTransform = new SoundTransform();
chnMusicChannel0 = arrChannelData[0].sndMusic.play(0, 1);
_local1.volume = (numMasterVolume * arrChannelData[0].dblVolume);
chnMusicChannel0.soundTransform = _local1;
chnMusicChannel0.addEventListener(Event.SOUND_COMPLETE, Channel0Complete);
}
public function get musicOn():Boolean{
return (blnMusicOn);
}
}
}//package
Section 51
//PauseScreen (PauseScreen)
package {
import flash.display.*;
import flash.events.*;
public class PauseScreen extends MovieClip {
public var continue_btn:MovieClip;
public var moreGames_btn:MovieClip;
public var mainRef:Main;
public var menu_btn:MovieClip;
public function destroy():void{
stage.removeChild(this);
}
public function Setup(_arg1:Main):void{
mainRef = _arg1;
continue_btn.addEventListener(MouseEvent.MOUSE_OVER, mainRef.MouseOver);
continue_btn.addEventListener(MouseEvent.MOUSE_OUT, mainRef.MouseOut);
continue_btn.addEventListener(MouseEvent.MOUSE_UP, mainRef.unPause);
menu_btn.addEventListener(MouseEvent.MOUSE_OVER, mainRef.MouseOver);
menu_btn.addEventListener(MouseEvent.MOUSE_OUT, mainRef.MouseOut);
menu_btn.addEventListener(MouseEvent.MOUSE_UP, mainRef.gotoMainMenu);
moreGames_btn.addEventListener(MouseEvent.MOUSE_OVER, mainRef.MouseOver);
moreGames_btn.addEventListener(MouseEvent.MOUSE_OUT, mainRef.MouseOut);
moreGames_btn.addEventListener(MouseEvent.MOUSE_UP, mainRef.gotoMoreGames);
}
}
}//package
Section 52
//PauseScreenOverlay (PauseScreenOverlay)
package {
public dynamic class PauseScreenOverlay extends PauseScreen {
}
}//package
Section 53
//Pickup (Pickup)
package {
import flash.media.*;
public dynamic class Pickup extends Sound {
}
}//package
Section 54
//Pickups (Pickups)
package {
import flash.display.*;
import flash.events.*;
public class Pickups extends MovieClip {
private var yMultiplier:Number;
private var diceRoll:Number;
private var xOffset:Number;
private var initialY:Number;
var mainRef:Main;
private var pickupType:int;
public function motion(){
if (diceRoll == 0){
if (this.x < 660){
this.x = (this.x + 4);
this.y = ((Math.sin((x / xOffset)) * yMultiplier) + initialY);
HitTest();
} else {
this.removeEventListener(Event.ENTER_FRAME, motion);
mainRef.game_mc.activePickups.splice(0, 1);
mainRef.removeMC(this);
};
} else {
if (diceRoll == 1){
if (this.x > -60){
this.x = (this.x - 4);
this.y = ((Math.sin((x / xOffset)) * yMultiplier) + initialY);
HitTest();
} else {
this.removeEventListener(Event.ENTER_FRAME, motion);
mainRef.game_mc.activePickups.splice(0, 1);
mainRef.removeMC(this);
};
};
};
}
private function HitTest():void{
if ((((Math.abs((this.x - mainRef.game_mc.hero_mc.x)) <= (this.width / 2))) && ((Math.abs((this.y - mainRef.game_mc.hero_mc.y)) <= (this.height / 2))))){
mainRef.turnOnPower(pickupType);
mainRef.addSparkle(this.x, this.y);
mainRef.game_mc.activePickups.splice(0, 1);
mainRef.removeMC(this);
mainRef.sPlayer.PlaySound(new Pickup(), 0.1);
};
}
private function RandNum(_arg1:Number, _arg2:Number):Number{
return (Math.round((((Math.random() * ((_arg2 - _arg1) + 0.8)) + _arg1) - 0.4)));
}
public function Setup(_arg1:Main, _arg2:int):void{
mainRef = _arg1;
pickupType = (_arg2 + 1);
diceRoll = RandNum(0, 1);
if (diceRoll == 0){
this.x = (0 - RandNum(20, 60));
} else {
if (diceRoll == 1){
this.x = RandNum(620, 660);
};
};
initialY = RandNum(200, 350);
this.scaleX = 0.75;
this.scaleY = 0.75;
xOffset = RandNum(50, 100);
yMultiplier = RandNum(50, 200);
}
}
}//package
Section 55
//PickupSparkle (PickupSparkle)
package {
import flash.display.*;
public dynamic class PickupSparkle extends MovieClip {
}
}//package
Section 56
//Preloader (Preloader)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import CPMStar.*;
public class Preloader extends MovieClip {
public var continue_btn:MovieClip;
public var heroLogo:MovieClip;
private var CPMStarPoolID:int;// = 1052
private var CPMStarSubPoolID:int;// = 13
private var sponsorLoader:URLLoader;
public var mainRef:Main;
private var ad:DisplayObject;
public var adBox:MovieClip;
private var frame:Number;
public var agLogo:MovieClip;
private var sponsorURL:URLRequest;
public var preloader:LoadingBar;
private function MouseOut(_arg1:MouseEvent):void{
_arg1.target.gotoAndStop(1);
}
public function Setup(_arg1:Main):void{
mainRef = _arg1;
if (adBox != null){
ad = AdLoader.LoadAd(CPMStarPoolID, CPMStarSubPoolID);
adBox.addChild(ad);
};
mainRef.loaderInfo.addEventListener(ProgressEvent.PROGRESS, onRootLoaderProgress);
mainRef.loaderInfo.addEventListener(Event.COMPLETE, onRootLoaderComplete);
}
private function animationCheck(_arg1:Event):void{
if (this.currentFrame == 3){
agLogo.addEventListener(MouseEvent.MOUSE_UP, mainRef.gotoMoreGames);
} else {
if (this.currentFrame == 179){
agLogo.removeEventListener(MouseEvent.MOUSE_UP, mainRef.gotoMoreGames);
} else {
if (this.currentFrame == 182){
heroLogo.addEventListener(MouseEvent.MOUSE_UP, mainRef.loadHeroWebsite);
} else {
if (this.currentFrame == this.totalFrames){
heroLogo.removeEventListener(MouseEvent.MOUSE_UP, mainRef.loadHeroWebsite);
gotoMenu();
};
};
};
};
}
private function onRootLoaderProgress(_arg1:ProgressEvent):void{
frame = int(((mainRef.loaderInfo.bytesLoaded / mainRef.loaderInfo.bytesTotal) * 100));
if (frame < 100){
frame = int(((mainRef.loaderInfo.bytesLoaded / mainRef.loaderInfo.bytesTotal) * 100));
preloader.gotoAndStop(frame);
};
}
private function playAnimation(_arg1:MouseEvent):void{
if (mainRef.objUrlLocking.GetLocked() == false){
removeChild(adBox);
mainRef.removePreloader(continue_btn);
removeChild(preloader);
gotoAndPlay(2);
this.addEventListener(Event.ENTER_FRAME, animationCheck);
} else {
mainRef.gotoAndStop("locked");
};
}
private function MouseOver(_arg1:MouseEvent):void{
_arg1.target.gotoAndStop(2);
}
private function gotoMenu():void{
mainRef.removePreloader(this);
mainRef.gotoAndStop("load");
}
private function onRootLoaderComplete(_arg1:Event):void{
preloader.gotoAndStop(frame);
continue_btn = new ContinueBTN();
continue_btn.x = 300;
continue_btn.y = 356;
mainRef.addChild(continue_btn);
continue_btn.addEventListener(MouseEvent.MOUSE_OVER, MouseOver);
continue_btn.addEventListener(MouseEvent.MOUSE_OUT, MouseOut);
continue_btn.addEventListener(MouseEvent.MOUSE_UP, playAnimation);
}
}
}//package
Section 57
//ScreenEffects (ScreenEffects)
package {
import flash.display.*;
import flash.events.*;
class ScreenEffects {
private var blnShakeMode:Boolean;
private var intShakeStart:Number;
private var intShakeDuration:Number;
private var arrScreenEffects:Array;
private var mainRef:Main;
private var vecScreenCoords:LineVector;
private var intShakeCounter:Number;
private var stageRef:Stage;
private var vecPreScreenCoords:LineVector;
function ScreenEffects(_arg1:Main, _arg2:Stage):void{
intShakeDuration = 0;
mainRef = _arg1;
stageRef = _arg2;
mainRef.addEventListener(Event.ENTER_FRAME, Run);
arrScreenEffects = new Array();
intShakeDuration = 0;
intShakeCounter = 0;
intShakeStart = 0;
ShakeSetup();
}
private function RandNum(_arg1:Number, _arg2:Number):Number{
return ((Math.round((Math.random() * (_arg2 - _arg1))) + _arg1));
}
public function Off():void{
blnShakeMode = false;
HaltShaking();
}
public function FLASH():void{
var sFlashMC:MovieClip;
try {
sFlashMC = new MovieClip();
sFlashMC.x = -40;
sFlashMC.y = -40;
sFlashMC.graphics.beginFill(0xFFFFFF, 1);
sFlashMC.graphics.drawRect(0, 0, (stageRef.width + 80), (stageRef.height + 80));
mainRef.addChild(sFlashMC);
arrScreenEffects.push(sFlashMC);
} catch(e:Error) {
trace("FLASH(); Error in ScreenEffects.as");
};
}
public function DeleteMainRefEventListener():void{
mainRef.removeEventListener(Event.ENTER_FRAME, Run);
}
private function MoveWorld(_arg1:LineVector):void{
_arg1.x = Math.round(_arg1.x);
_arg1.y = Math.round(_arg1.y);
mainRef.x = (mainRef.x + _arg1.x);
mainRef.y = (mainRef.y + _arg1.y);
}
public function HaltShaking():void{
var _local1:Number;
var _local2:Number;
var _local3:LineVector;
if (((!((mainRef.x == vecPreScreenCoords.x))) || (!((mainRef.y == vecPreScreenCoords.y))))){
intShakeDuration = 0;
_local1 = (vecPreScreenCoords.x - mainRef.x);
_local2 = (vecPreScreenCoords.y - mainRef.y);
mainRef.x = vecPreScreenCoords.x;
mainRef.y = vecPreScreenCoords.y;
_local3 = new LineVector();
_local3.x = _local1;
_local3.y = _local2;
MoveWorld(vecPreScreenCoords);
};
}
public function SHAKE(_arg1:Number):void{
if (intShakeDuration == 0){
intShakeDuration = _arg1;
intShakeStart = _arg1;
intShakeCounter = 3;
vecPreScreenCoords.x = mainRef.x;
vecPreScreenCoords.y = mainRef.y;
};
}
private function FadeFlashMCs():void{
var _local1:Number = 0;
while (_local1 < arrScreenEffects.length) {
if (arrScreenEffects[_local1].alpha <= 0){
KillMe(arrScreenEffects[_local1]);
arrScreenEffects.splice(_local1, 1);
_local1--;
} else {
arrScreenEffects[_local1].alpha = (arrScreenEffects[_local1].alpha - 0.1);
};
_local1++;
};
}
private function Run(_arg1:Event):void{
ManageShaking();
FadeFlashMCs();
}
public function KillMe(_arg1:MovieClip):void{
var flashSucks:MovieClip;
var i:Number;
var effectName = _arg1;
try {
flashSucks = effectName;
i = 0;
while (i < arrScreenEffects.length) {
if (arrScreenEffects[i] == flashSucks){
mainRef.removeChild(flashSucks);
};
break;
i = (i + 1);
};
} catch(e:Error) {
trace("KillMe(); Error in ScreenEffects.as");
};
}
public function ShakeSetup():void{
intShakeDuration = 0;
blnShakeMode = true;
arrScreenEffects = new Array();
vecScreenCoords = (vecPreScreenCoords = new LineVector());
vecScreenCoords.x = (vecPreScreenCoords.x = mainRef.x);
vecScreenCoords.y = (vecPreScreenCoords.y = mainRef.y);
HaltShaking();
}
private function ManageShaking():void{
var _local1:Number;
var _local2:Number;
var _local3:Number;
var _local4:Number;
var _local5:Number;
var _local6:Number;
var _local7:LineVector;
if (intShakeDuration > 0){
intShakeDuration--;
if (intShakeDuration == 0){
HaltShaking();
} else {
intShakeCounter--;
if (intShakeCounter == 0){
intShakeCounter = 3;
_local1 = (intShakeDuration / intShakeStart);
_local2 = 2;
if (intShakeStart > 45){
_local2 = 4;
};
_local3 = (vecPreScreenCoords.x + (RandNum((-1 * _local2), _local2) * _local1));
_local4 = (vecPreScreenCoords.y + (RandNum((-1 * _local2), _local2) * _local1));
_local5 = (_local3 - mainRef.x);
_local6 = (_local4 - mainRef.y);
mainRef.x = _local3;
mainRef.y = _local4;
_local7 = new LineVector();
_local7.x = _local5;
_local7.y = _local6;
MoveWorld(_local7);
};
};
};
}
public function On():void{
blnShakeMode = true;
}
}
}//package
Section 58
//Shatter (Shatter)
package {
import flash.media.*;
public dynamic class Shatter extends Sound {
}
}//package
Section 59
//ShockWave (ShockWave)
package {
import flash.display.*;
import flash.events.*;
public class ShockWave extends MovieClip {
private var ActiveEnemies:Array;
var mainRef:Main;
private var distanceToMeteor;
private function expand(_arg1:Event):void{
this.scaleX = (this.scaleX * 1.5);
this.scaleY = this.scaleX;
this.alpha = (this.alpha * 1);
if (this.width >= 1200){
this.removeEventListener(Event.ENTER_FRAME, expand);
mainRef.game_mc.removeChild(this);
};
HitTest();
}
public function HitTest():void{
var _local1:int;
ActiveEnemies = mainRef.game_mc.getActiveEnemies();
if (ActiveEnemies.length > 0){
_local1 = 0;
while (_local1 < ActiveEnemies.length) {
distanceToMeteor = Math.sqrt(Math.abs((((this.x - ActiveEnemies[_local1].x) * (this.x - ActiveEnemies[_local1].x)) + ((this.y - ActiveEnemies[_local1].y) * (this.y - ActiveEnemies[_local1].y)))));
if ((((((distanceToMeteor <= (this.width / 4))) && ((ActiveEnemies[_local1].blnShattered == false)))) && ((ActiveEnemies[_local1].blnDead == false)))){
ActiveEnemies[_local1].shatter();
};
_local1++;
};
};
}
public function Setup(_arg1:Main):void{
mainRef = _arg1;
ActiveEnemies = mainRef.game_mc.getActiveEnemies();
this.addEventListener(Event.ENTER_FRAME, expand);
}
}
}//package
Section 60
//Shockwave (Shockwave)
package {
import flash.media.*;
public dynamic class Shockwave extends Sound {
}
}//package
Section 61
//ShockWaveIcon (ShockWaveIcon)
package {
import flash.display.*;
public dynamic class ShockWaveIcon extends MovieClip {
public function ShockWaveIcon(){
addFrameScript(0, frame1);
}
function frame1(){
stop();
}
}
}//package
Section 62
//ShockWavePickup (ShockWavePickup)
package {
public dynamic class ShockWavePickup extends Pickups {
}
}//package
Section 63
//ShockWavePower (ShockWavePower)
package {
public dynamic class ShockWavePower extends ShockWave {
}
}//package
Section 64
//SoundPlayer (SoundPlayer)
package {
import flash.events.*;
import flash.media.*;
public class SoundPlayer {
private var numMasterVolume:Number;
private var blnSoundOn:Boolean;
var arrChannelOriginalVolume:Array;
var chnSoundChannel1:SoundChannel;
var chnSoundChannel2:SoundChannel;
var chnSoundChannel3:SoundChannel;
var chnSoundChannel4:SoundChannel;
var chnSoundChannel5:SoundChannel;
var chnSoundChannel6:SoundChannel;
var chnSoundChannel7:SoundChannel;
var arrChannelInUse:Array;
public function SoundPlayer(){
blnSoundOn = true;
numMasterVolume = 1;
arrChannelInUse = new Array(false, false, false, false, false, false, false, false);
arrChannelOriginalVolume = new Array(1, 1, 1, 1, 1, 1, 1, 1);
}
public function StopAllSounds():void{
if (arrChannelInUse[1]){
chnSoundChannel1.stop();
};
if (arrChannelInUse[2]){
chnSoundChannel2.stop();
};
if (arrChannelInUse[3]){
chnSoundChannel3.stop();
};
if (arrChannelInUse[4]){
chnSoundChannel4.stop();
};
if (arrChannelInUse[5]){
chnSoundChannel5.stop();
};
if (arrChannelInUse[6]){
chnSoundChannel6.stop();
};
if (arrChannelInUse[7]){
chnSoundChannel7.stop();
};
var _local1:int;
while (_local1 < arrChannelInUse.length) {
arrChannelInUse[_local1] = false;
_local1++;
};
}
public function Channel1Complete(_arg1:Event):void{
arrChannelInUse[1] = false;
}
public function Channel2Complete(_arg1:Event):void{
arrChannelInUse[2] = false;
}
public function Channel3Complete(_arg1:Event):void{
arrChannelInUse[3] = false;
}
public function Channel5Complete(_arg1:Event):void{
arrChannelInUse[5] = false;
}
public function Channel6Complete(_arg1:Event):void{
arrChannelInUse[6] = false;
}
public function get soundOn():Boolean{
return (blnSoundOn);
}
public function StopSoundLoop():void{
arrChannelInUse[7] = false;
chnSoundChannel7.stop();
}
public function set soundOn(_arg1:Boolean):void{
blnSoundOn = _arg1;
if (_arg1 == false){
StopAllSounds();
};
}
public function PlaySoundLoop(_arg1:Sound, _arg2:Number=1, _arg3:Number=0):void{
if (arrChannelInUse[7] == true){
return;
};
if (_arg2 > 1){
_arg2 = 1;
} else {
if (_arg2 < 0){
_arg2 = 0;
};
};
if (_arg3 > 1){
_arg3 = 1;
} else {
if (_arg3 < -1){
_arg3 = 1;
};
};
arrChannelInUse[7] = true;
var _local4:SoundTransform = new SoundTransform();
chnSoundChannel7 = _arg1.play(0, 99999);
_local4.volume = (_arg2 * numMasterVolume);
_local4.pan = _arg3;
chnSoundChannel7.soundTransform = _local4;
}
public function PlaySound(_arg1:Sound, _arg2:Number=1, _arg3:Number=0):void{
if (blnSoundOn == false){
return;
};
var _local4 = -1;
var _local5:Number = 1;
while (_local5 < 7) {
if (arrChannelInUse[_local5] == false){
_local4 = _local5;
break;
};
_local5++;
};
if (_local4 == -1){
return;
};
if (_arg2 > 1){
_arg2 = 1;
} else {
if (_arg2 < 0){
_arg2 = 0;
};
};
if (_arg3 > 1){
_arg3 = 1;
} else {
if (_arg3 < -1){
_arg3 = 1;
};
};
arrChannelInUse[_local4] = true;
arrChannelOriginalVolume[_local4] = _arg2;
var _local6:SoundTransform = new SoundTransform();
switch (_local4){
case 1:
chnSoundChannel1 = _arg1.play(0, 1);
_local6.volume = (_arg2 * numMasterVolume);
_local6.pan = _arg3;
chnSoundChannel1.soundTransform = _local6;
chnSoundChannel1.addEventListener(Event.SOUND_COMPLETE, Channel1Complete);
break;
case 2:
chnSoundChannel2 = _arg1.play(0, 1);
_local6.volume = (_arg2 * numMasterVolume);
_local6.pan = _arg3;
chnSoundChannel2.soundTransform = _local6;
chnSoundChannel2.addEventListener(Event.SOUND_COMPLETE, Channel2Complete);
break;
case 3:
chnSoundChannel3 = _arg1.play(0, 1);
_local6.volume = (_arg2 * numMasterVolume);
_local6.pan = _arg3;
chnSoundChannel3.soundTransform = _local6;
chnSoundChannel3.addEventListener(Event.SOUND_COMPLETE, Channel3Complete);
break;
case 4:
chnSoundChannel4 = _arg1.play(0, 1);
_local6.volume = (_arg2 * numMasterVolume);
_local6.pan = _arg3;
chnSoundChannel4.soundTransform = _local6;
chnSoundChannel4.addEventListener(Event.SOUND_COMPLETE, Channel4Complete);
break;
case 5:
chnSoundChannel5 = _arg1.play(0, 1);
_local6.volume = (_arg2 * numMasterVolume);
_local6.pan = _arg3;
chnSoundChannel5.soundTransform = _local6;
chnSoundChannel5.addEventListener(Event.SOUND_COMPLETE, Channel5Complete);
break;
case 6:
chnSoundChannel6 = _arg1.play(0, 1);
_local6.volume = (_arg2 * numMasterVolume);
_local6.pan = _arg3;
chnSoundChannel6.soundTransform = _local6;
chnSoundChannel6.addEventListener(Event.SOUND_COMPLETE, Channel6Complete);
break;
};
}
public function get masterVolume():Number{
return (numMasterVolume);
}
public function Channel4Complete(_arg1:Event):void{
arrChannelInUse[4] = false;
}
public function set masterVolume(_arg1:Number):void{
var _local2:SoundTransform;
if (_arg1 > 1){
_arg1 = 1;
} else {
if (_arg1 < 0){
_arg1 = 0;
};
};
numMasterVolume = _arg1;
if (arrChannelInUse[1]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[1] * numMasterVolume);
chnSoundChannel1.soundTransform = _local2;
};
if (arrChannelInUse[2]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[2] * numMasterVolume);
chnSoundChannel2.soundTransform = _local2;
};
if (arrChannelInUse[3]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[3] * numMasterVolume);
chnSoundChannel3.soundTransform = _local2;
};
if (arrChannelInUse[4]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[4] * numMasterVolume);
chnSoundChannel4.soundTransform = _local2;
};
if (arrChannelInUse[5]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[5] * numMasterVolume);
chnSoundChannel5.soundTransform = _local2;
};
if (arrChannelInUse[6]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[6] * numMasterVolume);
chnSoundChannel6.soundTransform = _local2;
};
if (arrChannelInUse[7]){
_local2 = new SoundTransform();
_local2.volume = (arrChannelOriginalVolume[7] * numMasterVolume);
chnSoundChannel7.soundTransform = _local2;
};
}
}
}//package
Section 65
//SuperSpeed (SuperSpeed)
package {
import flash.media.*;
public dynamic class SuperSpeed extends Sound {
}
}//package
Section 66
//SuperSpeedPickup (SuperSpeedPickup)
package {
public dynamic class SuperSpeedPickup extends Pickups {
}
}//package
Section 67
//UrlLocking (UrlLocking)
package {
import flash.display.*;
import flash.events.*;
import flash.net.*;
import flash.system.*;
public class UrlLocking {
private var stgRef:Stage;
private var arrDomains:Array;
private var blnAllowAllSites:Boolean;
private var blnLoadedXML:Boolean;
private var arrAdFreeDomains:Array;
private var lodUrlLoader:URLLoader;
private var blnShowNoAdsEver:Boolean;
private var blnExceptionFound:Boolean;
private var blnXMLException:Boolean;
public function UrlLocking(_arg1:Stage, _arg2:Boolean, _arg3:Boolean, _arg4:Boolean=true):void{
stgRef = _arg1;
blnXMLException = _arg4;
blnAllowAllSites = _arg2;
blnShowNoAdsEver = _arg3;
arrDomains = new Array();
arrAdFreeDomains = new Array();
blnLoadedXML = false;
blnExceptionFound = false;
if (blnXMLException == true){
if (Capabilities.playerType == "External"){
SearchForXMLException();
} else {
blnLoadedXML = true;
};
};
}
public function AddAllowableDomain(_arg1:String):void{
arrDomains.push(_arg1);
}
private function XmlListener(_arg1:Event):void{
var _local2:XML = new XML(lodUrlLoader.data);
if (_local2.name() == "GAMEEXCEPTIONS"){
if (_local2.children()[0].name() == "GAMEALLOWURLACCESS"){
if (_local2.children()[0].attribute("ALLOWACCESS").toString() == "True"){
blnLoadedXML = true;
blnExceptionFound = true;
} else {
blnLoadedXML = true;
blnExceptionFound = false;
};
} else {
blnLoadedXML = true;
blnExceptionFound = false;
};
} else {
blnLoadedXML = true;
blnExceptionFound = false;
};
}
public function GetShowAds():Boolean{
if (blnShowNoAdsEver == true){
return (false);
};
var _local1:String = stgRef.loaderInfo.url;
var _local2:Number = 0;
while (_local2 < arrAdFreeDomains.length) {
if (_local1.indexOf(arrAdFreeDomains[_local2]) != -1){
return (false);
};
_local2++;
};
return (true);
}
public function GetLocked():Boolean{
var _local1:String;
var _local2:Number;
if (blnAllowAllSites == true){
return (false);
};
if ((((blnXMLException == true)) && ((blnLoadedXML == false)))){
trace("WARNING: Have not finished loading XML URL Exception yet.");
};
if (blnExceptionFound == true){
return (false);
};
_local1 = stgRef.loaderInfo.url;
_local2 = 0;
while (_local2 < arrDomains.length) {
if (_local1.indexOf(arrDomains[_local2]) != -1){
return (false);
};
_local2++;
};
return (true);
}
public function AddAdFreeDomain(_arg1:String):void{
arrAdFreeDomains.push(_arg1);
}
private function XmlFail(_arg1:Event):void{
blnLoadedXML = true;
blnExceptionFound = false;
}
private function SearchForXMLException():void{
var _local1:URLRequest = new URLRequest("AllowGameURLAccess.xml");
lodUrlLoader = new URLLoader();
lodUrlLoader.addEventListener(Event.COMPLETE, XmlListener);
lodUrlLoader.addEventListener(IOErrorEvent.IO_ERROR, XmlFail);
lodUrlLoader.load(_local1);
}
}
}//package