Symbol 11 MovieClip [SmallExplosion] Frame 4
this.removeMovieClip();
Symbol 14 MovieClip [EnemyShip] Frame 1
#initclip 31
Object.registerClass("EnemyShip", EnemyShip);
#endinitclip
Symbol 17 MovieClip [RewardPoints] Frame 1
#initclip 18
Object.registerClass("RewardPoints", RewardPoints);
#endinitclip
Symbol 20 MovieClip [MiniBoss] Frame 1
#initclip 19
Object.registerClass("MiniBoss", MiniBoss);
#endinitclip
Symbol 23 MovieClip [Boss] Frame 1
#initclip 20
Object.registerClass("Boss", Boss);
#endinitclip
Symbol 26 MovieClip [PowerUp] Frame 1
#initclip 21
Object.registerClass("PowerUp", PowerUp);
#endinitclip
Symbol 51 MovieClip [Explosion] Frame 23
this.removeMovieClip();
Symbol 54 MovieClip [Missile] Frame 1
#initclip 22
Object.registerClass("Missile", Missile);
#endinitclip
Symbol 57 MovieClip [MiniBossMissile] Frame 1
#initclip 23
Object.registerClass("MiniBossMissile", EnemyMissile);
#endinitclip
Symbol 58 MovieClip [MissileRight] Frame 1
#initclip 24
Object.registerClass("MissileRight", MissileRight);
#endinitclip
Symbol 59 MovieClip [MissileLeft] Frame 1
#initclip 25
Object.registerClass("MissileLeft", MissileLeft);
#endinitclip
Symbol 60 MovieClip [EnemyMissile] Frame 1
#initclip 26
Object.registerClass("EnemyMissile", EnemyMissile);
#endinitclip
Symbol 63 MovieClip [EnemyShip2] Frame 1
#initclip 27
Object.registerClass("EnemyShip2", EnemyShip2);
#endinitclip
Symbol 66 MovieClip [EnemyShip3] Frame 1
#initclip 28
Object.registerClass("EnemyShip3", EnemyShip3);
#endinitclip
Symbol 84 MovieClip [Ship] Frame 1
#initclip 29
Object.registerClass("Ship", Ship);
#endinitclip
Symbol 87 MovieClip [Background] Frame 1
#initclip 30
Object.registerClass("Background", Background);
#endinitclip
Symbol 113 MovieClip Frame 1
stop();
Symbol 114 MovieClip [__Packages.RewardPoints] Frame 0
class RewardPoints extends MovieClip
{
var _alpha, fadeDirection, fadeSpeed, removeMovieClip;
function RewardPoints () {
super();
}
function onLoad() {
_alpha = 25;
fadeDirection = 1;
fadeSpeed = 5;
}
function onEnterFrame() {
_alpha = _alpha + (fadeSpeed * fadeDirection);
if ((_alpha > 100) && (fadeDirection == 1)) {
fadeDirection = -1;
}
if (_alpha < 0) {
removeMovieClip();
}
}
}
Symbol 115 MovieClip [__Packages.MiniBoss] Frame 0
class MiniBoss extends MovieClip
{
var health, yDirection, _x, _y, speed, shootTimer, hitTest, removeMovieClip;
function MiniBoss () {
super();
}
function onLoad() {
health = 100;
_root.enemyHealthMeter._visible = true;
_root.enemyHealthMeter.bar._xscale = 100;
yDirection = 1;
_x = (Math.random() * 600) + 50;
_y = -50;
speed = 3;
_root.ship.enemies.push(this);
shootTimer = 0;
}
function onEnterFrame() {
if (_y < 150) {
_y = _y + speed;
}
_x = _x + (yDirection * 2);
if ((yDirection == 1) && (_x > 670)) {
yDirection = -1;
} else if ((yDirection == -1) && (_x < 50)) {
yDirection = 1;
}
if (hitTest(_root.ship)) {
_root.ship.updateHealth(-25);
var _local4 = _root.attachMovie("SmallExplosion", "SmallExplosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _root.ship._x;
_local4._y = _root.ship._y;
}
shootTimer = shootTimer + 1;
if (shootTimer > 60) {
shootTimer = 0;
var _local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = -2;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = -1;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = 2;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = 1;
}
}
function takeDamage() {
health = health - 10;
_root.enemyHealthMeter.bar._xscale = health;
if (health <= 0) {
explode();
}
}
function explode() {
_root.enemyHealthMeter._visible = false;
var _local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x;
_local3._y = _y;
_local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x + 30;
_local3._y = _y - 10;
_local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 40;
_local3._y = _y - 5;
_root.ship.updateScore(1000);
_root.ship.kills = _root.ship.kills + 1;
var _local4 = _root.attachMovie("RewardPoints", "RewardPoints" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y;
_local4.field.text = 1000;
_root.soundFX.attachSound("big_explosion.wav");
_root.soundFX.start();
removeMovieClip();
_root.ship.miniBossTimer = 0;
}
}
Symbol 116 MovieClip [__Packages.Boss] Frame 0
class Boss extends MovieClip
{
var health, yDirection, _x, _y, speed, shootTimer, hitTest, removeMovieClip;
function Boss () {
super();
}
function onLoad() {
health = 100;
_root.enemyHealthMeter._visible = true;
_root.enemyHealthMeter.bar._xscale = 100;
yDirection = 1;
_x = (Math.random() * 600) + 50;
_y = -50;
speed = 3;
_root.ship.enemies.push(this);
shootTimer = 0;
}
function onEnterFrame() {
if (_y < 150) {
_y = _y + speed;
}
_x = _x + (yDirection * 2);
if ((yDirection == 1) && (_x > 670)) {
yDirection = -1;
} else if ((yDirection == -1) && (_x < 50)) {
yDirection = 1;
}
if (hitTest(_root.ship)) {
_root.ship.updateHealth(-25);
var _local4 = _root.attachMovie("SmallExplosion", "SmallExplosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _root.ship._x;
_local4._y = _root.ship._y;
}
shootTimer = shootTimer + 1;
if (shootTimer > 60) {
shootTimer = 0;
var _local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = -2;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = -1;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = 2;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = 1;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = 0.5;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = -0.5;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = 1.5;
_local3 = _root.attachMovie("MiniBossMissile", "MiniBossMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 0;
_local3._y = _y - 8;
_local3.yDirection = -1.5;
}
}
function takeDamage() {
health = health - 5;
_root.enemyHealthMeter.bar._xscale = health;
if (health <= 0) {
explode();
}
}
function explode() {
_root.enemyHealthMeter._visible = false;
var _local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x;
_local3._y = _y;
_local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x + 30;
_local3._y = _y - 10;
_local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x - 40;
_local3._y = _y - 5;
_root.ship.updateScore(10000);
_root.ship.kills = _root.ship.kills + 1;
var _local4 = _root.attachMovie("RewardPoints", "RewardPoints" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y;
_local4.field.text = 10000;
_root.soundFX.attachSound("very_big_explosion.wav");
_root.soundFX.start();
removeMovieClip();
_root.ship.winGame();
}
}
Symbol 117 MovieClip [__Packages.PowerUp] Frame 0
class PowerUp extends MovieClip
{
var speed, type, _x, _y, _rotation, hitTest, removeMovieClip;
function PowerUp () {
super();
}
function onLoad() {
speed = 2;
type = Math.floor((Math.random() * 4) + 1);
_x = (Math.random() * 650) + 50;
_y = 0;
}
function onEnterFrame() {
_y = _y + speed;
_rotation = _rotation - 5;
if (hitTest(_root.ship)) {
var _local3;
if (type == 1) {
_root.ship.updateHealth(100 - _root.ship.health);
_local3 = "health";
}
if (type == 2) {
_root.ship.damageAllEnemies();
_local3 = "nuke";
_root.soundFX.attachSound("very_big_explosion.wav");
_root.soundFX.start();
}
if (type == 3) {
_root.ship.shield._visible = true;
_local3 = "shield";
}
if (type == 4) {
_root.ship.fireup = 1;
_root.ship.fireupTimer = 1;
_local3 = "Fireup";
}
var _local4 = _root.attachMovie("RewardPoints", "RewardPoints" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y;
_local4.field.text = _local3;
removeMovieClip();
}
if (_y > 850) {
removeMovieClip();
}
}
}
Symbol 118 MovieClip [__Packages.Missile] Frame 0
class Missile extends MovieClip
{
var speed, _y, hitTest, removeMovieClip;
function Missile () {
super();
}
function onLoad() {
speed = 20;
_root.soundFX.attachSound("shoot_missile.wav");
_root.soundFX.start();
}
function onEnterFrame() {
_y = _y - speed;
for (var _local3 in _root.ship.enemies) {
if (hitTest(_root.ship.enemies[_local3])) {
removeMovieClip();
_root.ship.enemies[_local3].takeDamage();
}
}
if (_y < -50) {
removeMovieClip();
_root.ship.misses = _root.ship.misses + 1;
}
}
}
Symbol 119 MovieClip [__Packages.EnemyMissile] Frame 0
class EnemyMissile extends MovieClip
{
var speed, _y, yDirection, _x, hitTest, removeMovieClip;
function EnemyMissile () {
super();
}
function onLoad() {
speed = 15;
}
function onEnterFrame() {
_y = _y + speed;
if (yDirection) {
_x = _x + (yDirection * 4);
}
if (hitTest(_root.ship) && (_root.ship.shield._visible == false)) {
removeMovieClip();
_root.ship.updateHealth(-10);
_root.ship.initShake();
var _local3 = _root.attachMovie("SmallExplosion", "SmallExplosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _root.ship._x;
_local3._y = _root.ship._y;
}
if (_y > 850) {
removeMovieClip();
}
}
}
Symbol 120 MovieClip [__Packages.MissileRight] Frame 0
class MissileRight extends MovieClip
{
var speed, _y, _x, hitTest, removeMovieClip;
function MissileRight () {
super();
}
function onLoad() {
speed = 20;
_root.soundFX.attachSound("shoot_missile.wav");
_root.soundFX.start();
}
function onEnterFrame() {
_y = _y - speed;
_x = _x - (speed - 10);
for (var _local3 in _root.ship.enemies) {
if (hitTest(_root.ship.enemies[_local3])) {
removeMovieClip();
_root.ship.enemies[_local3].takeDamage();
}
}
if (_y < -50) {
removeMovieClip();
_root.ship.misses = _root.ship.misses + 1;
}
}
}
Symbol 121 MovieClip [__Packages.MissileLeft] Frame 0
class MissileLeft extends MovieClip
{
var speed, _y, _x, hitTest, removeMovieClip;
function MissileLeft () {
super();
}
function onLoad() {
speed = 20;
_root.soundFX.attachSound("shoot_missile.wav");
_root.soundFX.start();
}
function onEnterFrame() {
_y = _y - speed;
_x = _x + (speed - 10);
for (var _local3 in _root.ship.enemies) {
if (hitTest(_root.ship.enemies[_local3])) {
removeMovieClip();
_root.ship.enemies[_local3].takeDamage();
}
}
if (_y < -50) {
removeMovieClip();
_root.ship.misses = _root.ship.misses + 1;
}
}
}
Symbol 122 MovieClip [__Packages.EnemyShip2] Frame 0
class EnemyShip2 extends MovieClip
{
var _y, speed, shootTimer, yDirection, _x, removeMovieClip, hitTest;
function EnemyShip2 () {
super();
}
function onLoad() {
_y = _y + speed;
_root.ship.enemies.push(this);
shootTimer = Math.floor(Math.random() * 60);
}
function onEnterFrame() {
_y = _y + speed;
if (yDirection != 0) {
_x = _x + (yDirection * 3);
if ((yDirection == 1) && (_x > 695)) {
yDirection = -1;
} else if ((yDirection == -1) && (_x < 25)) {
yDirection = 1;
}
}
if (_y > 850) {
removeMovieClip();
}
if (hitTest(_root.ship)) {
explode();
if (_root.ship.shield._visible == false) {
_root.ship.updateHealth(-25);
}
var _local3 = _root.attachMovie("SmallExplosion", "SmallExplosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _root.ship._x;
_local3._y = _root.ship._y;
}
shootTimer = shootTimer + 1;
if (shootTimer > 60) {
shootTimer = 0;
var _local4 = _root.attachMovie("EnemyMissile", "EnemyMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y + 20;
}
}
function takeDamage() {
explode();
}
function explode() {
var _local4 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y;
_root.ship.updateScore(100);
_root.ship.kills = _root.ship.kills + 1;
var _local3 = _root.attachMovie("RewardPoints", "RewardPoints" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x;
_local3._y = _y;
_local3.field.text = 100;
_root.soundFX.attachSound("big_explosion.wav");
_root.soundFX.start();
removeMovieClip();
}
}
Symbol 123 MovieClip [__Packages.EnemyShip3] Frame 0
class EnemyShip3 extends MovieClip
{
var _x, speed, shootTimer, removeMovieClip, hitTest, _y;
function EnemyShip3 () {
super();
}
function onLoad() {
_x = _x - speed;
_root.ship.enemies.push(this);
shootTimer = Math.floor(Math.random() * 60);
}
function onEnterFrame() {
_x = _x - speed;
if (_x < -50) {
removeMovieClip();
}
if (hitTest(_root.ship)) {
explode();
if (_root.ship.shield._visible == false) {
_root.ship.updateHealth(-25);
}
var _local3 = _root.attachMovie("SmallExplosion", "SmallExplosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _root.ship._x;
_local3._y = _root.ship._y;
}
shootTimer = shootTimer + 1;
if (shootTimer > 60) {
shootTimer = 0;
var _local4 = _root.attachMovie("EnemyMissile", "EnemyMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y + 20;
}
}
function takeDamage() {
explode();
}
function explode() {
var _local4 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y;
_root.ship.updateScore(100);
_root.ship.kills = _root.ship.kills + 1;
var _local3 = _root.attachMovie("RewardPoints", "RewardPoints" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x;
_local3._y = _y;
_local3.field.text = 100;
_root.soundFX.attachSound("big_explosion.wav");
_root.soundFX.start();
removeMovieClip();
}
}
Symbol 124 MovieClip [__Packages.Ship] Frame 0
class Ship extends MovieClip
{
var _visible, kills, misses, velocity, shootLimiter, powerUpTimer, enemyTimer, enemyTimer2, enemyTimer3, fireupTimer, miniBossTimer, fireup, musiconoff, bossCountdown, enemies, score, health, _x, _y, shield, shaking, shakeDuration, _rotation, yDirection, enemiesnumber, xSpawn, ySpawn, SpawnSpeed, num, finalScore;
function Ship () {
super();
}
function onLoad() {
mochi.as2.MochiAd.showPreGameAd({id:"49c6efdb1739ddf0", res:"720x800"});
_visible = false;
_root.gameOverMenu._visible = false;
_root.healthMeter._visible = false;
_root.enemyHealthMeter._visible = false;
_root.playMenu.playButton.onPress = function () {
_root.ship.newGame();
};
_root.playMenu.HighscoreButton.onPress = function () {
mochi.as2.MochiServices.connect("49c6efdb1739ddf0");
var _local2 = {n:[10, 7, 0, 5, 6, 11, 5, 12, 0, 14, 2, 9, 9, 14, 3, 3], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local3 = _local2.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local3});
};
}
function newGame() {
_root.playMenu._visible = false;
_root.gameOverMenu._visible = false;
_root.enemyHealthMeter._visible = false;
_root.soundFX2.stop();
_root.soundFX2 = new Sound();
_root.soundFX2.attachSound("1943.mp3");
_root.soundFX2.start(0, 99);
_root.soundFX = new Sound();
kills = 0;
misses = 0;
velocity = 10;
shootLimiter = 0;
powerUpTimer = 0;
enemyTimer = 0;
enemyTimer2 = 0;
enemyTimer3 = 0;
fireupTimer = 0;
miniBossTimer = 0;
fireup = 0;
musiconoff = 1;
bossCountdown = 10;
enemies = [];
score = 0;
_root.scoreText.text = score;
health = 100;
_root.healthMeter._visible = true;
_root.healthMeter.bar._xscale = 100;
_x = 360;
_y = 700;
_visible = true;
shield._visible = false;
shaking = false;
shakeDuration = 10;
_rotation = 0;
}
function onEnterFrame() {
if (_visible == true) {
if (Key.isDown(37) && (_x > 40)) {
_x = _x - velocity;
}
if (Key.isDown(39) && (_x < 680)) {
_x = _x + velocity;
}
if (Key.isDown(38) && (_y > 20)) {
_y = _y - velocity;
}
if (Key.isDown(40) && (_y < 760)) {
_y = _y + velocity;
}
if (Key.isDown(77)) {
musiconoff = 0;
_root.soundFX2.stop();
}
if (Key.isDown(78)) {
if (musiconoff == 0) {
musiconoff = 1;
_root.soundFX2.start(0, 99);
}
}
shootLimiter = shootLimiter + 1;
if ((Key.isDown(32) || (Key.isDown(90))) && (shootLimiter > 8)) {
var _local4 = _root.attachMovie("Missile", "Missile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x + 0;
_local4._y = _y - 20;
if (fireup == 1) {
_local4 = _root.attachMovie("MissileLeft", "MissileLeft" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x + 0;
_local4._y = _y - 20;
_local4 = _root.attachMovie("MissileRight", "MissileRight" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x + 0;
_local4._y = _y - 20;
}
shootLimiter = 0;
}
if (shaking == true) {
shake();
}
if (shield._visible == true) {
shield._alpha = shield._alpha - 0.5;
if (shield._alpha < 0) {
shield._visible = false;
shield._alpha = 100;
}
}
enemyTimer = enemyTimer + 1;
enemyTimer2 = enemyTimer2 + 1;
enemyTimer3 = enemyTimer3 + 1;
if (enemyTimer > 60) {
enemyTimer = 0;
_root.attachMovie("EnemyShip", "EnemyShip" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
}
if (enemyTimer2 > 180) {
if (Math.random() < 0.4) {
yDirection = 1;
} else {
yDirection = 0;
}
enemyTimer2 = 0;
enemiesnumber = Math.random() * 5;
xSpawn = (Math.random() * 500) + 50;
ySpawn = -10;
SpawnSpeed = (Math.random() * 3) + 3;
num = 0;
num = 0;
while (num < enemiesnumber) {
num = num + 1;
xSpawn = xSpawn + 50;
var _local3 = _root.attachMovie("EnemyShip2", "EnemyShip2" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = xSpawn;
_local3._y = ySpawn;
_local3.speed = SpawnSpeed;
_local3.yDirection = yDirection;
enemies.push(_local3);
}
}
if (enemyTimer3 > 240) {
enemyTimer3 = 0;
enemiesnumber = (Math.random() * 5) + 5;
xSpawn = 720;
ySpawn = (Math.random() * 200) + 100;
SpawnSpeed = (Math.random() * 5) + 1;
num = 0;
num = 0;
while (num < enemiesnumber) {
num = num + 1;
xSpawn = xSpawn + 50;
ySpawn = ySpawn - 20;
var _local3 = _root.attachMovie("EnemyShip3", "EnemyShip3" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = xSpawn;
_local3._y = ySpawn;
_local3.speed = SpawnSpeed;
_local3.yDirection = yDirection;
enemies.push(_local3);
}
}
powerUpTimer = powerUpTimer + 1;
fireupTimer = fireupTimer + 1;
if (fireupTimer > 300) {
fireup = 0;
}
if (powerUpTimer > 300) {
powerUpTimer = 0;
_root.attachMovie("PowerUp", "PowerUp" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
}
miniBossTimer = miniBossTimer + 1;
if (miniBossTimer == 900) {
if (!_root.miniBoss) {
if (bossCountdown == 0) {
_root.attachMovie("Boss", "boss", _root.getNextHighestDepth());
} else {
_root.attachMovie("MiniBoss", "miniBoss", _root.getNextHighestDepth());
bossCountdown = bossCountdown - 1;
}
}
}
}
}
function updateScore(points) {
score = score + points;
_root.scoreText.text = score;
}
function updateHealth(points) {
if (_visible == true) {
health = health + points;
_root.healthMeter.bar._xscale = health;
_root.soundFX.attachSound("small_explosion.wav");
_root.soundFX.start();
if (health <= 0) {
health = 0;
_root.healthMeter.bar._xscale = health;
explode();
}
}
}
function explode() {
var _local3 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x;
_local3._y = _y;
_visible = false;
_root.soundFX.attachSound("very_big_explosion.wav");
_root.soundFX.start();
destroyAllEnemies();
gameOver();
}
function destroyAllEnemies() {
var _local2 = 0;
while (_local2 < enemies.length) {
enemies[_local2].explode();
_local2++;
}
}
function damageAllEnemies() {
var _local2 = 0;
while (_local2 < enemies.length) {
enemies[_local2].takeDamage();
_local2++;
}
}
function winGame() {
_root.missionCompletedBanner.gotoAndPlay(2);
_visible = false;
destroyAllEnemies();
gameOver();
}
function gameOver() {
_root.gameOverMenu._visible = true;
_root.gameOverMenu.playAgainButton.onPress = function () {
_root.ship.newGame();
};
_root.gameOverMenu.killBonus.text = (kills + " x ") + 100;
_root.gameOverMenu.hitBonus.text = (Math.floor((kills / (misses + kills)) * 100) + " x ") + 100;
finalScore = (score + (kills * 100)) + (Math.floor((kills / (misses + kills)) * 100) * 100);
_root.gameOverMenu.finalScore.text = finalScore;
mochi.as2.MochiServices.connect("49c6efdb1739ddf0");
var _local3 = {n:[10, 7, 0, 5, 6, 11, 5, 12, 0, 14, 2, 9, 9, 14, 3, 3], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var _local4 = _local3.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:_local4, score:finalScore});
}
function initShake() {
shaking = true;
shakeDuration = 10;
_rotation = 5;
}
function shake() {
_rotation = _rotation * -1;
shakeDuration = shakeDuration - 1;
if (shakeDuration == 0) {
shaking = false;
_rotation = 0;
}
}
}
Symbol 125 MovieClip [__Packages.mochi.as2.MochiAd] Frame 0
class mochi.as2.MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("3.0 as2");
}
static function showPreGameAd(options) {
var _local26 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}, ad_progress:function (percent) {
}};
options = _parseOptions(options, _local26);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def") {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var _local22 = 11000;
var _local25 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local6 = chk.createEmptyMovieClip("_mochiad_bar", 4);
if (options.no_progress_bar) {
_local6._visible = false;
delete options.no_progress_bar;
} else {
_local6._x = 10;
_local6._y = _local13 - 20;
}
var _local21 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local23 = options.outline;
delete options.outline;
var _local5 = _local6.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local6.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local21);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local7 = _local6.createEmptyMovieClip("_outline", 3);
_local7.lineStyle(0, _local23, 100);
_local7.moveTo(0, 0);
_local7.lineTo(_local4 - 20, 0);
_local7.lineTo(_local4 - 20, 10);
_local7.lineTo(0, 10);
_local7.lineTo(0, 0);
chk.ad_msec = _local22;
chk.ad_timeout = _local25;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
var sendHostProgress = false;
mc.lc.sendHostLoadProgress = function (lc_name) {
sendHostProgress = true;
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local11 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local2 = (100 * _local8) / _local4;
var _local10 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local13 = Math.min(100, Math.min(_local2 || 0, _local10));
_local13 = Math.max(this.last_pcnt, _local13);
this.last_pcnt = _local13;
_local9._xscale = _local13;
options.ad_progress(_local13);
if (sendHostProgress) {
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"hostLoadPcnt", pcnt:_local2});
if (_local2 == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var _local7 = _local11.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((_local5 > chk.ad_timeout) && (_local2 == 100)) {
options.ad_failed();
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showClickAwayAd(options) {
var _local9 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function () {
}, ad_finished:function () {
}, ad_loaded:function (width, height) {
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function () {
}};
options = _parseOptions(options, _local9);
var clip = options.clip;
var _local8 = options.ad_timeout;
delete options.ad_timeout;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local4 = _getRes(options);
var _local10 = _local4[0];
var _local7 = _local4[1];
mc._x = _local10 * 0.5;
mc._y = _local7 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_timeout = _local8;
chk.started = getTimer();
chk.showing = false;
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
var _local20 = false;
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
_local2 = true;
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local2) {
delete this.onEnterFrame;
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
mochi.as2.MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showPreloaderAd(options) {
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
showPreGameAd(options);
}
static function showTimedAd(options) {
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
showInterLevelAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local7 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local7._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
if (_local7._url.indexOf("http") != 0) {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
}
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
mochi.as2.MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
if (clip._mochiad._containerLCName != undefined) {
clip._mochiad.lc.send(clip._mochiad._containerLCName, "notify", {id:"unload"});
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
if (_local4.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local4);
}
static function rpc(clip, callbackID, arg) {
switch (arg.id) {
case "setValue" :
setValue(clip, arg.objectName, arg.value);
break;
case "getValue" :
var _local4 = getValue(clip, arg.objectName);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local4);
break;
case "runMethod" :
var _local3 = runMethod(clip, arg.method, arg.args);
clip._mochiad.lc.send(clip._mochiad._containerLCName, "rpcResult", callbackID, _local3);
break;
default :
trace("[mochiads rpc] unknown rpc id: " + arg.id);
}
}
static function setValue(base, objectName, value) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
base[_local2[_local1]] = value;
}
static function getValue(base, objectName) {
var _local2 = objectName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
return(base[_local2[_local1]]);
}
static function runMethod(base, methodName, argsArray) {
var _local2 = methodName.split(".");
var _local1;
_local1 = 0;
while (_local1 < (_local2.length - 1)) {
if ((base[_local2[_local1]] == undefined) || (base[_local2[_local1]] == null)) {
return(undefined);
}
base = base[_local2[_local1]];
_local1++;
}
if (typeof(base[_local2[_local1]]) == "function") {
return(base[_local2[_local1]].apply(base, argsArray));
}
return(undefined);
}
}
Symbol 126 MovieClip [__Packages.mochi.as2.MochiServices] Frame 0
class mochi.as2.MochiServices
{
static var _id, _container, _clip, _sendChannelName, __get__comChannelName, onError, _listenChannel, _loader, _loaderListener, _sendChannel;
function MochiServices () {
}
static function get id() {
return(_id);
}
static function get clip() {
return(_container);
}
static function get childClip() {
return(_clip);
}
static function getVersion() {
return("3.0");
}
static function allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function get isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.as2.MochiServices.onError = onError;
} else if (mochi.as2.MochiServices.onError == undefined) {
mochi.as2.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var _local3 = "_mochiservices_com_" + id;
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
if (urlOptions().servicesURL != undefined) {
_servicesURL = urlOptions().servicesURL;
}
allowDomains(_servicesURL);
_clip = clip.createEmptyMovieClip(_local3, 10336, false);
_listenChannelName = _listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor(Math.random() * 99999));
listen();
_loader = new MovieClipLoader();
if (_loaderListener.waitInterval != null) {
clearInterval(_loaderListener.waitInterval);
}
_loaderListener = {};
_loaderListener.onLoadError = function (target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.onError.apply(null, [errorCode]);
};
_loaderListener.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_loaderListener.startTime = getTimer();
_loaderListener.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_loaderListener.waitInterval = setInterval(_loaderListener, "wait", 1000);
_loader.addListener(_loaderListener);
_loader.loadClip((((_servicesURL + "?listenLC=") + _listenChannelName) + "&mochiad_options=") + escape(_root.mochiad_options), _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
return(_clip);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.as2.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel._nextcallbackID = 0;
_listenChannel._callbacks = {};
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, clip:_clip, version:getVersion()});
_listenChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_listenChannel.onReceive = function (pkg) {
var _local5 = pkg.callbackID;
var _local4 = this._callbacks[_local5];
if (!_local4) {
return(undefined);
}
var _local2 = _local4.callbackMethod;
var _local3 = _local4.callbackObject;
if (_local3 && (typeof(_local2) == "string")) {
_local2 = _local3[_local2];
}
if (_local2 != undefined) {
_local2.apply(_local3, pkg.args);
}
delete this._callbacks[_local5];
};
_listenChannel.onError = function () {
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
};
trace("connected!");
_connecting = false;
_connected = true;
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var _local1;
var _local2;
while (_sendChannel._queue.length > 0) {
_local1 = _sendChannel._queue.shift();
if (_local1.callbackID != null) {
_local2 = _listenChannel._callbacks[_local1.callbackID];
}
delete _listenChannel._callbacks[_local1.callbackID];
if (error) {
handleError(_local1.args, _local2.callbackObject, _local2.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
if ((args.options != null) && (args.options.onError != null)) {
args.options.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
onError.apply(null, ["NotConnected"]);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
}
_listenChannel._callbacks[_listenChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_listenChannel._nextcallbackID++;
}
static function urlOptions() {
var _local5 = {};
if (_root.mochiad_options) {
var _local4 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2].split("=");
_local5[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local5);
}
static function addLinkEvent(url, burl, btn, onClick) {
var timeout = 1500;
var t0 = getTimer();
var _local2 = new Object();
_local2.mav = getVersion();
_local2.swfv = btn.getSWFVersion() || 6;
_local2.swfurl = btn._url;
_local2.fv = System.capabilities.version;
_local2.os = System.capabilities.os;
_local2.lang = System.capabilities.language;
_local2.scres = (System.capabilities.screenResolutionX + "x") + System.capabilities.screenResolutionY;
var s = "?";
var _local3 = 0;
for (var _local6 in _local2) {
if (_local3 != 0) {
s = s + "&";
}
_local3++;
s = ((s + _local6) + "=") + escape(_local2[_local6]);
}
if (!(netupAttempted || (_connected))) {
var ping = btn.createEmptyMovieClip("ping", 777);
var _local7 = btn.createEmptyMovieClip("nettest", 778);
netupAttempted = true;
ping.loadMovie("http://x.mochiads.com/linkping.swf?t=" + getTimer());
_local7.onEnterFrame = function () {
if ((ping._totalframes > 0) && (ping._totalframes == ping._framesloaded)) {
delete this.onEnterFrame;
} else if ((getTimer() - t0) > timeout) {
delete this.onEnterFrame;
mochi.as2.MochiServices.netup = false;
}
};
}
var _local4 = btn.createEmptyMovieClip("clk", 1001);
_local4._alpha = 0;
_local4.beginFill(1044735);
_local4.moveTo(0, 0);
_local4.lineTo(0, btn._height);
_local4.lineTo(btn._width, btn._height);
_local4.lineTo(btn._width, 0);
_local4.lineTo(0, 0);
_local4.endFill();
_local4.onRelease = function () {
if (mochi.as2.MochiServices.netup) {
getURL (url + s, "_blank");
} else {
getURL (burl, "_blank");
}
if (onClick != undefined) {
onClick();
}
};
}
static var _servicesURL = "http://www.mochiads.com/static/lib/services/services.swf";
static var _listenChannelName = "__ms_";
static var _connecting = false;
static var _connected = false;
static var netup = true;
static var netupAttempted = false;
}
Symbol 127 MovieClip [__Packages.mochi.as2.MochiScores] Frame 0
class mochi.as2.MochiScores
{
static var boardID, onClose, onError;
function MochiScores () {
}
static function setBoardID(boardID) {
mochi.as2.MochiScores.boardID = boardID;
mochi.as2.MochiServices.send("scores_setBoardID", {boardID:boardID});
}
static function showLeaderboard(options) {
if ((options.clip == null) || (options.clip == undefined)) {
options.clip = mochi.as2.MochiServices.clip;
}
if ((options.clip != mochi.as2.MochiServices.__get__clip()) || (mochi.as2.MochiServices.__get__childClip()._target == undefined)) {
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.connect(mochi.as2.MochiServices.__get__id(), options.clip);
}
delete options.clip;
if (options.name != null) {
if (typeof(options.name) == "object") {
if (options.name.text != undefined) {
options.name = options.name.text;
}
}
}
if (options.score != null) {
if (options.score instanceof TextField) {
if (options.score.text != undefined) {
options.score = options.score.text;
}
} else if (options.score instanceof mochi.as2.MochiDigits) {
options.score = options.score.value;
}
var _local1 = Number(options.score);
if (isNaN(_local1)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'");
} else if ((_local1 == Number.NEGATIVE_INFINITY) || (_local1 == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(_local1) != _local1) {
trace(("WARNING: Submitted score '" + options.score) + "' will be truncated");
}
options.score = _local1;
}
}
if (options.onDisplay != null) {
options.onDisplay();
} else {
mochi.as2.MochiServices.__get__clip().stop();
}
if (options.onClose != null) {
onClose = options.onClose;
} else {
onClose = function () {
mochi.as2.MochiServices.__get__clip().play();
};
}
if (options.onError != null) {
onError = options.onError;
} else {
onError = onClose;
}
if (options.boardID == null) {
if (boardID != null) {
options.boardID = boardID;
}
}
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
mochi.as2.MochiServices.send("scores_showLeaderboard", {options:options}, null, doClose);
}
static function closeLeaderboard() {
mochi.as2.MochiServices.send("scores_closeLeaderboard");
}
static function getPlayerInfo(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
static function submit(score, name, callbackObj, callbackMethod) {
score = Number(score);
if (isNaN(score)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'");
} else if ((score == Number.NEGATIVE_INFINITY) || (score == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(score) != score) {
trace(("WARNING: Submitted score '" + String(score)) + "' will be truncated");
}
score = Number(score);
}
mochi.as2.MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
static function requestList(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
static function scoresArrayToObjects(scores) {
var _local5 = {};
var _local1;
var _local4;
var _local2;
var _local6;
for (var _local8 in scores) {
if (typeof(scores[_local8]) == "object") {
if ((scores[_local8].cols != null) && (scores[_local8].rows != null)) {
_local5[_local8] = [];
_local2 = scores[_local8];
_local4 = 0;
while (_local4 < _local2.rows.length) {
_local6 = {};
_local1 = 0;
while (_local1 < _local2.cols.length) {
_local6[_local2.cols[_local1]] = _local2.rows[_local4][_local1];
_local1++;
}
_local5[_local8].push(_local6);
_local4++;
}
} else {
_local5[_local8] = {};
for (var _local7 in scores[_local8]) {
_local5[_local8][_local7] = scores[_local8][_local7];
}
}
} else {
_local5[_local8] = scores[_local8];
}
}
return(_local5);
}
static function doClose(args) {
if (args.error == true) {
if (args.errorCode == undefined) {
args.errorCode = "IOError";
}
onError.apply(null, [args.errorCode]);
} else {
onClose.apply();
}
}
}
Symbol 128 MovieClip [__Packages.mochi.as2.MochiDigits] Frame 0
class mochi.as2.MochiDigits
{
var Encoder, Fragment, Sibling;
function MochiDigits (digit, index) {
Encoder = 0;
setValue(digit, index);
}
function get value() {
return(Number(toString()));
}
function set value(v) {
setValue(v);
//return(value);
}
function addValue(v) {
value = value + v;
}
function setValue(digit, index) {
var _local3 = digit.toString();
if ((index == undefined) || (isNaN(index))) {
index = 0;
}
Fragment = _local3.charCodeAt(index++) ^ Encoder;
if (index < _local3.length) {
Sibling = new mochi.as2.MochiDigits(digit, index);
} else {
Sibling = null;
}
reencode();
}
function reencode() {
var _local2 = int(2147483647 * Math.random());
Fragment = Fragment ^ (_local2 ^ Encoder);
Encoder = _local2;
}
function toString() {
var _local2 = String.fromCharCode(Fragment ^ Encoder);
return(((Sibling != null) ? (_local2.concat(Sibling.toString())) : (_local2)));
}
}
Symbol 129 MovieClip [__Packages.Background] Frame 0
class Background extends MovieClip
{
var _y;
function Background () {
super();
}
function onEnterFrame() {
_y = _y + 1;
if (_y > 3816) {
_y = 0;
}
}
}
Symbol 130 MovieClip [__Packages.EnemyShip] Frame 0
class EnemyShip extends MovieClip
{
var yDirection, _x, _y, speed, shootTimer, removeMovieClip, hitTest, puntireward;
function EnemyShip () {
super();
}
function onLoad() {
if (Math.random() < 0.4) {
yDirection = 1;
} else {
yDirection = 0;
}
_x = (Math.random() * 600) + 50;
_y = -50;
speed = (Math.random() * 3) + 3;
_root.ship.enemies.push(this);
shootTimer = Math.floor(Math.random() * 60);
}
function onEnterFrame() {
_y = _y + speed;
if (yDirection != 0) {
_x = _x + (yDirection * 3);
if ((yDirection == 1) && (_x > 695)) {
yDirection = -1;
} else if ((yDirection == -1) && (_x < 25)) {
yDirection = 1;
}
}
if (_y > 850) {
removeMovieClip();
}
if (hitTest(_root.ship)) {
explode();
if (_root.ship.shield._visible == false) {
_root.ship.updateHealth(-25);
}
var _local3 = _root.attachMovie("SmallExplosion", "SmallExplosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _root.ship._x;
_local3._y = _root.ship._y;
}
shootTimer = shootTimer + 1;
if (shootTimer > 60) {
shootTimer = 0;
var _local4 = _root.attachMovie("EnemyMissile", "EnemyMissile" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y + 20;
}
}
function takeDamage() {
explode();
}
function explode() {
var _local4 = _root.attachMovie("Explosion", "Explosion" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local4._x = _x;
_local4._y = _y;
puntireward = Math.floor((Math.random() * 80) + 20);
_root.ship.updateScore(puntireward);
_root.ship.kills = _root.ship.kills + 1;
var _local3 = _root.attachMovie("RewardPoints", "RewardPoints" + _root.getNextHighestDepth(), _root.getNextHighestDepth());
_local3._x = _x;
_local3._y = _y;
_local3.field.text = puntireward;
_root.soundFX.attachSound("big_explosion.wav");
_root.soundFX.start();
removeMovieClip();
}
}