Combined Code
// unknown tag 88 length 106
movieClip 2 Init {
#initclip
Object.registerClass('Init', Init);
#endinitclip
}
movieClip 23 Loading_art {
#initclip
Object.registerClass('Loading_art', Loading_art);
#endinitclip
}
movieClip 30 Loading_button {
#initclip
Object.registerClass('Loading_button', Loading_button);
#endinitclip
}
movieClip 31 Loading_screen {
#initclip
Object.registerClass('Loading_screen', Loading_screen);
#endinitclip
}
movieClip 32 Reminder {
#initclip
Object.registerClass('Reminder', Reminder);
#endinitclip
}
movieClip 37 Submit {
#initclip
Object.registerClass('Submit', Submit);
#endinitclip
}
movieClip 150 Door {
#initclip
Object.registerClass('Door', Door);
#endinitclip
}
movieClip 1111 Slave {
#initclip
Object.registerClass('Slave', Slave);
#endinitclip
}
movieClip 1112 Start {
#initclip
Object.registerClass('Start', Start);
#endinitclip
}
frame 1 {
_accProps = new Object();
_accProps.forceSimple = true;
}
frame 1 {
stop();
}
movieClip 2124 __Packages.Loading_art {
#initclip
if (!_global.Loading_art) {
var v1 = function () {
super();
};
_global.Loading_art = v1;
_global.Loading_art extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.gotoAndStop(this.frame);
this.start_y = this._y;
if (this.identity == 'leg') {
this._y -= 216;
this._visible = true;
this.descending = false;
this.descend_timer = 0;
switch (this.frame) {
case 2:
this.descend_speed = 10;
this.descent_percentage = 12;
break;
case 3:
this.descend_speed = 20;
this.descent_percentage = 24;
break;
case 4:
this.descend_speed = 30;
this.descent_percentage = 36;
break;
case 5:
this.descend_speed = 40;
this.descent_percentage = 48;
break;
case 6:
this.descend_speed = 50;
this.descent_percentage = 60;
break;
case 7:
this.descend_speed = 60;
this.descent_percentage = 72;
break;
case 8:
this.descend_speed = 70;
this.descent_percentage = 84;
break;
case 9:
this.descend_speed = 80;
this.descent_percentage = 96;
}
}
};
v2.onEnterFrame = function () {
if (this.identity == 'leg') {
this.getDown();
}
};
v2.getDown = function () {
if (this.descend_timer < this.descend_speed) {
++this.descend_timer;
}
if (!this.descending) {
if (this.loading.percent_loaded >= this.descent_percentage) {
this.descending = true;
}
} else {
if (this.descend_timer == this.descend_speed) {
if (this._y < this.start_y) {
this._y += 8;
if (this._y > this.start_y) {
this._y = this.start_y;
}
}
}
}
};
ASSetPropFlags(_global.Loading_art.prototype, null, 1);
}
#endinitclip
}
movieClip 2125 __Packages.Loading_button {
#initclip
if (!_global.Loading_button) {
var v1 = function () {
super();
};
_global.Loading_button = v1;
_global.Loading_button extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.gotoAndStop(1);
this.fully_loaded = false;
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
this.mouse_over = true;
} else {
this.mouse_over = false;
}
};
v2.onMouseDown = function () {
if (this.hitTest(_root._xmouse, _root._ymouse, true) and this.fully_loaded) {
_root.play();
}
};
v2.onEnterFrame = function () {
if (this.fully_loaded) {
if (this.mouse_over) {
this.gotoAndStop(3);
} else {
this.gotoAndStop(2);
}
}
};
v2.onRollOver = function () {
this.mouse_over = true;
};
v2.onRollOut = function () {
this.mouse_over = false;
};
ASSetPropFlags(_global.Loading_button.prototype, null, 1);
}
#endinitclip
}
movieClip 2126 __Packages.Loading_screen {
#initclip
if (!_global.Loading_screen) {
var v1 = function () {
super();
};
_global.Loading_screen = v1;
_global.Loading_screen extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.arts = [];
this.loading_button = _root.attachMovie('Loading_button', 'Loading_button', _root.getNextHighestDepth());
this.loading_button._x = 102;
this.loading_button._y = 346;
this.buildArt('leg', 3, 124, 66, true);
this.buildArt('leg', 5, 236, 66, true);
this.buildArt('leg', 7, 358, 66, true);
this.buildArt('leg', 9, 486, 66, true);
this.buildArt('slave', 1, 44, 140, false);
this.buildArt('leg', 2, 68, 66, true);
this.buildArt('leg', 4, 182, 66, true);
this.buildArt('leg', 6, 308, 66, true);
this.buildArt('leg', 8, 382, 66, true);
this.buildArt('frame', 10, 0, 0, false);
this.percent_loaded = 0;
this.fully_loaded = false;
};
v2.buildArt = function (identity, frame, where_x, where_y, invisible) {
var v3 = _root.attachMovie('Loading_art', 'Loading_art', _root.getNextHighestDepth());
v3.identity = identity;
v3.frame = frame;
v3._x = where_x;
v3._y = where_y;
v3._visible = !invisible;
v3.loading = this;
this.arts.push(v3);
};
v2.onEnterFrame = function () {
var v4 = _root.getBytesLoaded() / 1024;
var v3 = _root.getBytesTotal() / 1024;
this.percent_loaded = Math.round((v4 / v3) * 100);
if (!this.fully_loaded) {
if (_root.getBytesLoaded() == _root.getBytesTotal()) {
this.fully_loaded = true;
this.loading_button.fully_loaded = true;
this.loading_button.gotoAndStop(2);
}
} else {
if (_root._currentframe == 3) {
_root.gotoAndStop(3);
this.startGame();
}
}
};
v2.startGame = function () {
for (var v3 in this.arts) {
this.arts[v3].removeMovieClip();
}
this.loading_button.removeMovieClip();
var v4 = _root.attachMovie('Logo', 'Logo', _root.getNextHighestDepth());
this.removeMovieClip();
};
ASSetPropFlags(_global.Loading_screen.prototype, null, 1);
}
#endinitclip
}
movieClip 2127 __Packages.Reminder {
#initclip
if (!_global.Reminder) {
var v1 = function () {
super();
};
_global.Reminder = v1;
_global.Reminder extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.room_width = 608;
this.room_height = 480;
this.reminder_timer = 0;
this.reminder_speed = 100;
this.key_clear = false;
this.art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art.gotoAndStop(41);
this.swapDepths(_root.getNextHighestDepth());
this.bg = this.createEmptyMovieClip('bg', _root.getNextHighestDepth());
this.flash_timer = 0;
this.flash_speed = 0;
this.last_flash = 0;
this.sounds.landing.start();
this.flashBackground();
};
v2.onEnterFrame = function () {
this.fadeBackground();
++this.reminder_timer;
if (this.reminder_timer == this.reminder_speed) {
this.titleScreen();
}
if (Key.isDown(32) and this.key_clear) {
this.startGame();
}
if (!Key.isDown(32)) {
this.key_clear = true;
}
};
v2.flashBackground = function () {
var v3 = this.hexColor('blue');
this.last_flash = v3;
this.bg.removeMovieClip();
this.bg = this.createEmptyMovieClip('bg', _root.getNextHighestDepth());
this.bg.beginFill(v3);
this.bg.moveTo(0, 0);
this.bg.lineTo(this.room_width, 0);
this.bg.lineTo(this.room_width, this.room_height);
this.bg.lineTo(0, this.room_height);
this.bg.lineTo(0, 0);
this.bg.endFill();
};
v2.fadeBackground = function () {
var v2 = 20;
if (this.bg._alpha >= 0) {
this.bg._alpha -= v2;
}
};
v2.randomColor = function () {
var v2 = this.last_flash;
while (v2 == this.last_flash) {
var v3 = Math.ceil(Math.random() * 7);
switch (v3) {
case 1:
v2 = this.hexColor('white');
break;
case 2:
v2 = this.hexColor('cyan');
break;
case 3:
v2 = this.hexColor('purple');
break;
case 4:
v2 = this.hexColor('yellow');
break;
case 5:
v2 = this.hexColor('red');
break;
case 6:
v2 = this.hexColor('green');
break;
case 7:
v2 = this.hexColor('blue');
}
}
return v2;
};
v2.hexColor = function (color) {
switch (color) {
case 'white':
return 16579836;
break;
case 'cyan':
return 64764;
break;
case 'pink':
return 14483550;
break;
case 'purple':
return 6881446;
break;
case 'yellow':
return 14012672;
break;
case 'red':
return 16125711;
break;
case 'green':
return 64512;
break;
case 'blue':
return 4023295;
}
};
v2.startGame = function () {
this.sounds.title_loop.stop();
this.sounds.landing.stop();
var v3 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
v3.demo = false;
this.removeMe();
};
v2.titleScreen = function () {
this.sounds.removeMovieClip();
this.vocals.removeMovieClip();
this.art.removeMovieClip();
var v3 = _root.attachMovie('Title', 'Title', _root.getNextHighestDepth());
v3.no_music = true;
this.removeMe();
};
v2.removeMe = function () {
this.bg.removeMovieClip();
this.art.removeMe();
this.removeMovieClip();
};
ASSetPropFlags(_global.Reminder.prototype, null, 1);
}
#endinitclip
}
movieClip 2128 __Packages.Submit {
#initclip
if (!_global.Submit) {
var v1 = function () {
super();
};
_global.Submit = v1;
_global.Submit extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.frame = 1;
this.gotoAndStop(this.frame);
this.animation_timer = 0;
this.animation_speed = 20;
};
v2.onEnterFrame = function () {
if (this.animation_timer < this.animation_speed) {
++this.animation_timer;
} else {
this.animation_timer = 0;
if (this.frame == 1) {
this.frame = 2;
} else {
this.frame = 1;
}
this.gotoAndStop(this.frame);
}
};
ASSetPropFlags(_global.Submit.prototype, null, 1);
}
#endinitclip
}
movieClip 2129 __Packages.Door {
#initclip
if (!_global.Door) {
var v1 = function () {
super();
};
_global.Door = v1;
_global.Door extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.frame = 1;
this.swing_timer = 0;
this.swing_speed = 1;
this.close_timer = 0;
this.close_speed = 20;
this.opened = false;
this.animateMe();
this.shoving = false;
if (this.game.first_stage) {
this.shove_timer = Math.floor(Math.random() * 201) + 100;
} else {
this.shove_timer = 0;
}
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.animateMe();
if (this.shove_timer > 0) {
--this.shove_timer;
if (this.shove_timer == 0) {
switch (this.place) {
case 'upleft':
this.game.releaseSlave('nw', 'dagger');
break;
case 'upright':
this.game.releaseSlave('ne', 'dagger');
break;
case 'downleft':
this.game.releaseSlave('sw', 'dagger');
break;
case 'downright':
this.game.releaseSlave('se', 'dagger');
}
}
}
}
};
v2.swingOpen = function (slow) {
if (!this.game.first_stage) {
this.opened = true;
this.swing_timer = 0;
if (slow) {
this.close_timer = -this.close_speed * 4;
} else {
this.close_timer = 0;
}
}
};
v2.getShoved = function () {
this.shoving = true;
if (this._y < this.game.room_height / 2) {
this._y -= 48;
}
};
v2.animateMe = function () {
var v3 = 0;
switch (this.game.area) {
case 2:
v3 = 12;
break;
case 3:
v3 = 24;
break;
case 4:
v3 = 36;
break;
case 5:
v3 = 36;
}
var v4 = 0;
switch (this.place) {
case 'upright':
v4 = 3;
break;
case 'downleft':
v4 = 6;
break;
case 'downright':
v4 = 9;
}
if (this.shoving) {
var v2 = 0;
if (this._y > this.game.room_height / 2) {
v2 = 4;
}
++this.frame;
if (this.frame > 10) {
this.frame = 1;
}
switch (this.frame) {
case 1:
this.gotoAndStop(49 + v2);
break;
case 2:
this.gotoAndStop(50 + v2);
break;
case 3:
this.gotoAndStop(51 + v2);
break;
case 4:
case 5:
this.gotoAndStop(52 + v2);
break;
case 6:
case 7:
this.gotoAndStop(51 + v2);
break;
case 8:
case 9:
this.gotoAndStop(50 + v2);
break;
case 10:
case 11:
this.gotoAndStop(49 + v2);
}
} else {
if (this.opened) {
if (this.frame == 1) {
this.frame = 2;
} else {
if (this.frame == 2) {
if (this.swing_timer < this.swing_speed) {
++this.swing_timer;
} else {
this.swing_timer = 0;
this.frame = 3;
}
} else {
if (!this.game.end_of_level) {
if (this.close_timer < this.close_speed) {
this.close_timer += this.game.room_speed;
} else {
this.close_timer = 0;
this.opened = false;
}
}
}
}
} else {
if (this.frame == 3) {
this.frame = 2;
} else {
if (this.frame == 2) {
if (this.swing_timer < this.swing_speed) {
++this.swing_timer;
} else {
this.swing_timer = 0;
this.frame = 1;
}
}
}
}
this.gotoAndStop(this.frame + v3 + v4);
}
};
ASSetPropFlags(_global.Door.prototype, null, 1);
}
#endinitclip
}
movieClip 2130 __Packages.Slave {
#initclip
if (!_global.Slave) {
var v1 = function () {
super();
};
_global.Slave = v1;
_global.Slave extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.collide_me = this.attachCollision(4);
this.collide_left = this.attachCollision(2);
this.collide_right = this.attachCollision(2);
this.collide_up = this.attachCollision(1);
this.collide_down = this.attachCollision(1);
this.updateCollision();
if (this.slave_type == 'tarantula') {
this.laser = _root.attachMovie('Laser', 'Laser', _root.getNextHighestDepth());
this.laser.mom = this;
this.laser.laser_type = 'tarantula';
this.game.objs.push(this.laser);
this.swapDepths(_root.getNextHighestDepth());
}
this.room_top = this.game.origin_y;
this.room_bottom = this.game.room_height - this.game.origin_y - 64;
this.move_timer = 0;
this.high_speed = true;
this.adjustSpeed();
this.checkGrid();
this.moved = false;
this.struggle_accelerate_timer = 0;
this.struggle_accelerate_speed = 32;
this.struggle_timer = 0;
this.struggle_start_speed = 8;
this.struggle_speed = this.struggle_start_speed;
this.reel_timer = 0;
this.reel_speed = 4;
this.escape_timer = 160;
if (this.game.laser_off) {
this.escape_timer *= 4;
}
this.sparkle_speed = 4;
this.sparkle_timer = 0;
this.last_facing = this.facing;
this.next_facing = 'none';
this.backwards = this.findBackwards(this.facing);
if (this.facing == 'down') {
this.frame = 17;
} else {
this.frame = 25;
}
this.gotoAndStop(this.frame);
if (this.slave_state == 'cocooned') {
this.animateMe();
this.said_hello = true;
} else {
this.cocoon_wave = 'no';
this.slave_state = 'walking';
}
if (this.slave_type == 'princess') {
this.angry = true;
this.has_gem = false;
this.escape_timer *= 2;
} else {
this.angry = false;
this.has_gem = true;
}
this.escaping = false;
this.saw_her = false;
switch (this.slave_type) {
case 'dagger':
case 'shieldless':
this.score = 100;
break;
case 'shield':
this.score = 300;
break;
case 'gladiator':
this.score = 200;
break;
case 'alchemist':
this.score = 500;
break;
case 'princess':
this.score = 2000;
break;
case 'tarantula':
this.score = 15000;
}
if (this.said_hello == null) {
this.said_hello = false;
}
this.start_x = this._x;
this.start_y = this._y;
if (this.slave_type == 'tarantula') {
this.game.queen.tarantula = this;
this.said_hello = true;
}
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
if (this.slave_state == 'walking') {
this.checkGrid();
this.adjustSpeed();
if (this.aligned_with_grid) {
this.checkCollision();
}
if (this.slave_type != 'tarantula') {
this.escapeMe();
}
if (this.slave_type == 'gladiator' and (this.game.queen.queen_state == 'scuttling' or this.game.queen.queen_state == 'cocooned')) {
this.spotQueen();
}
if (this.aligned_with_grid and this.game.first_stage) {
this.shoveDoor();
}
this.moveMe();
this.updateCollision();
if (this.slave_type == 'tarantula') {
if (this.game.queen.laser_active or this.game.queen.queen_state == 'cocooned') {
this.laser.drawLaser(this.facing);
}
if (this.game.queen.queen_state != 'dead' and this.game.queen.queen_state != 'done') {
this._visible = this.game.queen._visible;
}
}
this.checkPlayer();
this.animateMe();
if (this.slave_type == 'princess') {
this.sparkleMe();
}
}
if (this.slave_state == 'cocooned') {
this.checkGrid();
this.adjustSpeed();
this.struggleMe();
this.checkPlayer();
this.animateMe();
}
} else {
if (this.slave_type == 'tarantula') {
this._visible = true;
}
}
};
v2.attachCollision = function (shape) {
var v3 = _root.attachMovie('Collision', 'Collision' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.gotoAndStop(shape);
v3._visible = false;
this.game.objs.push(v3);
return v3;
};
v2.sayHello = function () {
switch (this.slave_type) {
case 'princess':
this.game.sounds.playSound('spacebirds');
break;
case 'alchemist':
this.game.sounds.playSound('laugh');
break;
case 'gladiator':
this.game.sounds.playSound('toughguy');
break;
case 'shield':
this.game.sounds.playSound('elephant');
break;
default:
this.game.sounds.playSound('gremlin');
}
this.said_hello = true;
this.game.popTab();
};
v2.adjustSpeed = function () {
var v4 = this.game.room_speed;
var v5 = Math.abs(this.game.queen._x - this._x);
var v6 = Math.abs(this.game.queen._y - this._y);
if (this.angry and v4 < 4) {
++v4;
}
if (this.saw_her and v4 < 4 and this.slave_type == 'gladiator' and (v5 > 63 or v6 > 63)) {
++v4;
}
if ((this._x - this.game.origin_x) % 32 == 0 and (this._y - this.game.origin_y) % 32 == 0) {
if (this.slave_type == 'tarantula') {
this.high_speed = true;
if (Math.ceil(Math.random() * 5) > 2) {
this.high_speed = false;
}
}
if (v4 == 4) {
if (this.high_speed) {
this.high_speed = false;
} else {
this.high_speed = true;
}
}
}
if ((v4 == 4 or this.slave_type == 'tarantula') and !this.high_speed) {
--v4;
}
var v3 = this.move_speed;
var v2 = this.step_length;
if (this.slave_type == 'shield') {
switch (v4) {
case 1:
v3 = 2;
v2 = 4;
break;
case 2:
v3 = 2;
v2 = 4;
break;
case 3:
v3 = 1;
v2 = 4;
break;
case 4:
v3 = 1;
v2 = 4;
}
} else {
switch (v4) {
case 1:
v3 = 2;
v2 = 4;
break;
case 2:
v3 = 2;
v2 = 8;
break;
case 3:
v3 = 1;
v2 = 8;
break;
case 4:
v3 = 1;
v2 = 16;
}
}
if (this.slave_type == 'shield') {
if (this.game.shieldless and this.slave_state != 'cocooned') {
this.discardShield();
} else {
v3 *= 2;
}
}
if ((this._x - this.game.origin_x) % v2 == 0 and (this._y - this.game.origin_y) % v2 == 0) {
this.move_speed = v3;
this.step_length = v2;
}
};
v2.discardShield = function () {
this.puffSmoke();
this.game.messages.flashMessage('impatient slaves will toss their shields', true);
this.slave_type = 'shieldless';
this.score = 100;
};
v2.checkGrid = function () {
if ((this._x - this.game.origin_x) % 64 == 0 and (this._y - this.game.origin_y) % 64 == 0) {
this.aligned_with_grid = true;
} else {
this.aligned_with_grid = false;
}
this.grid_x = Math.floor((this._x - this.game.origin_x + 32) / 64);
this.grid_y = Math.floor((this._y - this.game.origin_y + 32) / 64);
};
v2.checkCollision = function () {
this.blocked_left = false;
this.blocked_right = false;
this.blocked_up = false;
this.blocked_down = false;
if (this.grid_x == 0) {
this.blocked_left = true;
}
if (this.grid_x == 8) {
this.blocked_right = true;
}
if (this.grid_y == 0) {
this.blocked_up = true;
}
if (this.grid_y == 6) {
this.blocked_down = true;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 3) {
this.blocked_up = true;
this.blocked_left = true;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 1) {
this.blocked_up = true;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 2) {
this.blocked_left = true;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y + 1][this.grid_x] == 3 or this.game.maze.mazes[this.game.layout][this.grid_y + 1][this.grid_x] == 1) {
this.blocked_down = true;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x + 1] == 3 or this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x + 1] == 2) {
this.blocked_right = true;
}
};
v2.escapeMe = function () {
if (!this.escaping and (this.game.enemy_count == 1 and this.game.levels[this.game.level][this.game.phase].length == 0 or this.slave_type == 'princess' or this.game.laser_off)) {
if (this.escape_timer > 0 and !(this.angry and this.slave_type != 'princess')) {
--this.escape_timer;
if (this.slave_type == 'princess') {
--this.escape_timer;
}
} else {
this.escaping = true;
trace('escaping!');
}
}
};
v2.moveMe = function () {
this.move_timer += 1;
if (this.move_timer >= this.move_speed) {
if (this._y >= this.room_top and this._y <= this.room_bottom and this.aligned_with_grid) {
this.faceMe();
} else {
if (this.escaping and (this._y <= this.room_top - 64 or this._y >= this.room_bottom + 64)) {
this.removeMe();
this.game.messages.flashMessage('that last slave got away!', true);
trace('escaped!');
}
}
switch (this.facing) {
case 'right':
this._x += this.step_length;
break;
case 'left':
this._x -= this.step_length;
break;
case 'down':
this._y += this.step_length;
break;
case 'up':
this._y -= this.step_length;
}
this.move_timer = 0;
this.moved = true;
if (!this.said_hello) {
var v2 = false;
if (this.slave_type == 'shield') {
v2 = true;
}
if (this.facing == 'down') {
if (this._y >= -28) {
if (this._x < this.game.room_width / 2) {
this.game.door_upleft.swingOpen(v2);
} else {
this.game.door_upright.swingOpen(v2);
}
this.sayHello();
}
} else {
if (this._y <= 444) {
if (this._x < this.game.room_width / 2) {
this.game.door_downleft.swingOpen(v2);
} else {
this.game.door_downright.swingOpen(v2);
}
this.sayHello();
}
}
}
} else {
this.moved = false;
}
};
v2.faceMe = function () {
this.last_facing = this.facing;
var v5 = !this.blocked_left + !this.blocked_right + !this.blocked_up + !this.blocked_down;
var v6 = false;
if ((this._x == this.game.origin_x or this._x == this.game.room_width - this.game.origin_x - 64) and (this._y == this.room_top or this._y == this.room_bottom)) {
v6 = true;
}
if (v5 >= 3 or this.blockCheck(this.facing) or v6) {
if (v6 and this.escaping) {
if (this._y == this.room_top) {
this.facing = 'up';
this.backwards = 'down';
if (this._x < this.game.room_width / 2) {
this.game.door_upleft.swingOpen();
} else {
this.game.door_upright.swingOpen();
}
} else {
if (this._y == this.room_bottom) {
this.facing = 'down';
this.backwards = 'up';
if (this._x < this.game.room_width / 2) {
this.game.door_downleft.swingOpen();
} else {
this.game.door_downright.swingOpen();
}
}
}
} else {
if (this.next_facing != 'none' and !this.blockCheck(this.next_facing)) {
this.facing = this.next_facing;
this.next_facing = 'none';
} else {
var v4 = false;
while (v4 == false) {
var v3 = Math.ceil(Math.random() * 4);
var v2 = 'none';
switch (v3) {
case 1:
v2 = 'left';
break;
case 2:
v2 = 'right';
break;
case 3:
v2 = 'up';
break;
case 4:
v2 = 'down';
}
if (!this.blockCheck(v2) and (v2 != this.backwards or v5 == 1)) {
this.facing = v2;
v4 = true;
}
}
}
}
}
if ((this.slave_type == 'gladiator' or this.slave_type == 'tarantula' or this.game.first_stage) and (this.game.queen.queen_state == 'scuttling' or this.game.queen.queen_state == 'cocooned')) {
this.findQueen();
} else {
this.saw_her = false;
}
if (this.slave_type == 'alchemist' and (this.game.queen.queen_state == 'scuttling' or this.game.demo)) {
this.springTrap();
}
this.backwards = this.findBackwards(this.facing);
};
v2.spotQueen = function () {
var v2 = this.game.queen;
var v4 = Math.floor((v2._y + 32) / 64);
var v3 = Math.floor((v2._x + 32) / 64);
if (v2._x == this._x and (this._x - this.game.origin_x) % 64 == 0) {
if (v2._y > this._y and this.canSee('down', v4)) {
this.facing = 'down';
} else {
if (v2._y < this._y and this.canSee('up', v4)) {
this.facing = 'up';
}
}
}
if (v2._y == this._y and (this._y - this.game.origin_y) % 64 == 0) {
if (v2._x > this._x and this.canSee('right', v3)) {
this.facing = 'right';
} else {
if (v2._x < this._x and this.canSee('left', v3)) {
this.facing = 'left';
}
}
}
};
v2.findQueen = function () {
var v2 = this.game.queen;
var v6 = Math.floor((v2._y + 32) / 64);
var v5 = Math.floor((v2._x + 32) / 64);
this.saw_her = false;
var v3 = 'none';
if (this.grid_x == v5) {
if (v2._y > this._y and this.canSee('down', v6)) {
v3 = 'down';
} else {
if (v2._y < this._y and this.canSee('up', v6)) {
v3 = 'up';
}
}
} else {
if (this.grid_y == v6) {
if (v2._x > this._x and this.canSee('right', v5)) {
v3 = 'right';
} else {
if (v2._x < this._x and this.canSee('left', v5)) {
v3 = 'left';
}
}
}
}
if (v3 != 'none' and !this.blockCheck(v3) and this.slave_type != 'tarantula') {
this.facing = v3;
this.saw_her = true;
this.adjustSpeed();
}
if (!this.saw_her) {
var v7 = Math.abs(this.game.queen._x - this._x);
var v8 = Math.abs(this.game.queen._y - this._y);
if (v7 < v8) {
if (v2._y > this._y and !this.blockCheck('down') and this.backwards != 'down') {
this.facing = 'down';
} else {
if (v2._y < this._y and !this.blockCheck('up') and this.backwards != 'up') {
this.facing = 'up';
}
}
} else {
if (v8 < v7) {
if (v2._x > this._x and !this.blockCheck('right') and this.backwards != 'right') {
this.facing = 'right';
} else {
if (v2._x < this._x and !this.blockCheck('left') and this.backwards != 'left') {
this.facing = 'left';
}
}
} else {
var v4 = Math.ceil(Math.random() * 2);
if (v2._y > this._y) {
if (v2._x > this._x) {
if (v4 == 2 and !this.blockCheck('down') and this.backwards != 'down') {
this.facing = 'down';
} else {
if (!this.blockCheck('right') and this.backwards != 'right') {
this.facing = 'right';
}
}
} else {
if (v2._x < this._x) {
if (v4 == 2 and !this.blockCheck('down') and this.backwards != 'down') {
this.facing = 'down';
} else {
if (!this.blockCheck('left') and this.backwards != 'left') {
this.facing = 'left';
}
}
}
}
} else {
if (v2._y < this._y) {
if (v2._x > this._x) {
if (v4 == 2 and !this.blockCheck('up') and this.backwards != 'up') {
this.facing = 'up';
} else {
if (!this.blockCheck('right') and this.backwards != 'right') {
this.facing = 'right';
}
}
} else {
if (v2._x < this._x) {
if (v4 == 2 and !this.blockCheck('up') and this.backwards != 'up') {
this.facing = 'up';
} else {
if (!this.blockCheck('left') and this.backwards != 'left') {
this.facing = 'left';
}
}
}
}
}
}
}
}
}
};
v2.canSee = function (facing, distance) {
var v2 = Math.floor((this._y - this.game.origin_y) / 64);
var v3 = Math.floor((this._x - this.game.origin_x) / 64);
if (facing == 'left') {
++v3;
}
if (facing == 'up') {
++v2;
}
if (facing == 'right' or facing == 'left') {
var v5 = true;
}
var v4 = false;
var v8 = false;
while (!v4) {
switch (facing) {
case 'right':
++v3;
break;
case 'left':
--v3;
break;
case 'down':
++v2;
break;
case 'up':
--v2;
}
if (v5) {
if (v3 > 9 or v3 < 0) {
v4 = true;
} else {
if (this.game.maze.mazes[this.game.layout][v2][v3] == 2 or this.game.maze.mazes[this.game.layout][v2][v3] == 3) {
v4 = true;
}
}
} else {
if (v2 > 7 or v2 < 0) {
v4 = true;
} else {
if (this.game.maze.mazes[this.game.layout][v2][v3] == 1 or this.game.maze.mazes[this.game.layout][v2][v3] == 3) {
v4 = true;
}
}
}
if (!v4 and (v5 and v3 == distance or !v5 and v2 == distance)) {
v8 = true;
}
}
return v8;
};
v2.springTrap = function () {
var v3 = _root.attachMovie('Trap', 'Trap' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = this._x;
v3._y = this._y;
v3.game = this.game;
v3.speed = this.game.room_speed;
if (this.angry) {
++v3.speed;
}
this.game.objs.push(v3);
this.last_trap = v3;
this.game.sounds.playSound('crumble');
};
v2.findBackwards = function (where) {
switch (where) {
case 'left':
return 'right';
break;
case 'right':
return 'left';
break;
case 'up':
return 'down';
break;
case 'down':
return 'up';
}
};
v2.blockCheck = function (where) {
switch (where) {
return false;
case 'left':
if (this.blocked_left) {
return true;
}
return false;
case 'right':
if (this.blocked_right) {
return true;
}
return false;
case 'up':
if (this.blocked_up) {
return true;
}
return false;
case 'down':
if (this.blocked_down) {
return true;
}
return false;
}
return false;
};
v2.updateCollision = function () {
this.collide_me._x = this._x + 22;
this.collide_me._y = this._y + 22;
this.collide_left._x = this._x;
this.collide_left._y = this._y + 4;
this.collide_right._x = this._x + 62;
this.collide_right._y = this._y + 4;
this.collide_up._x = this._x + 4;
this.collide_up._y = this._y;
this.collide_down._x = this._x + 4;
this.collide_down._y = this._y + 62;
};
v2.animateMe = function () {
if (this.slave_type == 'tarantula') {
if (this.slave_state == 'walking') {
var v2 = [449, 453, 457, 461, 465];
}
if (this.slave_state == 'cocooned') {
v2 = [465, 469, 473, 477, 481];
}
} else {
if (this.slave_type == 'princess') {
if (this.slave_state == 'walking') {
var v2 = [193, 197, 201, 205, 209];
}
if (this.slave_state == 'cocooned') {
v2 = [209, 213, 217, 221, 225];
}
} else {
if (this.slave_type == 'alchemist') {
if (this.slave_state == 'walking') {
if (!this.angry) {
var v2 = [321, 325, 329, 333, 337];
} else {
var v2 = [353, 357, 361, 365, 369];
}
}
if (this.slave_state == 'cocooned') {
if (!this.angry) {
v2 = [337, 341, 345, 349, 353];
} else {
v2 = [369, 373, 377, 381, 385];
}
}
} else {
if (this.slave_type == 'gladiator') {
if (this.slave_state == 'walking') {
if (!this.angry) {
var v2 = [225, 233, 241, 249, 257];
} else {
var v2 = [273, 281, 289, 297, 305];
}
}
if (this.slave_state == 'cocooned') {
if (!this.angry) {
v2 = [257, 261, 265, 269, 273];
} else {
v2 = [305, 309, 313, 317, 321];
}
}
} else {
if (this.slave_type == 'shield' or this.slave_type == 'shieldless') {
if (this.slave_state == 'walking') {
if (this.slave_type == 'shield') {
if (!this.angry) {
var v2 = [97, 105, 113, 121, 129];
} else {
var v2 = [145, 153, 161, 169, 177];
}
} else {
if (!this.angry) {
var v2 = [385, 393, 401, 409, 417];
} else {
var v2 = [417, 425, 433, 441, 449];
}
}
}
if (this.slave_state == 'cocooned') {
if (!this.angry) {
v2 = [129, 133, 137, 141, 145];
} else {
v2 = [177, 181, 185, 189, 193];
}
}
} else {
if (this.slave_type == 'dagger') {
if (this.slave_state == 'walking') {
if (!this.angry) {
var v2 = [1, 9, 17, 25, 33];
} else {
var v2 = [49, 57, 65, 73, 81];
}
}
if (this.slave_state == 'cocooned') {
if (!this.angry) {
v2 = [33, 37, 41, 45, 49];
} else {
v2 = [81, 85, 89, 93, 97];
}
}
}
}
}
}
}
}
var v3 = false;
switch (this.facing) {
case 'right':
if (this.frame < v2[0] or this.frame >= v2[1]) {
this.frame = v2[0];
v3 = true;
}
break;
case 'left':
if (this.frame < v2[1] or this.frame >= v2[2]) {
this.frame = v2[1];
v3 = true;
}
break;
case 'down':
if (this.frame < v2[2] or this.frame >= v2[3]) {
this.frame = v2[2];
v3 = true;
}
break;
case 'up':
if (this.frame < v2[3] or this.frame >= v2[4]) {
this.frame = v2[3];
v3 = true;
}
}
if (this.moved and !v3) {
++this.frame;
if (this.frame == v2[1]) {
this.frame = v2[0];
} else {
if (this.frame == v2[2]) {
this.frame = v2[1];
} else {
if (this.frame == v2[3]) {
this.frame = v2[2];
} else {
if (this.frame == v2[4]) {
this.frame = v2[3];
}
}
}
}
}
this.gotoAndStop(this.frame);
};
v2.sparkleMe = function () {
if (this.sparkle_timer < this.sparkle_speed) {
++this.sparkle_timer;
} else {
this.sparkle_timer = 0;
var v3 = _root.attachMovie('Sparkle', 'Sparkle', _root.getNextHighestDepth());
v3._x = this._x - 16 + Math.floor(Math.random() * 32 * 2);
v3._y = this._y - 16 + Math.floor(Math.random() * 32 * 2);
v3.game = this.game;
this.game.objs.push(v3);
this.game.sounds.playSound('coin');
}
};
v2.getZapped = function (where) {
if (this.slave_state == 'walking' and this._y >= this.room_top and this._y <= this.room_bottom and !(this.slave_type == 'tarantula' and this.game.queen.queen_state != 'scuttling')) {
if (this.slave_type == 'shield' and this.facing == this.findBackwards(where) or this.slave_type == 'tarantula' and this.facing != where) {
if (this.next_facing == 'none') {
this.game.sounds.ominous.start();
}
this.next_facing = this.findBackwards(where);
} else {
this.game.sounds.laser.start();
if (!this.game.last_stage) {
this.game.vocals.saySomething('zap');
}
this.slave_state = 'cocooned';
this.struggle_accelerate_timer = 0;
this.struggle_timer = 0;
this.struggle_speed = this.struggle_start_speed;
this.reel_timer = 0;
if (this.cocoon_wave == 'no' and this.has_gem and this.slave_type != 'tarantula' and !this.game.last_stage) {
this.releaseGem(where);
}
if (this.slave_type == 'alchemist' and this.collide_me.hitTest(this.last_trap)) {
this.last_trap.removeMe();
}
if (this.slave_type == 'tarantula') {
this.game.vocals.tarantula_tied = true;
}
this.faceZap(where);
this.game.addFlash('green', 50);
this.game.messages.flashMessage('* * * grab gems for bonus points * * *', true);
}
} else {
if (this.slave_state == 'cocooned') {
this.struggle_accelerate_timer = 0;
this.faceZap(where);
this.reel_timer += this.game.room_speed;
}
}
};
v2.faceZap = function (where) {
if (where == 'up' or where == 'down') {
this._x = this.game.queen._x;
} else {
this._y = this.game.queen._y;
}
this.updateCollision();
this.facing = this.findBackwards(where);
this.backwards = where;
};
v2.struggleMe = function () {
++this.struggle_timer;
if (this.struggle_timer >= this.struggle_speed) {
this.struggle_timer = 0;
this.moved = true;
} else {
this.moved = false;
}
if (this.reel_timer >= this.reel_speed) {
this.reel_timer = 0;
switch (this.facing) {
case 'right':
this._x += 4;
break;
case 'left':
this._x -= 4;
break;
case 'down':
this._y += 4;
break;
case 'up':
this._y -= 4;
}
this.updateCollision();
}
this.struggle_accelerate_timer += this.game.room_speed;
if (this.slave_type == 'princess' or this.slave_type == 'tarantula') {
this.struggle_accelerate_timer += this.game.room_speed;
}
if (this.struggle_accelerate_timer >= this.struggle_accelerate_speed) {
this.struggle_accelerate_timer = 0;
--this.struggle_speed;
if (this.struggle_speed == 0) {
if (this.cocoon_wave != 'no_angry') {
this.angry = true;
this.game.addFlash('red');
}
if (this.cocoon_wave == 'no_angry') {
this.cocoon_wave = 'get_angry';
}
if (this.slave_type == 'tarantula') {
this.angry = false;
this.game.vocals.saySomething('escaped');
this.game.vocals.tarantula_tied = false;
}
this.slave_state = 'walking';
this.adjustSpeed();
this.snapGrid(this.step_length);
if (this.slave_type != 'princess') {
this.game.messages.flashMessage('nab cocooned slaves before they break free', true);
}
this.game.sounds.playSound('alarm');
}
}
};
v2.snapGrid = function (size) {
while (this._x % size != 0) {
++this._x;
}
while (this._y % size != 0) {
++this._y;
}
};
v2.checkPlayer = function () {
if (this.collide_me.hitTest(this.game.queen.collide_me)) {
if (this.slave_state == 'walking') {
this.game.queen.getKilled();
this.next_facing = 'none';
} else {
if (this.slave_state == 'cocooned') {
if (this.slave_type == 'tarantula') {
this.game.addFlash('white', 100);
this.game.addFlash('blue', 100);
this.game.addFlash('white', 100);
this.game.addFlash('blue', 100);
this.game.addFlash('white', 100);
this.game.addFlash('blue', 100);
this.game.addFlash('blue', 60);
this.game.queen.invincible = true;
this.game.winGame();
} else {
if (!this.game.last_stage) {
this.game.vocals.saySomething('collect');
}
this.game.addFlash('blue', 100);
this.game.addFlash('blue', 60);
}
if (!this.game.last_stage or this.slave_type == 'tarantula') {
this.game.score += this.score;
if (this.angry and this.slave_type != 'princess') {
this.showPoints(this.score, 'red');
} else {
if (this.slave_type == 'princess') {
this.showPoints(this.score, 'green', 'white');
} else {
if (this.slave_type == 'tarantula') {
this.showPoints(this.score, 'pink', 'white');
} else {
this.showPoints(this.score, 'yellow');
}
}
}
if (this.slave_type == 'princess') {
this.game.sounds.mystery.start();
} else {
if (this.slave_type == 'tarantula') {
this.game.sounds.victory.start();
} else {
this.game.sounds.sack.start();
}
}
}
if (this.game.last_stage and this.slave_type != 'tarantula') {
this.game.sounds.sack.start();
}
this.removeMe();
}
}
}
};
v2.releaseGem = function (where) {
var v3 = _root.attachMovie('Gem', 'Gem' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = this._x + 22;
v3._y = this._y + 22;
v3.game = this.game;
v3.score = this.score;
if (where == 'left' or where == 'right') {
v3.hori_direction = where;
} else {
v3.vert_direction = where;
}
this.game.objs.push(v3);
this.has_gem = false;
};
v2.puffSmoke = function () {
this.makeSmoke(-1 - Math.floor(Math.random() * 3), -1 - Math.floor(Math.random() * 3), 'big');
this.makeSmoke(1 + Math.floor(Math.random() * 3), -1 - Math.floor(Math.random() * 3), 'big');
this.makeSmoke(3 - Math.floor(Math.random() * 6), 1 + Math.floor(Math.random() * 3), 'big');
this.makeSmoke(3 - Math.floor(Math.random() * 6), -1 - Math.floor(Math.random() * 3), 'small');
this.makeSmoke(-1 - Math.floor(Math.random() * 6), 1 + Math.floor(Math.random() * 3), 'small');
this.makeSmoke(1 + Math.floor(Math.random() * 6), 1 + Math.floor(Math.random() * 3), 'small');
};
v2.makeSmoke = function (x_drift, y_drift, size) {
var v3 = _root.attachMovie('Puff', 'Puff' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = this._x;
v3._y = this._y;
v3.x_drift = x_drift;
v3.y_drift = y_drift;
v3.game = this.game;
this.game.objs.push(v3);
if (size == 'big') {
v3.frame = 1;
v3.dissolve_speed = 2;
v3.drift_speed = 4;
} else {
v3.frame = 4;
v3.dissolve_speed = 4;
v3.drift_speed = 2;
}
};
v2.shoveDoor = function () {
if ((this._x - this.game.origin_x) / 64 == 2) {
if (this._y < this.game.room_height / 2) {
this.game.door_upleft.getShoved();
this.removeMe();
} else {
this.game.door_downleft.getShoved();
this.removeMe();
}
}
if ((this._x - this.game.origin_x) / 64 == 6) {
if (this._y < this.game.room_height / 2) {
this.game.door_upright.getShoved();
this.removeMe();
} else {
this.game.door_downright.getShoved();
this.removeMe();
}
}
};
v2.queenDead = function () {};
v2.showPoints = function (amount, color, color_2) {
var v3 = _root.attachMovie('Points', 'Points' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this.game;
v3.amount = amount;
v3.color = color;
if (color_2 != null) {
v3.color_2 = color_2;
}
v3._x = this._x + 32;
v3._y = this._y + 32;
this.game.objs.push(v3);
};
v2.removeMe = function () {
--this.game.enemy_count;
for (var v2 in this.game.enemies) {
if (this.game.enemies[v2] == this) {
this.game.enemies.splice(v2, 1);
break;
}
}
this.game.popBlip();
this.collide_me.removeMovieClip();
this.collide_left.removeMovieClip();
this.collide_right.removeMovieClip();
this.collide_up.removeMovieClip();
this.collide_down.removeMovieClip();
this.removeMovieClip();
};
v2.onMouseDown = function () {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
trace('');
trace('move_speed = ' + this.move_speed);
trace('step_length = ' + this.step_length);
}
};
ASSetPropFlags(_global.Slave.prototype, null, 1);
}
#endinitclip
}
movieClip 2131 __Packages.Start {
#initclip
if (!_global.Start) {
var v1 = function () {
super();
};
_global.Start = v1;
_global.Start extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
var v2 = _root.attachMovie('Loading_screen', 'Loading_screen', _root.getNextHighestDepth());
};
ASSetPropFlags(_global.Start.prototype, null, 1);
}
#endinitclip
}
movieClip 2132 __Packages.Init {
#initclip
if (!_global.Init) {
var v1 = function () {
super();
};
_global.Init = v1;
_global.Init extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
var v2 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
};
ASSetPropFlags(_global.Init.prototype, null, 1);
}
#endinitclip
}
movieClip 2133 __Packages.Assassin {
#initclip
if (!_global.Assassin) {
var v1 = function () {
super();
};
_global.Assassin = v1;
_global.Assassin extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.grid_x = 6000;
this.grid_y = 6000;
this.wall_up = false;
this.wall_down = false;
this.wall_right = false;
this.wall_left = false;
this._visible = false;
this.frame = 6000;
this.gotoAndStop(this.frame);
this.facing = 'up';
this.animation_timer = 1;
this.animation_speed = 2;
this.assassin_state = 'hidden';
this.appear_timer = 20;
this.disappear_timer = 0;
this.appear_speed = 300;
this.disappear_speed = 200;
this.knife_speed = this.disappear_speed / 2;
this.thrown_knife = false;
this.gone = false;
switch (this.game.area) {
case 1:
this.modifier = 0;
break;
case 2:
this.modifier = 32;
break;
case 3:
this.modifier = 64;
break;
case 4:
this.modifier = 96;
}
this.first_appearance = true;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
if (this.assassin_state != 'dead') {
this.tickTimer();
this.animateMe();
} else {
++this.animation_timer;
if (this.animation_timer == this.animation_speed) {
this.animation_timer = 0;
this.animateMe();
}
}
}
};
v2.tickTimer = function () {
if (this.assassin_state == 'hidden') {
if (this.gone) {
this.removeMe();
} else {
if (this.appear_timer < this.appear_speed) {
this.appear_timer += this.game.room_speed;
} else {
this.appear_timer = 0;
this.pickPosition();
this.assassin_state = 'appearing';
this.thrown_knife = false;
this.game.messages.flashMessage('beware the assassin\'s blade', true);
if (this.first_appearance) {
this.first_appearance = false;
this.game.sounds.playSound('guffaw');
}
}
}
}
if (this.assassin_state == 'visible') {
if (this.disappear_timer < this.disappear_speed) {
this.disappear_timer += this.game.room_speed;
if (this.disappear_timer >= this.knife_speed and !this.thrown_knife) {
if (!this.game.end_of_level) {
this.throwKnife();
}
this.thrown_knife = true;
}
} else {
this.disappear_timer = 0;
this.assassin_state = 'disappearing';
}
}
};
v2.animateMe = function () {
var v2 = [0, 0, 0, 0, 0];
if (this.assassin_state == 'appearing' or this.assassin_state == 'disappearing') {
v2 = [1, 5, 9, 13, 17];
}
if (this.assassin_state == 'dead') {
v2 = [17, 21, 25, 29, 33];
}
if (this.assassin_state == 'appearing' or this.assassin_state == 'dead') {
var v3 = false;
switch (this.facing) {
case 'right':
if (this.frame < v2[0] or this.frame >= v2[1]) {
this.frame = v2[0];
this._visible = true;
v3 = true;
}
break;
case 'left':
if (this.frame < v2[1] or this.frame >= v2[2]) {
this.frame = v2[1];
this._visible = true;
v3 = true;
}
break;
case 'down':
if (this.frame < v2[2] or this.frame >= v2[3]) {
this.frame = v2[2];
this._visible = true;
v3 = true;
}
break;
case 'up':
if (this.frame < v2[3] or this.frame >= v2[4]) {
this.frame = v2[3];
this._visible = true;
v3 = true;
}
}
if (!v3) {
++this.frame;
if (this.frame == v2[1] or this.frame == v2[2] or this.frame == v2[3] or this.frame == v2[4]) {
if (this.assassin_state == 'dead') {
this.removeMe();
} else {
this.assassin_state = 'visible';
switch (this.facing) {
case 'right':
this.frame = v2[1] - 1;
break;
case 'left':
this.frame = v2[2] - 1;
break;
case 'down':
this.frame = v2[3] - 1;
break;
case 'up':
this.frame = v2[4] - 1;
}
}
}
}
} else {
if (this.assassin_state == 'disappearing') {
var v3 = false;
switch (this.facing) {
case 'right':
if (this.frame < v2[0] or this.frame >= v2[1]) {
this.frame = v2[1];
v3 = true;
}
break;
case 'left':
if (this.frame < v2[1] or this.frame >= v2[2]) {
this.frame = v2[2];
v3 = true;
}
break;
case 'down':
if (this.frame < v2[2] or this.frame >= v2[3]) {
this.frame = v2[3];
v3 = true;
}
break;
case 'up':
if (this.frame < v2[3] or this.frame >= v2[4]) {
this.frame = v2[4];
v3 = true;
}
}
if (!v3) {
--this.frame;
if (this.frame == v2[0] - 1 or this.frame == v2[1] - 1 or this.frame == v2[2] - 1 or this.frame == v2[3] - 1) {
this._visible = false;
this.frame = 1;
this.assassin_state = 'hidden';
this.frame = 6000;
}
}
}
}
this.gotoAndStop(this.frame + this.modifier);
};
v2.pickPosition = function () {
var v7 = false;
while (!v7) {
var v2 = false;
while (!v2) {
this.grid_x = Math.floor(Math.random() * 9);
this.grid_y = Math.floor(Math.random() * 7);
var v4 = this.game.queen.grid_x;
var v3 = this.game.queen.grid_y;
v2 = true;
if (v4 == this.grid_x and v3 == this.grid_y) {
v2 = false;
}
if (v4 == this.grid_x and (v3 == this.grid_y - 1 or v3 == this.grid_y + 1)) {
v2 = false;
}
if (v3 == this.grid_y and (v4 == this.grid_x - 1 or v4 == this.grid_x + 1)) {
v2 = false;
}
for (var v10 in this.game.assassins) {
if (this.grid_x == this.game.assassins[v10].grid_x and this.grid_y == this.game.assassins[v10].grid_y and this.game.assassins[v10] != this) {
v2 = false;
}
}
}
this.checkWalls();
var v9 = this.wall_up + this.wall_down + this.wall_right + this.wall_left;
if (v9 > 0 and v9 < 4) {
var v5 = false;
while (!v5) {
var v8 = Math.ceil(Math.random() * 4);
switch (v8) {
case 1:
if (this.wall_up) {
this.facing = 'down';
v5 = true;
}
break;
case 2:
if (this.wall_down) {
this.facing = 'up';
v5 = true;
}
break;
case 3:
if (this.wall_right) {
this.facing = 'left';
v5 = true;
}
break;
case 4:
if (this.wall_left) {
this.facing = 'right';
v5 = true;
}
}
var v6 = this.game.queen;
if (!(this.grid_x == v6.laser.grid_x and this.grid_x == v6.laser.grid_y and this.facing == this.findBackwards(v6.facing))) {
this._x = this.grid_x * 64 + this.game.origin_x;
this._y = this.grid_y * 64 + this.game.origin_y;
v7 = true;
for (v10 in this.game.spikes) {
if (this.game.spikes[v10].collision_bump.hitTest(this)) {
v7 = false;
}
}
}
}
}
}
};
v2.checkWalls = function () {
this.wall_up = false;
this.wall_down = false;
this.wall_right = false;
this.wall_left = false;
if (this.game.maze.original_mazes[this.game.room][this.grid_y][this.grid_x] == 3) {
this.wall_left = true;
this.wall_up = true;
}
if (this.game.maze.original_mazes[this.game.room][this.grid_y][this.grid_x] == 1) {
this.wall_up = true;
}
if (this.game.maze.original_mazes[this.game.room][this.grid_y][this.grid_x] == 2) {
this.wall_left = true;
}
if (this.game.maze.original_mazes[this.game.room][this.grid_y][this.grid_x + 1] == 3 or this.game.maze.original_mazes[this.game.room][this.grid_y][this.grid_x + 1] == 2) {
this.wall_right = true;
}
if (this.game.maze.original_mazes[this.game.room][this.grid_y + 1][this.grid_x] == 3 or this.game.maze.original_mazes[this.game.room][this.grid_y + 1][this.grid_x] == 1) {
this.wall_down = true;
}
};
v2.findBackwards = function (where) {
switch (where) {
case 'left':
return 'right';
break;
case 'right':
return 'left';
break;
case 'up':
return 'down';
break;
case 'down':
return 'up';
}
};
v2.throwKnife = function () {
var v3 = _root.attachMovie('Dagger', 'Dagger' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = this._x + 24;
v3._y = this._y + 24;
v3.game = this.game;
this.game.objs.push(v3);
var v4 = Math.ceil(Math.random() * 2);
if (this.facing == 'up' or this.facing == 'down') {
if (this.wall_left and !this.wall_right) {
v3.start_direction = 'right';
} else {
if (this.wall_right and !this.wall_left) {
v3.start_direction = 'left';
} else {
if (this.game.queen.grid_x > this.grid_x) {
v3.start_direction = 'right';
} else {
if (this.game.queen.grid_x < this.grid_x) {
v3.start_direction = 'left';
} else {
if (v4 == 2) {
v3.start_direction = 'right';
} else {
v3.start_direction = 'left';
}
}
}
}
}
v3.vert_direction = this.facing;
} else {
if (this.wall_up and !this.wall_down) {
v3.start_direction = 'down';
} else {
if (this.wall_down and !this.wall_up) {
v3.start_direction = 'up';
} else {
if (this.game.queen.grid_y > this.grid_y) {
v3.start_direction = 'down';
} else {
if (this.game.queen.grid_y < this.grid_y) {
v3.start_direction = 'up';
} else {
if (v4 == 2) {
v3.start_direction = 'down';
} else {
v3.start_direction = 'up';
}
}
}
}
}
v3.hori_direction = this.facing;
}
this.game.sounds.playSound('spinner');
};
v2.getZapped = function () {
if (this.assassin_state == 'visible' or this.assassin_state == 'disappearing') {
this.game.score += 500;
var v2 = 500;
switch (this.game.area) {
case 1:
this.showPoints(v2, 'blue');
break;
case 2:
this.showPoints(v2, 'pink');
break;
case 3:
this.showPoints(v2, 'purple');
break;
case 4:
this.showPoints(v2, 'red');
}
this.game.addFlash('yellow', 50);
this.assassin_state = 'dead';
this.game.sounds.zappo.start();
this.game.vocals.saySomething('assassin');
}
};
v2.showPoints = function (amount, color) {
var v3 = _root.attachMovie('Points', 'Points' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this.game;
v3.amount = amount;
v3.color = color;
v3.color_2 = 'white';
v3._x = this._x + 32;
v3._y = this._y + 32;
this.game.objs.push(v3);
};
v2.removeMe = function () {
for (var v2 in this.game.assassins) {
if (this.game.assassins[v2] == this) {
this.game.assassins.splice(v2, 1);
break;
}
}
this.removeMovieClip();
};
ASSetPropFlags(_global.Assassin.prototype, null, 1);
}
#endinitclip
}
movieClip 2134 __Packages.Cast {
#initclip
if (!_global.Cast) {
var v1 = function () {
super();
};
_global.Cast = v1;
_global.Cast extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.room_width = 608;
this.room_height = 480;
this.characters = [['slave', 'slave\n100 points', 'yellow', 64, 64], ['armor', 'armor\n300 points', 'yellow', 64, 160], ['princess', 'princess\n2000 points', 'yellow', 64, 256], ['crystal', 'doubles\nvalue', 'red', 64, 352], ['gladiator', 'gladiator\n200 points', 'yellow', 320, 64], ['alchemist', 'alchemist\n500 points', 'yellow', 320, 160], ['assassin', 'assassin\n500 points', 'yellow', 320, 256], ['unknown', 'unknown\n15000 points', 'red', 320, 352]];
this.character_count = 0;
this.character_timer = 0;
this.character_speed = 30;
this.demo_timer = 0;
this.demo_speed = 90;
this.message_font = new TextFormat();
this.message_font.font = 'MessageFont';
this.message_font.embedFonts = true;
this.message_font.size = 16;
this.message_font.align = 'center';
this.message_color = false;
this.objs = [];
this.words = [];
this.messages = ['use your laser to recapture escaped slaves!', 'collect power gems to double your score!', 'earn an extra queen every 25000 points!'];
this.message_pick = 0;
this.message_timer = 0;
this.message_speed = 112;
this.top_text = this.printText(this.messages[this.message_pick], 'blue', 0, 26, this.room_width, 12);
this.bottom_text = this.printText('press the spacebar to play!', 'green', 0, 442, this.room_width, 12);
this.key_clear = false;
};
v2.onEnterFrame = function () {
this.flashText();
this.cycleMessages();
this.showCharacters();
if (Key.isDown(32) and this.key_clear) {
this.startGame();
}
if (!Key.isDown(32)) {
this.key_clear = true;
}
};
v2.flashText = function () {
if (!this.message_color) {
this.message_color = true;
this.top_text.textColor = this.hexColor('blue');
this.bottom_text.textColor = this.hexColor('green');
} else {
this.message_color = false;
this.top_text.textColor = this.hexColor('green');
this.bottom_text.textColor = this.hexColor('blue');
}
};
v2.cycleMessages = function () {
if (this.message_timer < this.message_speed) {
++this.message_timer;
} else {
this.message_timer = 0;
++this.message_pick;
if (this.message_pick > this.messages.length - 1) {
this.message_pick = 0;
}
this.top_text.text = this.messages[this.message_pick];
this.top_text.setTextFormat(this.message_font);
}
};
v2.showCharacters = function () {
if (this.character_count < 8) {
if (this.character_timer < this.character_speed) {
++this.character_timer;
} else {
this.character_timer = 0;
this.makeCharacter(this.characters[this.character_count][0], this.characters[this.character_count][1], this.characters[this.character_count][2], this.characters[this.character_count][3], this.characters[this.character_count][4]);
++this.character_count;
}
} else {
if (this.demo_timer < this.demo_speed) {
++this.demo_timer;
} else {
this.startDemo();
}
}
};
v2.makeCharacter = function (identity, text_dump, text_color, where_x, where_y) {
var v3 = _root.attachMovie('Character', 'Character' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.identity = identity;
v3._x = where_x;
v3._y = where_y;
this.objs.push(v3);
this.printText(text_dump, text_color, where_x + 76, where_y + 16, 136, 64);
};
v2.printText = function (text_dump, text_color, where_x, where_y, text_width, text_height) {
var v3 = _root.createTextField('Textbox', _root.getNextHighestDepth(), where_x, where_y, text_width, text_height);
v3.embedFonts = true;
v3.textColor = this.hexColor(text_color);
v3.text = text_dump;
v3.setTextFormat(this.message_font);
this.words.push(v3);
return v3;
};
v2.hexColor = function (color) {
switch (color) {
case 'white':
return 16579836;
break;
case 'cyan':
return 64764;
break;
case 'pink':
return 14483550;
break;
case 'purple':
return 6881446;
break;
case 'yellow':
return 14012672;
break;
case 'red':
return 16125711;
break;
case 'green':
return 64512;
break;
case 'blue':
return 4023295;
}
};
v2.startDemo = function () {
var v3 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
v3.demo = true;
this.removeMe();
};
v2.startGame = function () {
this.sounds.title_loop.stop();
var v3 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
v3.demo = false;
this.removeMe();
};
v2.removeMe = function () {
for (var v2 in this.objs) {
this.objs[v2].removeMovieClip();
}
for (v2 in this.words) {
this.words[v2].removeTextField();
}
this.removeMovieClip();
};
ASSetPropFlags(_global.Cast.prototype, null, 1);
}
#endinitclip
}
movieClip 2135 __Packages.Character {
#initclip
if (!_global.Character) {
var v1 = function () {
super();
};
_global.Character = v1;
_global.Character extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.frame = 1;
this.animation_timer = 0;
this.animation_speed = 2;
if (this.identity == 'crystal') {
this._x += 22;
this._y += 22;
}
if (this.identity == 'traitor') {
switch (this.area) {
case 1:
this.modifier = 0;
break;
case 2:
this.modifier = 2;
break;
case 3:
this.modifier = 4;
break;
case 4:
case 5:
this.modifier = 6;
}
}
this.animateMe();
};
v2.onEnterFrame = function () {
if (this.animation_timer < this.animation_speed) {
++this.animation_timer;
} else {
this.animation_timer = 0;
this.animateMe();
}
};
v2.animateMe = function () {
if (this.identity == 'slave') {
switch (this.frame) {
case 1:
this.gotoAndStop(1);
break;
case 2:
this.gotoAndStop(2);
break;
case 3:
this.gotoAndStop(3);
break;
case 4:
this.gotoAndStop(4);
break;
case 5:
this.gotoAndStop(5);
break;
case 6:
this.gotoAndStop(6);
break;
case 7:
this.gotoAndStop(7);
break;
case 8:
this.gotoAndStop(8);
}
} else {
if (this.identity == 'armor') {
switch (this.frame) {
case 1:
this.gotoAndStop(9);
break;
case 2:
this.gotoAndStop(10);
break;
case 3:
this.gotoAndStop(11);
break;
case 4:
this.gotoAndStop(12);
break;
case 5:
this.gotoAndStop(13);
break;
case 6:
this.gotoAndStop(14);
break;
case 7:
this.gotoAndStop(15);
break;
case 8:
this.gotoAndStop(16);
}
} else {
if (this.identity == 'princess') {
switch (this.frame) {
case 1:
this.gotoAndStop(17);
break;
case 2:
this.gotoAndStop(18);
break;
case 3:
this.gotoAndStop(19);
break;
case 4:
this.gotoAndStop(20);
}
} else {
if (this.identity == 'gladiator') {
switch (this.frame) {
case 1:
this.gotoAndStop(21);
break;
case 2:
this.gotoAndStop(22);
break;
case 3:
this.gotoAndStop(23);
break;
case 4:
this.gotoAndStop(24);
break;
case 5:
this.gotoAndStop(25);
break;
case 6:
this.gotoAndStop(26);
break;
case 7:
this.gotoAndStop(27);
break;
case 8:
this.gotoAndStop(28);
}
} else {
if (this.identity == 'alchemist') {
switch (this.frame) {
case 1:
this.gotoAndStop(29);
break;
case 2:
this.gotoAndStop(30);
break;
case 3:
this.gotoAndStop(31);
break;
case 4:
this.gotoAndStop(32);
}
} else {
if (this.identity == 'assassin') {
switch (this.frame) {
case 1:
this.gotoAndStop(33);
break;
case 2:
this.gotoAndStop(33);
break;
case 3:
this.gotoAndStop(33);
break;
case 4:
this.gotoAndStop(33);
break;
case 5:
this.gotoAndStop(34);
break;
case 6:
this.gotoAndStop(35);
break;
case 7:
this.gotoAndStop(36);
break;
case 8:
this.gotoAndStop(37);
break;
case 9:
this.gotoAndStop(37);
break;
case 10:
this.gotoAndStop(37);
break;
case 11:
this.gotoAndStop(37);
break;
case 12:
this.gotoAndStop(37);
break;
case 13:
this.gotoAndStop(36);
break;
case 14:
this.gotoAndStop(35);
break;
case 15:
this.gotoAndStop(34);
break;
case 16:
this.gotoAndStop(33);
}
} else {
if (this.identity == 'unknown') {
this.gotoAndStop(38);
} else {
if (this.identity == 'crystal') {
switch (this.frame) {
case 1:
this.gotoAndStop(39);
break;
case 2:
this.gotoAndStop(40);
break;
case 3:
this.gotoAndStop(41);
break;
case 4:
this.gotoAndStop(42);
break;
case 5:
this.gotoAndStop(43);
break;
case 6:
this.gotoAndStop(44);
break;
case 7:
this.gotoAndStop(45);
break;
case 8:
this.gotoAndStop(46);
}
} else {
if (this.identity == 'traitor') {
switch (this.frame) {
case 1:
this.gotoAndStop(47 + this.modifier);
break;
case 2:
this.gotoAndStop(47 + this.modifier);
break;
case 3:
this.gotoAndStop(47 + this.modifier);
break;
case 4:
this.gotoAndStop(47 + this.modifier);
break;
case 5:
this.gotoAndStop(48 + this.modifier);
break;
case 6:
this.gotoAndStop(48 + this.modifier);
break;
case 7:
this.gotoAndStop(48 + this.modifier);
break;
case 8:
this.gotoAndStop(48 + this.modifier);
}
}
}
}
}
}
}
}
}
}
++this.frame;
if (this.identity == 'assassin') {
if (this.frame > 16) {
this.frame = 1;
}
} else {
if (this.identity == 'princess' or this.identity == 'alchemist') {
if (this.frame > 4) {
this.frame = 1;
}
} else {
if (this.identity == 'unknown') {
this.frame = 1;
} else {
if (this.frame > 8) {
this.frame = 1;
}
}
}
}
};
ASSetPropFlags(_global.Character.prototype, null, 1);
}
#endinitclip
}
movieClip 2136 __Packages.Collision {
#initclip
if (!_global.Collision) {
var v1 = function () {
super();
};
_global.Collision = v1;
_global.Collision extends MovieClip;
var v2 = v1.prototype;
ASSetPropFlags(_global.Collision.prototype, null, 1);
}
#endinitclip
}
movieClip 2137 __Packages.Credits {
#initclip
if (!_global.Credits) {
var v1 = function () {
super();
};
_global.Credits = v1;
_global.Credits extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.game.addFlash('blue');
this.game.sounds.shriek.start();
this.game.vocals.iamthespiderqueen.start();
this.game.sounds.closing.start();
this.base_frame = 18;
this.frame = 1;
this.art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art.gotoAndStop(this.base_frame + this.frame);
this.credit_timer = 0;
this.credit_speed = 210;
this.key_clear = false;
};
v2.onEnterFrame = function () {
if (this.credit_timer < this.credit_speed) {
++this.credit_timer;
} else {
this.rollCredit();
this.credit_timer = 0;
}
if (Key.isDown(32) and this.key_clear) {
this.titleScreen();
}
if (!Key.isDown(32)) {
this.key_clear = true;
}
};
v2.rollCredit = function () {
++this.frame;
if (this.frame == 5) {
this.egg_1 = this.makeEgg('delicious');
this.egg_2 = this.makeEgg('icantwaittoeatthis');
}
if (this.frame == 6) {
this.egg_1.removeMovieClip();
this.egg_2.removeMovieClip();
}
if (this.frame > 9) {
this.titleScreen();
} else {
this.game.addFlash('blue');
this.art.gotoAndStop(this.base_frame + this.frame);
}
};
v2.makeEgg = function (identity) {
var v3 = _root.attachMovie('Egg', 'Egg' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.identity = identity;
v3.game = this.game;
v3._visible = false;
return v3;
};
v2.titleScreen = function () {
this.game.sounds.closing.stop();
this.art.removeMe();
this.egg_1.removeMovieClip();
this.egg_2.removeMovieClip();
this.game.highScore();
this.removeMovieClip();
};
ASSetPropFlags(_global.Credits.prototype, null, 1);
}
#endinitclip
}
movieClip 2138 __Packages.Cutscene {
#initclip
if (!_global.Cutscene) {
var v1 = function () {
super();
};
_global.Cutscene = v1;
_global.Cutscene extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.scene_type = 'queen';
this.victory = false;
this.words = [];
this.setupText();
switch (this.the_scene) {
case 0:
this.the_message = 0;
break;
case 1:
this.the_message = 1;
break;
case 4:
this.the_message = 2;
break;
case 7:
this.the_message = 3;
break;
case 10:
this.the_message = 4;
break;
case 13:
this.the_message = 5;
break;
case 14:
this.the_message = 6;
this.victory = true;
break;
default:
this.the_message = this.randomMessage();
this.scene_type = 'random';
}
this.text_spacing = 16;
this.message_font = new TextFormat();
this.message_font.font = 'MessageFont';
this.message_font.embedFonts = true;
this.message_font.size = 16;
this.message_font.align = 'center';
this.words_timer = 0;
this.words_speed = 6;
this.text_timer = 0;
this.text_speed = 10;
this.next_timer = 0;
this.next_speed = 200;
this.skip_timer = 60;
this.timer_speed = 1;
if (this.scene_type == 'queen') {
this.queenScene();
} else {
this.randomScene();
}
this.text_y = this.words[this.text_bank][this.the_message][0][0];
this.text_line = 1;
this.first_words = true;
this.key_clear = false;
};
v2.randomMessage = function () {
var v2 = false;
var v3 = 10000;
while (!v2) {
v2 = true;
v3 = Math.floor(Math.random() * this.words[1].length);
for (var v4 in this.game.tips) {
if (this.game.tips[v4] == v3) {
v2 = false;
}
}
}
this.game.tips.push(v3);
return v3;
};
v2.queenScene = function () {
this.art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
if (this.victory) {
this.art.gotoAndStop(13);
this.art.box_pattern = 13;
} else {
this.art.gotoAndStop(9);
}
this.game.addFlash('white');
this.game.addFlash('blue');
this.text_bank = 0;
this.text_speed = 20;
if (this.victory) {
this.words_speed = 150;
this.next_speed = 300;
}
if (!this.victory) {
this.game.sounds.takeoff.start();
} else {
this.game.sounds.shriek.start();
}
if (this.game.level == 0) {
this.game.sounds.opening_loop.start(0, 10000);
} else {
if (this.victory) {
this.game.sounds.victory_loop.start(0, 10000);
} else {
this.game.sounds.cutscene_loop.start(0, 10000);
}
}
};
v2.randomScene = function () {
this.art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art.gotoAndStop(12);
this.walker = _root.attachMovie('Walker', 'Walker' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.walker.mom = this;
this.walker.facing = this.exit_direction;
if (this.exit_direction == 'right') {
this.walker._x = -64;
} else {
this.walker._x = this.game.room_width;
}
this.walker._y = 290;
var v3 = 'none';
if (this.the_scene == 2) {
this.walker.identity = 'shield';
v3 = 'queen';
}
if (this.the_scene == 5) {
this.walker.identity = 'queen';
v3 = 'gladiator';
}
if (this.the_scene == 8) {
this.walker.identity = 'princess';
v3 = 'queen';
}
this.partner = this.walker;
if (v3 != 'none') {
this.walker = _root.attachMovie('Walker', 'Walker' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.walker.mom = this;
this.walker.facing = this.exit_direction;
if (this.exit_direction == 'right') {
this.walker._x = -192;
} else {
this.walker._x = this.game.room_width + 128;
}
this.walker._y = 290;
this.walker.identity = v3;
}
var v4 = 'none';
switch (this.the_scene) {
case 2:
case 3:
v4 = 'blue';
break;
case 5:
case 6:
v4 = 'pink';
break;
case 8:
case 9:
v4 = 'purple';
break;
case 11:
case 12:
v4 = 'red';
}
this.printText('now entering ' + this.destination, v4, 0, 416, this.destination_indent);
this.text_bank = 1;
this.game.sounds.hallway.start();
};
v2.onEnterFrame = function () {
this.adjustSpeed();
this.makeScene();
if (Key.isDown(32) and this.key_clear) {
if (this.victory and this.words_timer < this.words_speed) {
this.words_timer = this.words_speed - 1;
this.key_clear = false;
} else {
this.endScene();
}
}
if (this.scene_type == 'queen') {
if (this.skip_timer > 0) {
--this.skip_timer;
if (this.skip_timer == 0) {
this.textBorder('PRESS SPACE TO SKIP', 450, false);
this.printText('PRESS SPACE TO SKIP', 'blue', 0, 450, false);
}
}
}
if (!Key.isDown(32)) {
this.key_clear = true;
}
};
v2.adjustSpeed = function () {
this.timer_speed = 1;
var v2 = 10;
if (Key.isDown(37) or Key.isDown(38) or Key.isDown(39) or Key.isDown(40)) {
this.timer_speed = v2;
}
};
v2.makeScene = function () {
if (this.words_timer < this.words_speed) {
++this.words_timer;
if (this.words_timer >= this.words_speed) {
if (this.scene_type == 'queen') {
if (this.the_scene == 1) {
this.art.gotoAndStop(29);
this.art.animation = 'crystal';
} else {
if (this.victory) {
this.game.addFlash('blue');
this.art.gotoAndStop(32);
this.art.removeBoxes();
} else {
this.art.gotoAndStop(10);
}
}
}
}
} else {
if (this.text_timer < this.text_speed) {
this.text_timer += this.timer_speed;
} else {
this.text_timer = 0;
if (this.words[this.text_bank][this.the_message][this.text_line] != null) {
var v2 = false;
if (this.words[this.text_bank][this.the_message][this.text_line][2] == 'indent') {
v2 = true;
}
if (this.scene_type == 'queen') {
this.textBorder(this.words[this.text_bank][this.the_message][this.text_line][0], this.text_y, v2);
}
this.printText(this.words[this.text_bank][this.the_message][this.text_line][0], this.words[this.text_bank][this.the_message][this.text_line][1], 0, this.text_y, v2);
} else {
if (this.scene_type == 'queen') {
this.done = true;
if (this.victory) {
this.art.animation = 'tarantula';
}
}
}
this.text_y += this.text_spacing;
this.text_line += 1;
if (this.scene_type == 'queen' and this.first_words) {
this.first_words = false;
this.game.sounds.computer.start();
}
}
}
if (this.scene_type == 'random') {
if (this.walker.done) {
this.endScene();
}
}
if (this.done) {
if (this.next_timer < this.next_speed) {
this.next_timer += this.timer_speed;
} else {
this.endScene();
}
}
};
v2.textBorder = function (text_line, text_y, indent) {
this.printText(text_line, 'black', -2, text_y - 2, indent);
this.printText(text_line, 'black', 0, text_y - 2, indent);
this.printText(text_line, 'black', 2, text_y - 2, indent);
this.printText(text_line, 'black', 2, text_y, indent);
this.printText(text_line, 'black', 2, text_y + 2, indent);
this.printText(text_line, 'black', 0, text_y + 2, indent);
this.printText(text_line, 'black', -2, text_y + 2, indent);
this.printText(text_line, 'black', -2, text_y, indent);
};
v2.printText = function (text_dump, text_color, where_x, where_y, indent) {
if (indent) {
++where_x;
}
var v3 = _root.createTextField('Textbox', _root.getNextHighestDepth(), where_x, where_y, 608, 12);
v3.embedFonts = true;
v3.textColor = this.game.hexColor(text_color);
v3.text = text_dump;
v3.setTextFormat(this.message_font);
this.words.push(v3);
};
v2.setupText = function () {
this.words = [[[[186], ['HOW DARE YOU INTERRUPT YOUR QUEEN', 'red'], ['WHILE SHE\'S OCCUPIED WITH HER SLAVES?', 'red'], [''], ['BUT THAT\'S JUST IT, YOUR MAJESTY!', 'yellow', 'indent'], ['THE SLAVES ARE REVOLTING!', 'yellow', 'indent'], ['IF THEY FIND YOU, YOU\'RE DOOMED!', 'yellow'], [''], ['THEY\'LL FIND A SWIFT RETURN TO', 'red'], ['THE DUNGEONS - AS SOON AS I HAVE', 'red'], ['MY CRYSTAL SCEPTRE IN MY HAND!', 'red']], [[186], ['CUT FROM THE LARGEST, PUREST', 'red', 'indent'], ['POWER CRYSTAL TO COME FROM', 'red', 'indent'], ['THE SLAVE MINES, AND SET IN', 'red'], ['A ROD OF COLD BLUE CHROME,', 'red', 'indent'], ['THE CRYSTAL SCEPTRE IS THE', 'red'], ['FOUNDATION OF MY EMPIRE,', 'red'], ['ALLOWING ME TO ENSNARE WHOEVER', 'red', 'indent'], ['I SET MY EYES UPON. WITH IT', 'red'], ['IN MY GRIP, I SHALL REMIND', 'red'], ['THESE SLAVES OF THEIR PLACE.', 'red', 'indent']], [[186], ['THE MOST BEAUTIFUL PALACE ON', 'red', 'indent'], ['MARS IS IN A STATE OF REVOLT!', 'red'], ['WHO COULD HAVE INCITED', 'red', 'indent'], ['A REBELLION OF THIS SCALE?', 'red'], [''], ['STEPPING ONTO THE BATTLEMENTS', 'red'], ['I CAN SEE FIRES BEING LIT.', 'red', 'indent'], ['THIS IS THE BATTLE THAT MY', 'red', 'indent'], ['CASTLE WAS BUILT TO ENDURE.', 'red', 'indent']], [[174], ['IF THERE\'S ONE THING I', 'red', 'indent'], ['JUST CAN\'T ABIDE, IT\'S', 'red'], ['AN UNDER-STOCKED DUNGEON!', 'red', 'indent'], ['BUT I CAN SOLVE THAT PROBLEM', 'red', 'indent'], ['AND TIDY UP MY PALACE', 'red'], ['AT THE SAME TIME!', 'red', 'indent'], [''], ['SPEAKING OF SNARING TWO', 'red'], ['BIRDS WITH ONE CRYSTAL,', 'red'], ['THIS DUNGEON IS WELL-EQUIPPED!', 'red', 'indent'], ['ONE OF THESE SLAVES MUST KNOW', 'red', 'indent'], ['WHO\'S BEHIND THIS COUP!', 'red', 'indent']], [[158], ['FINDING YOU IN THE TORTURE CHAMBER', 'red', 'indent'], ['SAVED ME SOME TIME, PRINCESS.', 'red', 'indent'], ['BUT I\'M STILL IN A HURRY, SO FORGIVE', 'red'], ['ME IF MY QUESTIONS ARE A BIT POINTED.', 'red'], [''], ['OW! AHH! YEEP! YOW!', 'yellow', 'indent'], [''], ['WHO INCITED THE REVOLT?', 'red'], [''], ['YOWCH! IT WAS QUEEN TARANTULA!', 'yellow'], [''], ['SHE DID TAKE OUR BREAK-UP POORLY.', 'red'], ['NO MORE TEASING! IT\'S TIME TO', 'red'], ['SHOW HER IT\'S REALLY OVER!', 'red']], [[192], ['TARANTULA! I KNOW YOU\'RE UPSET THAT', 'red', 'indent'], ['THINGS DIDN\'T WORK OUT, BUT THIS ISN\'T', 'red', 'indent'], ['THE WAY TO GET BACK IN THE PALACE!', 'red', 'indent'], [''], ['DURING MY STAY IN THE CASTLE I LEARNED', 'yellow', 'indent'], ['HOW MUCH YOU ENJOY THE FEEL OF YOUR OWN', 'yellow'], ['ROPES, A NEED I\'D LOVE TO ACCOMODATE', 'yellow'], ['AGAIN! SEE, I\'VE MADE A CRYSTAL SCEPTRE', 'yellow', 'indent'], ['OF MY OWN! I CAN\'T WAIT TO TRY IT OUT!', 'yellow']], [[192], ['WITH A CRYSTAL STAFF IN EACH OF MY HANDS,', 'red', 'indent'], ['MY SLAVES HAD TO ACKNOWLEDGE THEIR TRUE MISTRESS.', 'red', 'indent'], [''], ['BUT TARANTULA WAS RIGHT AFTER ALL - HER LITTLE', 'red', 'indent'], ['ESCAPADE DID GET HER BACK INTO THE ROYAL PALACE.', 'red', 'indent'], ['I\'VE DECIDED I NEED AN HEIR TO CARRY ON MY EMPIRE,', 'red', 'indent'], ['AND NONE OF THESE PRINCESSES ARE GOING TO LEARN HOW', 'red'], ['TO DISCIPLINE LESSERS WITHOUT SOMEONE TO PRACTICE ON.', 'red']]], [[[108], ['POWER PLAY TIP:', 'white'], [''], ['GRAB THE GEM A WEBBED SLAVE DROPS', 'green'], ['TO EARN DOUBLE THE POINTS!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['SHIELDED SLAVES ARE MORE VALUABLE', 'green'], ['BEFORE THEY THROW AWAY THEIR SHIELDS!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['THE LAST SLAVE LEFT ON SCREEN WILL TRY', 'green'], ['AND MAKE A BREAK FOR IT! DON\'T LET HER!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['IF YOU TAKE TOO LONG TO CLEAR THE SCREEN,', 'green'], ['THE GAME WILL SPEED UP! BETTER HURRY!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['THE SLAVE PRINCESS IS WORTH A LOT, BUT YOU', 'green', 'indent'], ['HAVE TO CATCH HER BEFORE SHE GETS AWAY!', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['MARS\' OLYMPUS MONS IS PROBABLY THE TALLEST', 'green'], ['MOUNTAIN AND VOLCANO IN THE SOLAR SYSTEM!', 'green', 'indent']], [[108], ['DID YOU KNOW?', 'white'], [''], ['SYRTIS MAJOR, MARS\' DARK SPOT, GETS ITS COLOR', 'green'], ['FROM THE BLACK BASALT OF AN EXTINCT VOLCANO!', 'green', 'indent']], [[108], ['DID YOU KNOW?', 'white'], [''], ['MARTIAN POWER CRYSTALS ARE PRIZED FOR THE', 'green', 'indent'], ['PERCEPTION-ALTERING EFFECT THEY HAVE ON VIEWERS.', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['ERECTING THE MARS FACE REQUIRED SO MANY SLAVES,', 'green'], ['IT SHUT DOWN THE CRYSTAL MINES FOR MONTHS!', 'green']], [[108], ['YOU\'RE THE QUEEN!', 'white'], [''], ['YOU CAN HOLD ANY OF THE ARROW KEYS', 'green', 'indent'], ['TO SPEED UP THESE SCREENS!', 'green']], [[108], ['YOU\'RE THE QUEEN!', 'white'], [''], ['IF THE FIRST AREA\'S TOO SLOW FOR YOU, USE THE', 'green'], ['STAIRS IN THE THRONE ROOM TO START AT A LATER ONE!', 'green']], [[108], ['YOU\'RE THE QUEEN!', 'white'], [''], ['THERE\'S A SECRET PASSAGE IN THE THRONE ROOM!', 'green'], ['HAVE YOU FOUND IT YET?', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['YOU CAN DEFEAT AN ASSASSIN BY', 'green', 'indent'], ['HITTING HER HEAD-ON WITH YOUR LASER.', 'green']], [[108], ['MEET YOUR SLAVES!', 'white'], [''], ['THE GLADIATOR CARRIES AN AXE,', 'green'], ['AND WILL CHASE YOU IF SHE SEES YOU.', 'green']], [[108], ['MEET YOUR SLAVES!', 'white'], [''], ['THE ALCHEMIST LEAVES A TRAIL OF DEADLY FLAME', 'green', 'indent'], ['BEHIND HER! STEP IN IT AND YOU\'RE TOAST!', 'green', 'indent']], [[108], ['MEET YOUR SLAVES!', 'white'], [''], ['THE ASSASSIN SPRINGS OUT OF THE WALLS', 'green'], ['AND TOSSES KNIVES THAT YOU SHOULD DODGE!', 'green']], [[108], ['MEET YOUR SLAVES!', 'white'], [''], ['ARMORED SLAVES HAVE TO BE ZAPPED FROM THE BACK', 'green'], ['OR SIDES - UNTIL THEY THROW THEIR SHIELDS AWAY.', 'green', 'indent']], [[108], ['MEET YOUR SLAVES!', 'white'], [''], ['THE PRINCESS COMMANDS THE SLAVE REBELLION.', 'green'], ['GRAB HER BEFORE SHE FLEES THE BATTLEFIELD!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['WHILE YOUR LASER IS ON A COCOONED SLAVE,', 'green', 'indent'], ['SHE WILL BE UNABLE TO BREAK FREE!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['YOU CAN USE YOUR LASER TO REEL A SLAVE IN,', 'green'], ['HANDY IF SHE\'S IN THE MIDDLE OF A FIRE!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['YOU EARN AN EXTRA QUEEN EVERY', 'green', 'indent'], ['' + this.game.extend_score + ' POINTS. VERY HANDY!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['AN ASSASSIN\'S KNIFE WILL ALWAYS', 'green'], ['BOUNCE TWICE BEFORE DISAPPEARING!', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['DUE TO THE PLANET\'S DISTANCE FROM THE SUN,', 'green'], ['THE MARTIAN YEAR IS TWICE AS LONG AS EARTH\'S!', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['MARTIAN DUST STORMS ARE SO LARGE', 'green'], ['THEY SOMETIMES COVER THE ENTIRE PLANET!', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['MARS\'S ICE CAPS ARE SO BIG THAT IF THEY', 'green'], ['MELTED, MARS WOULD BE COVERED IN WATER!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['REMEMBER THAT YOU\'RE A SPIDER! YOU CAN SNEAK', 'green'], ['UP ON SLAVES CLOSER THAN YOU MIGHT EXPECT.', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['A POWER GEM IS WORTH AS MANY POINTS AS', 'green'], ['THE SLAVE THAT DROPPED IT. GRAB \'EM!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['WANT TO START LATER IN THE GAME?', 'green'], ['TRY THE STAIRS IN THE THRONE ROOM!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['HAVE YOU LOOKED BEHIND THE DRAPES', 'green'], ['IN THE THRONE ROOM YET?', 'green']], [[108], ['YOU\'RE THE QUEEN!', 'white'], [''], ['YOU CAN PRESS THE P KEY', 'green'], ['TO PAUSE THE GAME!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['YOU CAN USUALLY OUTRUN A GLADIATOR', 'green'], ['WHO\'S CHASING YOU. TURN AND ZAP HER!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['THE CLOSER YOU ARE TO A SLAVE WHEN YOU COCOON', 'green'], ['HER, THE CLOSER YOU\'LL BE TO THE GEM SHE DROPS!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['REMEMBER THAT YOU CAN LEAVE A SLAVE COCOONED', 'green'], ['WHILE YOU COLLECT A GEM OR ANOTHER SLAVE!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['THE ASSASSIN\'S KNIFE TRAVELS DIAGONALLY!', 'green'], ['DON\'T LEAVE YOURSELF VULNERABLE!', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['A SYSTEM OF CANALS HAD TO BE BUILT ON MARS', 'green'], ['TO SUPPLY WATER FOR THE ROYAL BATH HOUSE.', 'green', 'indent']], [[108], ['SPIDER-QUEEN SEEKING', 'white'], [''], ['ISO SELF-ASSURED PRINCESS TYPE TO CHASE AROUND', 'green'], ['MY MARTIAN PLEASURE PALACE. MUST SHED GLITTER.', 'green', 'indent']], [[108], ['SPIDER-QUEEN SEEKING', 'white'], [''], ['LIGHT MY FIRE! YOU\'RE INTO CORSETS, BLADES AND', 'green'], ['FIRE PLAY. VISIT MY PALACE AND SET ME AFLAME.', 'green', 'indent']], [[108], ['SPIDER-QUEEN SEEKING', 'white'], [''], ['STRONG, BURLY TYPE? FANTASIZE ABOUT CARRYING A', 'green'], ['SHIELD AND BEING COMMANDEERED FROM BEHIND? CALL!', 'green', 'indent']], [[108], ['SPIDER-QUEEN SEEKING', 'white'], [''], ['BE MY GLADIATOR. YOU SHOW A TOUGH EXTERIOR,', 'green'], ['BUT WHEN I COME NEAR YOUR HEAD TURNS.', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['USE THE INVULNERABLE TIME YOU GET AFTER DYING', 'green'], ['TO CLEAR OUT A BUNCH OF SLAVES!', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['DON\'T BE AFRAID TO TAKE A STEP BACK TO PUT', 'green'], ['SOME SPACE BETWEEN YOU AND A CHARGING SLAVE.', 'green']], [[108], ['POWER PLAY TIP:', 'white'], [''], ['YOU CAN USE YOUR LASER TO DEFLECT', 'green'], ['ASSASSINS\' KNIVES, BUT BE CAREFUL!', 'green']], [[108], ['YOU\'RE THE QUEEN!', 'white'], [''], ['THE MARKS ON THE UPPER LEFT SHOW HOW', 'green', 'indent'], ['MANY SLAVES ARE IN YOUR VICINITY.', 'green']], [[108], ['YOU\'RE THE QUEEN!', 'white'], [''], ['THE MAP AT THE TOP OF THE SCREEN', 'green', 'indent'], ['SHOWS HOW CLOSE YOU ARE TO YOUR GOAL.', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['MARTIAN SCIENTISTS HAVE PROPOSED REPLACING', 'green', 'indent'], ['THE POWER CRYSTAL MINING FORCE WITH ROBOTS.', 'green']], [[108], ['DID YOU KNOW?', 'white'], [''], ['THE BUG-LADIES OF VENUS ARE EXPATRIATES FROM', 'green', 'indent'], ['MARS, WHOSE SPIDER-WOMEN FOUND THEM DELICIOUS.', 'green']]]];
};
v2.endScene = function () {
this.game.sounds.opening_loop.stop();
this.game.sounds.cutscene_loop.stop();
this.game.sounds.victory_loop.stop();
if (!this.victory) {
this.game.beginLevel(this.game.level, this.game.room);
} else {
this.rollCredits();
}
this.removeMe();
};
v2.rollCredits = function () {
var v3 = _root.attachMovie('Credits', 'Credits' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this.game;
};
v2.removeMe = function () {
for (var v2 in this.words) {
this.words[v2].removeTextField();
}
this.art.removeMe();
this.walker.removeMovieClip();
this.partner.removeMovieClip();
this.removeMovieClip();
};
ASSetPropFlags(_global.Cutscene.prototype, null, 1);
}
#endinitclip
}
movieClip 2139 __Packages.Dagger {
#initclip
if (!_global.Dagger) {
var v1 = function () {
super();
};
_global.Dagger = v1;
_global.Dagger extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.thunked = false;
this.deflected = false;
var v3 = Math.ceil(Math.random() * 2);
if (this.start_direction == 'up' or this.start_direction == 'down') {
this.vert_direction = this.start_direction;
} else {
this.hori_direction = this.start_direction;
}
this.faceMe();
this.frame = this.start_frame;
this.gotoAndStop(this.frame);
this.bounce_count = 0;
this.bounce_total = 2;
this.vanish_timer = 0;
this.vanish_speed = 50;
this.blink_speed = Math.ceil(this.vanish_speed / 2);
var v2 = 8;
switch (this.start_direction) {
case 'right':
this._x += v2;
break;
case 'left':
this._x -= v2;
break;
case 'down':
this._y += v2;
break;
case 'up':
this._y -= v2;
}
this.grace_period = 4;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
if (!this.thunked and !this.deflected) {
this.bounceMe();
this.bounceMe();
if (this.game.queen.queen_state == 'scuttling') {
this.checkPlayer();
}
}
this.animateMe();
if (this.thunked) {
this.vanishMe();
}
if (this._y <= -16 or this._y >= this.game.room_height + 16 or this.game.end_of_level) {
this.removeMe();
}
}
};
v2.bounceMe = function () {
var v2 = 2;
if (this.hori_direction == 'left') {
this._x -= v2;
} else {
this._x += v2;
}
if (this.vert_direction == 'up') {
this._y -= v2;
} else {
this._y += v2;
}
if (this.hori_direction == 'left') {
this.rounded_x = this._x - this.game.origin_x - 2;
} else {
this.rounded_x = this._x - this.game.origin_x - 44;
}
if (this.vert_direction == 'up') {
this.rounded_y = this._y - this.game.origin_y - 2;
} else {
this.rounded_y = this._y - this.game.origin_y - 44;
}
var v3 = this._x + 10;
var v4 = this._y + 10;
this.hori_flip = false;
this.vert_flip = false;
if (this.hori_direction == 'left') {
if (this.vert_direction == 'up') {
this.checkWalls(this._x, this._y);
} else {
this.checkWalls(this._x, this._y + 16);
}
} else {
if (this.vert_direction == 'up') {
this.checkWalls(this._x + 16, this._y);
} else {
this.checkWalls(this._x + 16, this._y + 16);
}
}
if (this._y < 16 or this._y >= 446 and !this.thunked) {
if (this._x < this.game.room_width / 2) {
if (this._x < 16 or this._x >= 60) {
this.hori_flip = true;
}
} else {
if (this._x < 528 or this._x >= 572) {
this.hori_flip = true;
}
}
}
if (this.hori_flip) {
if (this.hori_direction == 'left') {
this.hori_direction = 'right';
} else {
this.hori_direction = 'left';
}
}
if (this.vert_flip) {
if (this.vert_direction == 'up') {
this.vert_direction = 'down';
} else {
this.vert_direction = 'up';
}
}
if (this.grace_period > 0) {
--this.grace_period;
}
};
v2.checkWalls = function (containing_x, containing_y) {
while ((containing_x - this.game.origin_x) % 64 > 0) {
--containing_x;
}
while ((containing_y - this.game.origin_y) % 64 > 0) {
--containing_y;
}
var v5 = Math.floor((containing_x - this.game.origin_x) / 64);
var v4 = Math.floor((containing_y - this.game.origin_y) / 64);
var v9 = false;
var v8 = false;
var v6 = false;
var v7 = false;
if (this.rounded_x % 64 == 0) {
if (this.hori_direction == 'left') {
if (this.game.maze.mazes[this.game.layout][v4][v5] == 2 or this.game.maze.mazes[this.game.layout][v4][v5] == 3) {
v8 = true;
}
} else {
if (this.game.maze.mazes[this.game.layout][v4][v5 + 1] == 2 or this.game.maze.mazes[this.game.layout][v4][v5 + 1] == 3) {
v9 = true;
}
}
}
if (this.rounded_y % 64 == 0) {
if (this.vert_direction == 'up') {
if (this.game.maze.mazes[this.game.layout][v4][v5] == 1 or this.game.maze.mazes[this.game.layout][v4][v5] == 3) {
v7 = true;
}
} else {
if (this.game.maze.mazes[this.game.layout][v4 + 1][v5] == 1 or this.game.maze.mazes[this.game.layout][v4 + 1][v5] == 3) {
v6 = true;
}
}
}
if (v9 or v8 or v7 or v6) {
++this.bounce_count;
if (this.bounce_count == this.bounce_total + 1) {
this.thunked = true;
}
}
if (!this.thunked) {
if (v9 or v8) {
this.hori_flip = true;
}
if (v7 or v6) {
this.vert_flip = true;
}
}
};
v2.faceMe = function () {
if (this.vert_direction == 'up') {
if (this.hori_direction == 'right') {
this.start_frame = 1;
this.facing = 'upright';
} else {
this.start_frame = 7;
this.facing = 'upleft';
}
} else {
if (this.hori_direction == 'right') {
this.start_frame = 3;
this.facing = 'downright';
} else {
this.start_frame = 5;
}
}
this.gotoAndStop(this.start_frame);
};
v2.animateMe = function () {
this.faceMe();
if (!this.deflected) {
if (this.frame != this.start_frame) {
this.frame = this.start_frame;
} else {
this.frame = this.start_frame + 1;
}
} else {
if (this.frame < 9) {
this.frame = 9;
} else {
if (this.frame == 16) {
this.removeMe();
} else {
++this.frame;
}
}
this._x += this.deflect_x;
this._y += this.deflect_y;
}
this.gotoAndStop(this.frame);
};
v2.checkPlayer = function () {
var v2 = this.game.queen;
var v4 = this._x + 10;
var v3 = this._y + 10;
var v8 = v2._x + 32;
var v7 = v2._y + 32;
var v10 = 4;
var v9 = false;
if (v2.facing == 'left' or v2.facing == 'right') {
if (Math.abs(v7 - v3) <= v10) {
if (v2.facing == 'left' and v4 <= v8 or v2.facing == 'right' and v4 >= v8) {
v9 = true;
}
}
} else {
if (Math.abs(v8 - v4) <= v10) {
if (v2.facing == 'up' and v3 <= v7 or v2.facing == 'down' and v3 >= v7) {
v9 = true;
}
}
}
this.grid_x = Math.floor(v4 / 64);
this.grid_y = Math.floor(v3 / 64);
var v5 = false;
if (v9) {
var v6 = v2.laser;
switch (v2.facing) {
case 'right':
if (v4 <= v6.actual_x) {
v5 = true;
}
break;
case 'left':
if (v4 >= v6.actual_x) {
v5 = true;
}
break;
case 'down':
if (v3 <= v6.actual_y) {
v5 = true;
}
break;
case 'up':
if (v3 >= v6.actual_y) {
v5 = true;
}
}
}
if (v5 and this.grace_period == 0) {
this.getZapped();
} else {
if (this.hitTest(v2.collide_me)) {
v2.getKilled();
}
}
};
v2.vanishMe = function () {
if (this.vanish_timer < this.vanish_speed) {
++this.vanish_timer;
} else {
this.removeMe();
}
if (this.vanish_timer >= this.blink_speed) {
if (this._visible) {
this._visible = false;
} else {
this._visible = true;
}
}
};
v2.removeMe = function () {
this.removeMovieClip();
};
v2.getZapped = function () {
var v2 = 2;
var v3 = '?';
switch (this.start_direction) {
case 'left':
this.deflect_x = v2;
v3 = 'hori';
break;
case 'right':
this.deflect_x = -v2;
v3 = 'hori';
break;
case 'up':
this.deflect_y = v2;
v3 = 'vert';
break;
case 'down':
this.deflect_y = -v2;
v3 = 'vert';
}
if (v3 == 'hori') {
if (this.vert_direction == 'up') {
this.deflect_y = v2;
} else {
this.deflect_y = -v2;
}
} else {
if (this.hori_direction == 'left') {
this.deflect_x = v2;
} else {
this.deflect_x = -v2;
}
}
this.game.sounds.bumper.start();
this.deflected = true;
};
v2.onMouseDown = function () {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
trace('');
trace('' + this.grid_x + ', ' + this.grid_y);
}
};
ASSetPropFlags(_global.Dagger.prototype, null, 1);
}
#endinitclip
}
movieClip 2140 __Packages.Decor {
#initclip
if (!_global.Decor) {
var v1 = function () {
super();
};
_global.Decor = v1;
_global.Decor extends MovieClip;
var v2 = v1.prototype;
ASSetPropFlags(_global.Decor.prototype, null, 1);
}
#endinitclip
}
movieClip 2141 __Packages.Egg {
#initclip
if (!_global.Egg) {
var v1 = function () {
super();
};
_global.Egg = v1;
_global.Egg extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
if (this.identity == 'delicious') {
this.gotoAndStop(2);
} else {
this.gotoAndStop(1);
}
};
v2.onMouseDown = function () {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
if (this.identity == 'delicious') {
this.game.vocals.delicious.start();
} else {
this.game.vocals.icantwaittoeatthis.start();
}
this.removeMovieClip();
}
};
v2.onRollOver = function () {};
v2.onRollOut = function () {};
ASSetPropFlags(_global.Egg.prototype, null, 1);
}
#endinitclip
}
movieClip 2142 __Packages.Exit {
#initclip
if (!_global.Exit) {
var v1 = function () {
super();
};
_global.Exit = v1;
_global.Exit extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {};
v2.onEnterFrame = function () {};
ASSetPropFlags(_global.Exit.prototype, null, 1);
}
#endinitclip
}
movieClip 2143 __Packages.Game {
#initclip
if (!_global.Game) {
var v1 = function () {
super();
};
_global.Game = v1;
_global.Game extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.origin_x = 16;
this.origin_y = 16;
this.room_width = 608;
this.room_height = 480;
this.walls = [];
this.spikes = [];
this.enemies = [];
this.assassins = [];
this.objs = [];
this.tips = [];
this.tabs = [];
this.blips = [];
this.bg = this.createEmptyMovieClip('bg', _root.getNextHighestDepth());
this.bg._alpha = 0;
this.flashes = [];
this.last_flash = 0;
this.flash_count = 0;
this.facade = _root.attachMovie('Facade', 'Facade', _root.getNextHighestDepth());
this.facade._visible = false;
this.messages = _root.attachMovie('Messages', 'Messages', _root.getNextHighestDepth());
this.messages.game = this;
this.exit_left = _root.attachMovie('Exit', 'Exit_left' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.exit_left._x = 36;
this.exit_left._y = 22;
this.exit_left.game = this;
this.exit_left.gotoAndStop(1);
this.exit_left._visible = false;
this.exit_right = _root.attachMovie('Exit', 'Exit_right' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.exit_right._x = 552;
this.exit_right._y = 22;
this.exit_right.game = this;
this.exit_right.gotoAndStop(1);
this.exit_right._visible = false;
this.maze = _root.attachMovie('Maze', 'Maze', _root.getNextHighestDepth());
this.accelerate_timer = 0;
if (this.continued) {
this.area = this.continue_set[1];
this.area_room = this.continue_set[4];
this.room = this.continue_set[2];
this.level = this.continue_set[0];
this.layout = this.continue_set[3];
this.messages.one_timers = this.continue_set[6];
this.messages.no_specials = this.continue_set[7];
} else {
this.area = 1;
this.area_room = 1;
this.room = 0;
this.level = 0;
this.layout = 0;
}
this.phase = 1;
this.facade.gotoAndStop(this.area);
this.setupLevels();
this.score = 0;
this.lives = 3;
this.loadHigh();
this.extend_score = 25000;
this.next_extend = this.extend_score;
this.enemy_count = 0;
this.enemy_timer = 0;
this.enemy_entrances = [1000, 1000];
this.first_turn = true;
this.unpaused = true;
this.laser_off = false;
this.end_of_level = false;
this.mid_cutscene = false;
this.first_stage = false;
this.last_stage = false;
this.gameover = false;
this.gameover_timer = 0;
this.shieldless = false;
this.shieldless_speed = 160;
this.shieldless_timer = 0;
this.exit_direction = 'none';
this.key_debug = 65;
this.key_debug_clear = false;
this.key_pause = 80;
this.key_pause_clear = false;
this.demo_timer = 0;
this.demo_speed = 360;
this.tarantula_tied = false;
this.victory = false;
this.victory_timer = 0;
this.victory_speed = 50;
this.vocals.game = this;
this.key_clear = false;
};
v2.loadHigh = function () {
var v2 = SharedObject.getLocal('auntiepixelante/spiderqueens');
if (v2.data.high == null) {
this.high = 0;
v2.data.high = 0;
v2.flush();
} else {
this.high = v2.data.high;
}
};
v2.saveHigh = function () {
var v2 = SharedObject.getLocal('auntiepixelante/spiderqueens');
if (this.high > v2.data.high) {
trace('high score saved!');
v2.data.high = this.high;
v2.flush();
} else {
trace('old score\'s higher!');
}
};
v2.submitScore = function () {
trace('submitting score to adult swim');
_root.cmpSetObj.var3 = 4511;
_root.cmpSetObj.var1 = this.score;
_root.cmpSetObj.clearListeners();
};
v2.makeStarfield = function () {
var v5 = 100;
var v4 = 0;
while (v4 < v5) {
var v3 = _root.attachMovie('Star', 'Star' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = Math.ceil(Math.random() * 304) * 2;
v3._y = Math.ceil(Math.random() * 240) * 2;
this.starfield.push(v3);
++v4;
}
};
v2.onEnterFrame = function () {
if (this.first_turn) {
this.first_turn = false;
if (this.continued) {
this.beginLevel(this.level, this.room);
this.continued = false;
} else {
if (this.demo) {
this.level = 14;
this.room = 18;
this.beginLevel(this.level, this.room);
} else {
this.cutScene(0);
}
}
}
if (this.unpaused) {
if (!this.first_stage and !this.end_of_level) {
this.accelerateGame();
this.populateDungeon();
}
this.checkScore();
}
if (this.gameover) {
this.gameOver();
}
this.fadeBackground();
if (this.demo) {
this.attractMode();
}
if (this.victory) {
this.victoryParty();
}
this.debugMe();
};
v2.attractMode = function () {
if (this.demo_timer < this.demo_speed) {
++this.demo_timer;
} else {
this.reminderScreen();
}
if (Key.isDown(32) and this.key_clear) {
this.startGame();
}
if (!Key.isDown(32)) {
this.key_clear = true;
}
};
v2.beginLevel = function (number, layout) {
this.first_stage = false;
this.last_stage = false;
if (this.level == 13) {
this.last_stage = true;
}
if (this.level == 0) {
this.first_stage = true;
}
this.facade.gotoAndStop(this.area);
this.facade._visible = true;
this.messages.specialReset();
this.messages.updateTitle();
this.messages.updateMap();
this.buildLevel(layout);
this.level = number;
this.phase = 1;
this.room_speed = this.levels[this.level][0][0];
this.accelerate_speed = this.levels[this.level][0][1];
this.max_enemies = this.levels[this.level][0][2];
this.enemy_speed = this.levels[this.level][0][3];
if (this.first_stage and !this.demo) {
this.secretPassage();
this.maze.mazes[0][2][4] = 1;
this.buildArrow();
}
for (var v3 in this.rooms[this.area]) {
if (this.rooms[this.area][v3] == layout) {
this.rooms[this.area].splice(v3, 1);
}
}
this.enemy_count = 0;
this.enemy_timer = 0;
this.accelerate_timer = 0;
this.shieldless_timer = 0;
this.shieldless = false;
this.end_of_level = false;
this.messages.statusVisible();
if (!this.demo) {
this.makeQueen();
}
if (!this.demo and !this.first_stage and !this.last_stage) {
this.makeBlips();
this.pop_tab = true;
}
if (this.levels[this.level][1][0] == 'cocoon1') {
this.levels[this.level][1].shift();
this.cocoonWave(1);
}
if (this.levels[this.level][1][0] == 'cocoon2') {
this.levels[this.level][1].shift();
this.cocoonWave(2);
}
if (this.levels[this.level][1][0] == 'cocoon3') {
this.levels[this.level][1].shift();
this.cocoonWave(3);
}
if (this.levels[this.level][1][0] == 'cocoon4') {
this.levels[this.level][1].shift();
this.cocoonWave(4);
}
if (this.levels[this.level][1][0] == 'tarantula') {
this.levels[this.level][1].shift();
this.queenTarantula();
}
if (!this.demo and !this.last_stage) {
if (this.first_stage) {
this.sounds.footsteps.start();
} else {
this.sounds.wakeup.start();
}
}
if (this.last_stage) {
this.vocals.queenTarantula();
}
this.unpaused = true;
this.mid_cutscene = false;
};
v2.makeQueen = function (tiedup) {
this.queen = _root.attachMovie('Queen', 'Queen', _root.getNextHighestDepth());
this.queen._x = 272;
this.queen._y = 208;
this.queen.game = this;
this.objs.push(this.queen);
var v3 = _root.attachMovie('Laser', 'Laser', _root.getNextHighestDepth());
v3.mom = this.queen;
v3.laser_type = 'spider';
this.queen.laser = v3;
this.objs.push(v3);
this.queen.swapDepths(_root.getNextHighestDepth());
if (tiedup) {
this.queen.queen_state = 'struggling';
this.queen._y = 256;
}
};
v2.makeTwinkle = function (twinkle_type, where_x, where_y) {
var v3 = _root.attachMovie('Twinkle', 'Twinkle', _root.getNextHighestDepth());
v3.twinkle_type = twinkle_type;
v3._x = where_x;
v3._y = where_y;
this.objs.push(v3);
};
v2.makeTabs = function () {
var v7 = this.levels[this.level].length - 1;
var v5 = 2;
var v6 = 16;
var v4 = 0;
while (v4 < v7) {
var v3 = _root.attachMovie('Tab', 'Tab', _root.getNextHighestDepth());
v3._y = v5 + v6 * v4;
v3.gotoAndStop(1);
this.tabs.push(v3);
this.objs.push(v3);
++v4;
}
};
v2.popTab = function () {
if (this.pop_tab) {
this.pop_tab = false;
(this.tabs.pop()).removeMovieClip();
}
};
v2.makeBlips = function () {
var v3 = 0;
var v6 = 0;
var v5 = 0;
var v10 = false;
while (!v10) {
switch (this.levels[this.level][v6][v5]) {
case 'dagger':
v3 += 1;
break;
case 'shield':
v3 += 1;
break;
case 'princess':
v3 += 1;
break;
case 'gladiator':
v3 += 1;
break;
case 'alchemist':
v3 += 1;
break;
case 'ambush':
v3 += 4;
break;
case 'shield_wave':
v3 += 4;
break;
case 'glad_wave':
v3 += 4;
break;
case 'alchemist_wave':
v3 += 4;
break;
case 'cocoon1':
v3 += 8;
break;
case 'cocoon2':
v3 += 8;
break;
case 'cocoon3':
v3 += 8;
break;
case 'cocoon4':
v3 += 4;
}
++v5;
if (v5 == this.levels[this.level][v6].length) {
v5 = 0;
++v6;
}
if (v6 == this.levels[this.level].length) {
v10 = true;
}
}
var v12 = 2;
var v7 = 2;
var v11 = 2;
var v13 = 1;
var v9 = 4;
var v8 = 0;
while (v8 < v3) {
var v4 = _root.attachMovie('Tab', 'Tab', _root.getNextHighestDepth());
v4._x = v7;
v4._y = v11;
v4.gotoAndStop(2);
this.blips.push(v4);
this.objs.push(v4);
v7 += v9;
if (v7 / v9 > v13) {
v7 = v12;
v11 += v9;
}
++v8;
}
};
v2.popBlip = function () {
(this.blips.pop()).removeMovieClip();
};
v2.buildLevel = function (number) {
var v6 = 0;
while (v6 < 10) {
var v4 = 0;
while (v4 < 8) {
var v5 = this.maze.mazes[number][v4][v6];
if (v5 == 1 or v5 == 3) {
this.buildWall(v6 * 64 + this.origin_x - 2, v4 * 64 + this.origin_y - 2, 'horizontal', false);
}
if (v5 == 2 or v5 == 3) {
this.buildWall(v6 * 64 + this.origin_x - 2, v4 * 64 + this.origin_y - 2, 'vertical', false);
}
++v4;
}
++v6;
}
var v3 = 8;
while (this.maze.mazes[number][v3] != null) {
if (this.maze.mazes[number][v3][0] == 'spike') {
this.buildSpike(this.maze.mazes[number][v3][1], this.maze.mazes[number][v3][2], this.maze.mazes[number][v3][3], this.maze.mazes[number][v3][4]);
} else {
if (this.maze.mazes[number][v3][0] == 'warp') {
this.buildWarp(this.maze.mazes[number][v3][1], this.maze.mazes[number][v3][2], this.maze.mazes[number][v3][3], this.maze.mazes[number][v3][4]);
} else {
this.buildDecor(this.maze.mazes[number][v3][0], this.maze.mazes[number][v3][1], this.maze.mazes[number][v3][2]);
}
}
++v3;
}
if (this.first_stage) {
this.door_upleft = this.buildDoor('upleft', 146, 64);
this.door_upright = this.buildDoor('upright', 402, 64);
this.door_downleft = this.buildDoor('downleft', 146, 338);
this.door_downright = this.buildDoor('downright', 402, 338);
this.changeGrid(2, 1, true);
this.changeGrid(6, 1, true);
this.changeGrid(2, 6, true);
this.changeGrid(6, 6, true);
this.buildWall(this.origin_x + 128, this.origin_y + 64, 'horizontal', true);
this.buildWall(this.origin_x + 384, this.origin_y + 64, 'horizontal', true);
this.buildWall(this.origin_x + 128, this.origin_y + 384, 'horizontal', true);
this.buildWall(this.origin_x + 384, this.origin_y + 384, 'horizontal', true);
} else {
this.door_upleft = this.buildDoor('upleft', 18, 0);
this.door_upright = this.buildDoor('upright', 530, 0);
this.door_downleft = this.buildDoor('downleft', 18, 402);
this.door_downright = this.buildDoor('downright', 530, 402);
this.changeGrid(0, 0, true);
this.changeGrid(8, 0, true);
this.changeGrid(0, 7, true);
this.changeGrid(8, 7, true);
this.buildWall(14, 14, 'horizontal', true);
this.buildWall(526, 14, 'horizontal', true);
this.buildWall(14, 462, 'horizontal', true);
this.buildWall(526, 462, 'horizontal', true);
}
trace('');
this.layout = number;
this.addFlash('white', 100);
};
v2.buildWall = function (wall_x, wall_y, orient, invisible) {
var v4 = (this.area - 1) * 2;
if (this.area == 5) {
v4 -= 2;
}
var v3 = _root.attachMovie('Wall', 'Wall' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = wall_x;
v3._y = wall_y;
if (orient == 'horizontal') {
v3.gotoAndStop(1 + v4);
} else {
v3.gotoAndStop(2 + v4);
}
if (invisible) {
v3._visible = false;
}
this.walls.push(v3);
};
v2.buildDecor = function (appearance, where_x, where_y) {
var v3 = _root.attachMovie('Decor', 'Decor' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.gotoAndStop(appearance);
v3._x = where_x * 64 + this.origin_x;
v3._y = where_y * 64 + this.origin_y;
this.objs.push(v3);
};
v2.buildSpike = function (facing, phase, where_x, where_y) {
var v3 = _root.attachMovie('Spike', 'Spike' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this;
v3.facing = facing;
v3.spike_phase = phase;
v3._x = where_x * 64 + this.origin_x;
v3._y = where_y * 64 + this.origin_y;
this.objs.push(v3);
this.walls.push(v3);
this.spikes.push(v3);
};
v2.buildDoor = function (place, where_x, where_y) {
var v3 = _root.attachMovie('Door', 'Door' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this;
v3.place = place;
v3._x = where_x;
v3._y = where_y;
this.objs.push(v3);
return v3;
};
v2.buildWarp = function (area, where_x, where_y, amount) {
var v3 = _root.attachMovie('Warp', 'Warp' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this;
v3.area = area;
v3._x = where_x * 64 + this.origin_x;
v3._y = where_y * 64 + this.origin_y;
v3.amount = amount;
v3._visible = false;
this.objs.push(v3);
};
v2.secretPassage = function () {
var v3 = _root.attachMovie('Secret', 'Secret' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = 192 + this.origin_x + 30;
v3._y = +this.origin_y;
v3.game = this;
this.objs.push(v3);
};
v2.buildArrow = function () {
var v3 = _root.attachMovie('Arrow', 'Arrow' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = 272;
v3._y = 302;
v3.game = this;
this.objs.push(v3);
};
v2.buildBubble = function () {
var v3 = _root.attachMovie('Thoughtbubble', 'Thoughtbubble' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.queen = this.queen;
this.queen.bubble = v3;
this.objs.push(v3);
};
v2.changeGrid = function (grid_x, grid_y, walls) {
if (walls) {
if (this.maze.mazes[this.room][grid_y][grid_x] == 0) {
this.maze.mazes[this.room][grid_y][grid_x] = 1;
} else {
if (this.maze.mazes[this.room][grid_y][grid_x] == 2) {
this.maze.mazes[this.room][grid_y][grid_x] = 3;
}
}
} else {
if (this.maze.mazes[this.room][grid_y][grid_x] == 1) {
this.maze.mazes[this.room][grid_y][grid_x] = 0;
} else {
if (this.maze.mazes[this.room][grid_y][grid_x] == 3) {
this.maze.mazes[this.room][grid_y][grid_x] = 2;
}
}
}
};
v2.accelerateGame = function () {
++this.accelerate_timer;
if (this.accelerate_timer >= this.accelerate_speed) {
this.accelerate_timer = 0;
if (this.room_speed < 4) {
++this.room_speed;
trace('speed up!');
this.sounds.haunted.start();
this.accelerate_speed;
}
}
};
v2.populateDungeon = function () {
if (this.enemy_timer < this.enemy_speed) {
++this.enemy_timer;
} else {
if (this.enemy_count < this.max_enemies) {
if (this.levels[this.level][this.phase].length == 0) {
this.discardShields();
if (this.enemy_count == 0) {
if (this.levels[this.level].length == this.phase + 1) {
if (!this.end_of_level) {
this.endLevel();
}
} else {
trace('phase ' + (this.phase + 1));
this.shieldless = false;
this.shieldless_timer = 0;
++this.phase;
this.pop_tab = true;
}
}
} else {
this.nextEnemy(this.levels[this.level][this.phase].shift());
}
}
}
};
v2.nextEnemy = function (enemy) {
if (enemy == 'speed2' or enemy == 'speed-2') {
if (this.room_speed < 2 or enemy == 'speed-2') {
this.room_speed = 2;
this.accelerate_timer = 0;
}
} else {
if (enemy == 'speed3' or enemy == 'speed-3') {
if (this.room_speed < 3 or enemy == 'speed-3') {
this.room_speed = 3;
this.accelerate_timer = 0;
}
} else {
if (enemy == 'speed4') {
if (this.room_speed < 4) {
this.room_speed = 4;
this.accelerate_timer = 0;
}
} else {
if (enemy == 'speed_sfx') {
this.sounds.haunted.start();
} else {
if (enemy == 'crowd') {
this.max_enemies = 16;
} else {
if (enemy == 'laser_off') {
this.laser_off = true;
this.messages.flashMessage('< < < survival wave > > >', false);
} else {
if (enemy == 'laser_on') {
this.laser_off = false;
this.messages.flashMessage('your laser is fully charged again', false);
} else {
if (enemy == 'pause') {
this.enemy_timer = 0;
} else {
if (enemy == 'spikes') {
this.buildSpike('down', 'hidden', 3, 1);
this.buildSpike('up', 'hidden', 3, 5);
this.buildSpike('down', 'hidden', 6, 1);
this.buildSpike('up', 'hidden', 6, 5);
} else {
if (enemy == 'assassin') {
var v4 = _root.attachMovie('Assassin', 'Assassin' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v4.game = this;
v4.laser = this.queen.laser;
this.assassins.push(v4);
this.objs.push(v4);
} else {
if (enemy == '-assassin') {
this.removeAssassins();
} else {
if (enemy == 'ambush') {
this.releaseSlave('nw', 'dagger');
this.releaseSlave('ne', 'dagger');
this.releaseSlave('sw', 'dagger');
this.releaseSlave('se', 'dagger');
} else {
if (enemy == 'shield_wave') {
this.releaseSlave('nw', 'shield');
this.releaseSlave('ne', 'shield');
this.releaseSlave('sw', 'shield');
this.releaseSlave('se', 'shield');
} else {
if (enemy == 'glad_wave') {
this.releaseSlave('nw', 'gladiator');
this.releaseSlave('ne', 'gladiator');
this.releaseSlave('sw', 'gladiator');
this.releaseSlave('se', 'gladiator');
} else {
if (enemy == 'alchemist_wave') {
this.releaseSlave('nw', 'alchemist');
this.releaseSlave('ne', 'alchemist');
this.releaseSlave('sw', 'alchemist');
this.releaseSlave('se', 'alchemist');
} else {
if (enemy == 'random') {
this.randomEnemy();
this.levels[this.level][this.phase].push('random');
} else {
this.releaseSlave(this.randomEntrance(), enemy);
if (enemy == 'alchemist') {
this.messages.flashMessage('the alchemist sets fires wherever she steps', true);
}
if (enemy == 'gladiator') {
this.messages.flashMessage('the gladiator will chase you if she sees you', true);
}
if (enemy == 'shield') {
this.messages.flashMessage('armored slaves can\'t be zapped from the front', true);
}
if (enemy == 'princess') {
this.messages.flashMessage('recapture the slave princess before she flees', true);
}
}
}
}
}
}
this.enemy_timer = 0;
}
}
}
}
}
}
}
}
}
}
}
};
v2.randomEnemy = function () {
var v2 = Math.ceil(Math.random() * 100);
if (v2 > 90) {
this.releaseSlave(this.randomEntrance(), 'alchemist');
} else {
if (v2 > 70 and v2 <= 90) {
this.releaseSlave(this.randomEntrance(), 'shield');
} else {
if (v2 > 40 and v2 <= 70) {
this.releaseSlave(this.randomEntrance(), 'gladiator');
} else {
this.releaseSlave(this.randomEntrance(), 'dagger');
}
}
}
};
v2.randomEntrance = function () {
var v3 = false;
while (!v3) {
var v2 = Math.floor(Math.random() * 4);
if (this.enemy_entrances[0] != v2 and this.enemy_entrances[1] != v2) {
v3 = true;
this.enemy_entrances.shift();
this.enemy_entrances.push(v2);
}
}
switch (v2) {
case 0:
return 'nw';
break;
case 1:
return 'ne';
break;
case 2:
return 'sw';
break;
case 3:
return 'se';
}
};
v2.releaseSlave = function (where, type) {
var v3 = _root.attachMovie('Slave', 'Slave' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
if (where == 'nw' or where == 'sw') {
v3._x = this.origin_x;
} else {
v3._x = this.room_width - this.origin_x - 64;
}
if (where == 'nw' or where == 'ne') {
v3._y = -64 - this.origin_y;
v3.facing = 'down';
} else {
v3._y = this.room_height + this.origin_y;
v3.facing = 'up';
}
v3.game = this;
v3.slave_type = type;
this.enemies.push(v3);
this.objs.push(v3);
++this.enemy_count;
if (!this.first_stage and !this.demo) {
this.messages.flashMessage('use your laser to recapture slaves', true);
}
};
v2.removeAssassins = function () {
for (var v2 in this.assassins) {
this.assassins[v2].gone = true;
}
};
v2.discardShields = function () {
var v2 = false;
for (var v3 in this.enemies) {
if (this.enemies[v3].slave_type != 'shield' and this.enemies[v3].slave_type != 'shieldless') {
v2 = true;
}
}
if (!v2) {
if (this.shieldless_timer < this.shieldless_speed) {
++this.shieldless_timer;
} else {
this.shieldless_timer = 0;
if (!this.shieldless and !this.end_of_level) {
trace('goodbye shields!');
this.sounds.ghost.start();
}
this.shieldless = true;
}
}
};
v2.endLevel = function () {
trace('level cleared!');
this.removeAssassins();
this.end_of_level = true;
for (var v3 in this.walls) {
if (!this.walls[v3]._visible) {
!this.walls[v3].removeMovieClip();
}
}
for (v3 in this.spikes) {
if (this.spikes[v3].spike_phase == 'out') {
this.spikes[v3].out_timer = this.spikes[v3].out_speed * 0.75;
}
}
if (this.rooms[this.area][1] == null) {
var v4 = this.area * 4 + 1;
this.exit_left.gotoAndStop(v4);
this.exit_right.gotoAndStop(v4);
} else {
var v5 = this.rooms[this.area][0];
var v6 = this.rooms[this.area][1];
this.exit_left.gotoAndStop(v5);
this.exit_right.gotoAndStop(v6);
}
this.exit_left.swapDepths(_root.getNextHighestDepth());
this.exit_right.swapDepths(_root.getNextHighestDepth());
this.exit_left._visible = true;
this.exit_right._visible = true;
this.queen.swapDepths(_root.getNextHighestDepth());
this.door_upleft.swingOpen();
this.door_upright.swingOpen();
this.door_downleft.swingOpen();
this.door_downright.swingOpen();
this.changeGrid(0, 0, false);
this.changeGrid(8, 0, false);
this.changeGrid(0, 7, false);
this.changeGrid(8, 7, false);
if (this.level == 1) {
this.messages.flashMessage('proceed to the next part of the palace!', true);
}
if (this.level == 2) {
this.messages.flashMessage('by the way, you can press p to pause the game', true);
}
this.sounds.stairs.start();
if (!this.last_stage) {
this.vocals.saySomething('endoflevel');
}
};
v2.nextLevel = function () {
this.removeLevel();
this.cutScene(this.level);
};
v2.removeLevel = function () {
for (var v2 in this.objs) {
if (this.objs[v2].removeme) {
this.objs[v2].removeMe();
} else {
this.objs[v2].removeMovieClip();
}
}
this.objs.splice(0, this.objs.length);
for (v2 in this.walls) {
this.walls[v2].removeMovieClip();
}
this.walls.splice(0, this.walls.length);
this.spikes.splice(0, this.spikes.length);
for (v2 in this.enemies) {
this.enemies[v2].removeMovieClip();
}
this.enemies.splice(0, this.enemies.length);
this.exit_left._visible = false;
this.exit_right._visible = false;
};
v2.fadeBackground = function () {
var v2 = 20;
if (this.bg._alpha >= 0) {
this.bg._alpha -= v2;
} else {
if (this.flashes[0] != null) {
this.flashBackground(this.flashes.shift());
}
}
};
v2.flashBackground = function (bundle) {
var v3 = bundle[0];
var v4 = bundle[1];
if (v3 == 'random') {
v3 = this.randomColor();
}
this.last_flash = v3;
this.bg.removeMovieClip();
this.bg = this.createEmptyMovieClip('bg', _root.getNextHighestDepth());
this.bg.beginFill(v3);
this.bg.moveTo(0, 0);
this.bg.lineTo(this.room_width, 0);
this.bg.lineTo(this.room_width, this.room_height);
this.bg.lineTo(0, this.room_height);
this.bg.lineTo(0, 0);
this.bg.endFill();
this.bg._alpha = v4;
};
v2.hexColor = function (color) {
switch (color) {
case 'white':
return 16579836;
break;
case 'cyan':
return 64764;
break;
case 'pink':
return 14483550;
break;
case 'purple':
return 6881446;
break;
case 'yellow':
return 14012672;
break;
case 'red':
return 16125711;
break;
case 'green':
return 64512;
break;
case 'blue':
return 4023295;
break;
case 'black':
return 0;
}
};
v2.randomColor = function () {
var v2 = this.last_flash;
while (v2 == this.last_flash) {
var v3 = Math.ceil(Math.random() * 7);
switch (v3) {
case 1:
v2 = this.hexColor('white');
break;
case 2:
v2 = this.hexColor('cyan');
break;
case 3:
v2 = this.hexColor('purple');
break;
case 4:
v2 = this.hexColor('yellow');
break;
case 5:
v2 = this.hexColor('red');
break;
case 6:
v2 = this.hexColor('green');
break;
case 7:
v2 = this.hexColor('blue');
}
}
return v2;
};
v2.addFlash = function (color, opacity) {
if (opacity == null) {
opacity = 100;
}
if (color == 'random') {
this.flashes.push(['random', opacity]);
} else {
this.flashes.push([this.hexColor(color), opacity]);
}
};
v2.checkScore = function () {
if (this.score > this.high) {
this.high = this.score;
}
if (this.score >= this.next_extend) {
trace('1up!');
++this.lives;
this.next_extend += this.extend_score;
this.sounds.extend.start();
}
};
v2.setupLevels = function () {
this.levels = [[[1, 10000, 8, 96], []], [[1, 960, 6, 32], ['ambush'], ['pause', 'speed-2', 'princess'], ['speed-2', 'dagger', 'dagger', 'assassin', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger'], ['speed3', '-assassin', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'assassin', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger']], [[1, 960, 6, 32], ['dagger', 'dagger', 'shield', 'dagger', 'dagger', 'shield', 'dagger', 'dagger'], ['speed2', 'pause', 'ambush', 'shield', 'shield', 'assassin', 'dagger', 'dagger', 'dagger', 'dagger', 'princess'], ['speed3', 'shield', 'shield', '-assassin', 'assassin', 'dagger', 'dagger', 'assassin', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger']], [[1, 960, 6, 32], ['cocoon1'], ['speed3', 'pause', 'ambush'], ['speed-2', 'assassin', 'shield', 'shield', 'assassin', 'shield', 'shield', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger'], ['speed3', 'shield_wave', 'pause', 'princess'], ['assassin', 'pause', 'ambush', 'shield', 'shield']], [[2, 1280, 8, 32], ['ambush', 'gladiator', 'gladiator', 'gladiator', 'gladiator', 'dagger', 'dagger', 'dagger', 'dagger'], ['pause', 'glad_wave', 'alchemist'], ['speed-2', 'shield_wave', 'gladiator', 'gladiator', 'dagger', 'dagger', 'assassin', 'assassin', 'gladiator', 'gladiator', 'dagger', 'dagger'], ['speed3', 'pause', 'glad_wave', 'alchemist'], ['speed-3', 'shield', 'gladiator', 'dagger', 'gladiator', 'shield', 'dagger', 'gladiator', 'princess', 'dagger', 'gladiator']], [[2, 1280, 8, 32], ['ambush', 'dagger', 'dagger', 'alchemist', 'gladiator', 'gladiator', 'gladiator', 'gladiator', 'dagger', 'dagger', 'dagger', 'dagger'], ['speed3', 'alchemist', 'alchemist'], ['speed-2', 'pause', 'glad_wave', 'assassin', 'shield', 'assassin', 'shield', 'assassin', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger'], ['-assassin', 'speed3', 'alchemist', 'alchemist', 'princess'], ['ambush', 'assassin', 'shield_wave', 'pause', 'alchemist', 'gladiator', 'gladiator', 'gladiator', 'alchemist']], [[2, 1280, 8, 32], ['cocoon2'], ['speed-2', 'shield_wave', 'pause', 'alchemist', 'alchemist', 'gladiator', 'gladiator', 'dagger', 'dagger', 'gladiator', 'gladiator'], ['pause', 'glad_wave', 'pause', 'glad_wave'], ['speed3', 'pause', 'assassin', 'assassin', 'assassin', 'ambush', 'pause', 'alchemist', 'dagger', 'dagger', 'gladiator', 'gladiator'], ['speed-3', 'ambush', 'shield', 'shield', 'gladiator', 'gladiator', 'gladiator', 'gladiator', 'shield', 'shield', 'alchemist', 'dagger', 'dagger'], ['alchemist', 'pause', 'alchemist', 'pause', 'alchemist', 'pause', 'alchemist', 'pause', 'princess']], [[2, 1600, 16, 64], ['ambush', 'glad_wave', 'ambush', 'glad_wave'], ['speed-2', 'assassin', 'alchemist', 'assassin', 'alchemist', 'assassin', 'gladiator', 'alchemist', 'gladiator', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger'], ['glad_wave', 'alchemist', 'alchemist', 'glad_wave'], ['speed3', 'shield_wave', 'ambush', 'glad_wave', 'dagger', 'dagger', 'dagger', 'dagger', 'gladiator', 'gladiator', 'gladiator', 'gladiator'], ['speed-3', 'pause', 'ambush', 'alchemist', 'alchemist', 'shield', 'shield', 'princess', 'glad_wave']], [[2, 1600, 16, 64], ['shield_wave', 'alchemist', 'ambush', 'alchemist', 'glad_wave'], ['assassin', 'assassin', 'gladiator', 'dagger', 'assassin', 'assassin', 'gladiator', 'dagger', 'ambush', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger'], ['speed-3', 'ambush', 'shield', 'shield', 'glad_wave', 'alchemist', 'dagger', 'dagger', 'dagger', 'dagger'], ['-assassin', 'pause', 'glad_wave', 'princess'], ['speed-3', 'alchemist', 'alchemist', 'alchemist', 'alchemist', 'pause', 'ambush', 'pause', 'gladiator', 'gladiator', 'gladiator', 'gladiator']], [[2, 1600, 16, 64], ['cocoon3'], ['ambush', 'assassin', 'shield_wave', 'assassin', 'glad_wave', 'assassin', 'dagger', 'dagger', 'gladiator', 'gladiator', 'dagger', 'dagger'], ['speed-2', 'alchemist', 'alchemist', 'shield', 'shield', 'dagger', 'dagger', 'gladiator', 'gladiator', 'dagger', 'dagger', 'alchemist', 'alchemist'], ['speed3', 'pause', 'ambush', 'pause', 'glad_wave', 'alchemist', 'gladiator', 'dagger', 'alchemist', 'gladiator', 'dagger'], ['-assassin', 'pause', 'ambush', 'shield', 'shield', 'alchemist', 'glad_wave', 'shield', 'shield', 'alchemist', 'princess']], [[1, 1600, 8, 32], ['dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'dagger', 'speed2', 'speed_sfx', 'dagger', 'dagger', 'shield', 'dagger', 'dagger', 'shield', 'dagger', 'dagger', 'shield', 'dagger', 'dagger', 'shield', 'speed3', 'speed_sfx', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'gladiator', 'dagger', 'dagger', 'alchemist', 'dagger', 'dagger', 'dagger', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'gladiator', 'gladiator', 'gladiator']], [[3, 1280, 8, 64], ['assassin', 'shield', 'assassin', 'shield', 'assassin', 'shield', 'assassin', 'shield', 'assassin', 'ambush', 'gladiator', 'gladiator', 'dagger', 'dagger', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger', 'alchemist', 'gladiator', 'dagger'], ['speed-3', 'pause', 'ambush', 'alchemist', 'alchemist', 'gladiator', 'gladiator', 'dagger', 'dagger', 'alchemist', 'alchemist', 'dagger', 'gladiator', 'dagger', 'gladiator', 'alchemist', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger'], ['speed-3', '-assassin', 'spikes', 'pause', 'assassin', 'glad_wave', 'assassin', 'alchemist', 'assassin', 'gladiator', 'assassin', 'alchemist', 'assassin', 'gladiator', 'shield', 'shield', 'dagger', 'dagger', 'dagger', 'dagger', 'gladiator', 'gladiator'], ['speed-3', 'gladiator', 'gladiator', 'gladiator', 'gladiator', 'shield_wave', 'dagger', 'dagger', 'gladiator', 'gladiator', 'alchemist', 'alchemist', 'gladiator', 'gladiator', 'gladiator', 'gladiator']], [[2, 1280, 12, 32], ['cocoon4', 'pause', 'alchemist_wave', 'shield_wave', 'dagger', 'dagger', 'dagger', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger', 'alchemist', 'gladiator', 'dagger', 'gladiator', 'dagger', 'pause', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'gladiator', 'dagger', 'dagger', 'gladiator', 'gladiator', 'dagger', 'dagger', 'assassin', 'assassin', 'assassin', 'assassin', 'pause', 'shield', 'dagger', 'dagger', 'gladiator', 'gladiator', 'gladiator', 'gladiator', 'shield', 'dagger', 'dagger', 'alchemist', 'shield', 'gladiator', 'gladiator', 'dagger', 'dagger', 'gladiator', 'gladiator', 'gladiator', 'gladiator', 'dagger', 'dagger', 'dagger', 'dagger', 'alchemist', 'gladiator', 'gladiator', 'gladiator', 'gladiator']], [[3, 16000, 5, 96], ['tarantula', 'ambush', 'random']], [[2, 16000, 8, 24], ['dagger', 'random']]];
this.areas = ['royal chambers', 'palace grounds', 'the dungeons', 'mars', 'queen tarantula\'s lair'];
if (this.continued) {
this.rooms = this.continue_set[5];
} else {
this.rooms = [[null], [1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12], [13, 14, 15, 16], [17]];
}
};
v2.cocoonWave = function (number) {
var v2 = [[[null]], [['dagger', 1, 1, 'down'], ['shield', 3, 1, 'down'], ['shield', 5, 1, 'down'], ['dagger', 7, 1, 'down'], ['dagger', 1, 5, 'up'], ['shield', 3, 5, 'up'], ['shield', 5, 5, 'up'], ['dagger', 7, 5, 'up']], [['gladiator', 1, 1, 'down'], ['alchemist', 3, 1, 'down'], ['alchemist', 5, 1, 'down'], ['gladiator', 7, 1, 'down'], ['gladiator', 1, 5, 'up'], ['alchemist', 3, 5, 'up'], ['alchemist', 5, 5, 'up'], ['gladiator', 7, 5, 'up']], [['alchemist', 1, 1, 'down'], ['shield', 3, 1, 'down'], ['alchemist', 5, 1, 'down'], ['alchemist', 7, 1, 'down'], ['alchemist', 1, 5, 'up'], ['alchemist', 3, 5, 'up'], ['shield', 5, 5, 'up'], ['alchemist', 7, 5, 'up']], [['princess', 1, 1, 'down'], ['princess', 7, 1, 'down'], ['princess', 1, 5, 'up'], ['princess', 7, 5, 'up']]];
for (var v4 in v2[number]) {
this.cocoonedSlave(v2[number][v4][0], v2[number][v4][1], v2[number][v4][2], v2[number][v4][3]);
}
(this.tabs.pop()).removeMovieClip();
};
v2.cocoonedSlave = function (type, where_x, where_y, facing) {
var v3 = _root.attachMovie('Slave', 'Slave' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this;
v3.slave_type = type;
v3.slave_state = 'cocooned';
v3._x = where_x * 64 + this.origin_x;
v3._y = where_y * 64 + this.origin_y;
v3.facing = facing;
this.enemies.push(v3);
this.objs.push(v3);
++this.enemy_count;
this.messages.flashMessage('don\'t let those slaves escape!', true);
};
v2.queenTarantula = function () {
var v3 = _root.attachMovie('Slave', 'Slave' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this;
v3.slave_type = 'tarantula';
v3._x = 256 + this.origin_x;
v3._y = +this.origin_y;
v3.facing = 'down';
this.enemies.push(v3);
this.objs.push(v3);
++this.enemy_count;
};
v2.cutScene = function (the_scene) {
this.end_of_level = true;
var v3 = _root.attachMovie('Cutscene', 'Cutscene' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this;
v3.the_scene = the_scene;
v3.exit_direction = this.exit_direction;
v3.destination = this.maze.dots[this.room][2];
if (this.maze.dots[this.room][3] == 'indent') {
v3.destination_indent = true;
} else {
v3.destination_indent = false;
}
this.facade._visible = false;
this.unpaused = false;
this.mid_cutscene = true;
};
v2.gameOver = function () {
var v4 = 50;
var v5 = 100;
var v6 = 200;
++this.gameover_timer;
if (this.gameover_timer == v4) {
this.addFlash('red');
this.art_image = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
if (!this.last_stage) {
this.art_image.gotoAndStop(4);
this.art_image.box_pattern = 4;
} else {
this.art_image.gotoAndStop(6);
this.art_image.box_pattern = 6;
}
this.sounds.dump.start();
}
if (this.gameover_timer > v4 and this.gameover_timer < v5) {
this.art_image.swapDepths(_root.getNextHighestDepth());
for (var v3 in this.art_image.boxes) {
this.art_image.boxes[v3].swapDepths(_root.getNextHighestDepth());
}
}
if (this.gameover_timer == v5) {
this.continue_set = [this.level, this.area, this.room, this.layout, this.area_room, this.rooms, this.messages.one_timers, this.messages.no_specials];
this.addFlash('white');
this.removeLevel();
this.facade.removeMovieClip();
this.messages.removeMe();
this.unpaused = false;
if (!this.last_stage) {
this.art_image.gotoAndStop(5);
} else {
this.art_image.gotoAndStop(7);
}
this.art_image.removeBoxes();
this.art_text = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art_text.gotoAndStop(8);
this.sounds.hahaha.start();
}
if (this.gameover_timer == v6) {
this.continueScreen();
}
};
v2.winGame = function () {
this.victory = true;
};
v2.victoryParty = function () {
if (this.victory_timer < this.victory_speed) {
++this.victory_timer;
if (this.victory_timer == this.victory_speed) {
this.level = 14;
this.nextLevel();
}
}
};
v2.removeStarfield = function () {
for (var v2 in this.starfield) {
this.starfield[v2].removeMovieClip();
}
};
v2.continueScreen = function () {
this.art_image.removeMovieClip();
this.art_text.removeMovieClip();
var v3 = _root.attachMovie('Continues', 'Continues', _root.getNextHighestDepth());
v3.game = this;
};
v2.continueGame = function () {
var v3 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
v3.demo = false;
v3.continued = true;
v3.continue_set = this.continue_set;
this.removeMe();
};
v2.highScore = function () {
var v3 = _root.attachMovie('Highscore', 'Highscore', _root.getNextHighestDepth());
v3.game = this;
};
v2.titleScreen = function () {
this.sounds.removeMovieClip();
this.vocals.removeMovieClip();
this.art_image.removeMovieClip();
this.art_text.removeMovieClip();
var v3 = _root.attachMovie('Title', 'Title', _root.getNextHighestDepth());
if (this.demo) {
v3.no_music = true;
} else {
v3.no_music = false;
}
this.removeMe();
};
v2.reminderScreen = function () {
this.art_image.removeMovieClip();
this.art_text.removeMovieClip();
var v3 = _root.attachMovie('Reminder', 'Reminder', _root.getNextHighestDepth());
v3.sounds = this.sounds;
v3.vocals = this.vocals;
this.removeMe();
};
v2.startGame = function () {
this.sounds.title_loop.stop();
var v3 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
v3.demo = false;
this.removeMe();
};
v2.removeMe = function () {
this.removeLevel();
this.facade.removeMovieClip();
this.messages.removeMe();
this.bg.removeMovieClip();
this.removeMovieClip();
};
v2.debugMe = function () {
if (Key.isDown(this.key_debug) and this.key_debug_clear) {
this.key_debug_clear = false;
trace(this.maze.mazes[this.layout][0][0]);
trace(this.maze.original_mazes[this.layout][0][0]);
}
if (Key.isDown(this.key_pause) and this.key_pause_clear and !this.mid_cutscene and !this.demo and !this.gameover and !this.victory) {
this.key_pause_clear = false;
if (this.unpaused) {
this.unpaused = false;
this.sounds.dizzy.stop();
this.sounds.dizzy.start();
} else {
this.unpaused = true;
this.sounds.fire.start();
}
}
if (!Key.isDown(this.key_debug)) {
this.key_debug_clear = true;
}
if (!Key.isDown(this.key_pause)) {
this.key_pause_clear = true;
}
};
ASSetPropFlags(_global.Game.prototype, null, 1);
}
#endinitclip
}
movieClip 2144 __Packages.Gem {
#initclip
if (!_global.Gem) {
var v1 = function () {
super();
};
_global.Gem = v1;
_global.Gem extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.collision = _root.attachMovie('Collision', 'Collision' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.collision.gotoAndStop(3);
this.collision._visible = false;
this.game.objs.push(this.collision);
this.updateCollision();
var v3 = Math.ceil(Math.random() * 2);
if (this.hori_direction == null) {
if (v3 == 1) {
this.hori_direction = 'left';
} else {
this.hori_direction = 'right';
}
} else {
if (v3 == 1) {
this.vert_direction = 'up';
} else {
this.vert_direction = 'down';
}
if (this._y < this.game.origin_y + 64) {
this.vert_direction = 'down';
}
if (this._y > this.game.room_height - this.game.origin_y - 64) {
this.vert_direction = 'up';
}
}
this.frame = 1;
this.gotoAndStop(this.frame);
this.collected = false;
this.timer = 90;
this.blink_threshold = 30;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.bounceMe();
this.updateCollision();
if (!this.collected) {
this.checkPlayer();
this.tickTimer();
}
this.animateMe();
}
};
v2.bounceMe = function () {
var v2 = 2;
if (this.hori_direction == 'left') {
this._x -= v2;
} else {
this._x += v2;
}
if (this.vert_direction == 'up') {
this._y -= v2;
} else {
this._y += v2;
}
if (this.hori_direction == 'left') {
this.rounded_x = this._x - this.game.origin_x - 2;
} else {
this.rounded_x = this._x - this.game.origin_x - 44;
}
if (this.vert_direction == 'up') {
this.rounded_y = this._y - this.game.origin_y - 2;
} else {
this.rounded_y = this._y - this.game.origin_y - 44;
}
this.hori_flip = false;
this.vert_flip = false;
if (this.hori_direction == 'left') {
this.checkWalls(this._x, this._y + 10);
} else {
this.checkWalls(this._x + 19, this._y + 10);
}
if (this.vert_direction == 'up') {
this.checkWalls(this._x + 10, this._y);
} else {
this.checkWalls(this._x + 10, this._y + 19);
}
if (this._y < 16 or this._y >= 446) {
if (this._x < this.game.room_width / 2) {
if (this._x < 16 or this._x >= 62) {
this.hori_flip = true;
}
} else {
if (this._x < 526 or this._x >= 574) {
this.hori_flip = true;
}
}
}
if (this.hori_flip) {
if (this.hori_direction == 'left') {
this.hori_direction = 'right';
} else {
this.hori_direction = 'left';
}
}
if (this.vert_flip) {
if (this.vert_direction == 'up') {
this.vert_direction = 'down';
} else {
this.vert_direction = 'up';
}
}
};
v2.updateCollision = function () {
this.collision._x = this._x + 8;
this.collision._y = this._y + 8;
};
v2.checkWalls = function (containing_x, containing_y) {
while ((containing_x - this.game.origin_x) % 64 > 0) {
--containing_x;
}
while ((containing_y - this.game.origin_y) % 64 > 0) {
--containing_y;
}
var v3 = Math.floor((containing_x - this.game.origin_x) / 64);
var v2 = Math.floor((containing_y - this.game.origin_y) / 64);
if (this.rounded_x % 64 == 0) {
if (this.hori_direction == 'left') {
if (this.game.maze.mazes[this.game.layout][v2][v3] == 2 or this.game.maze.mazes[this.game.layout][v2][v3] == 3) {
this.hori_flip = true;
}
} else {
if (this.game.maze.mazes[this.game.layout][v2][v3 + 1] == 2 or this.game.maze.mazes[this.game.layout][v2][v3 + 1] == 3) {
this.hori_flip = true;
}
}
}
if (this.rounded_y % 64 == 0) {
if (this.vert_direction == 'up') {
if (this.game.maze.mazes[this.game.layout][v2][v3] == 1 or this.game.maze.mazes[this.game.layout][v2][v3] == 3) {
this.vert_flip = true;
}
} else {
if (this.game.maze.mazes[this.game.layout][v2 + 1][v3] == 1 or this.game.maze.mazes[this.game.layout][v2 + 1][v3] == 3) {
this.vert_flip = true;
}
}
}
if (this.rounded_x % 64 == 0 and this.rounded_y % 64 == 0) {
if ((this.game.maze.mazes[this.game.layout][v2][v3 - 1] == 2 or this.game.maze.mazes[this.game.layout][v2][v3 - 1] == 3) and (this.game.maze.mazes[this.game.layout][v2 - 1][v3] == 1 or this.game.maze.mazes[this.game.layout][v2 - 1][v3] == 3)) {
if (Math.ceil(Math.random() * 2) == 2) {
this.hori_flip = true;
} else {
this.vert_flip = true;
}
}
}
};
v2.tickTimer = function () {
if (this.timer > 0) {
--this.timer;
if (this.timer <= this.blink_threshold) {
if (this._visible) {
this._visible = false;
} else {
this._visible = true;
}
}
} else {
this.removeMovieClip();
}
};
v2.checkPlayer = function () {
if (this.collision.hitTest(this.game.queen)) {
this.game.score += this.score;
this.showPoints(this.score, 'yellow', 'pink');
this.collected = true;
this.game.sounds.crystal.start();
}
};
v2.showPoints = function (amount, color, color_2) {
var v3 = _root.attachMovie('Points', 'Points' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this.game;
v3.amount = amount;
v3.color = color;
if (color_2 != null) {
v3.color_2 = color_2;
}
v3._x = this._x + 10;
v3._y = this._y + 10;
this.game.objs.push(v3);
};
v2.animateMe = function () {
if (!this.collected) {
++this.frame;
if (this.frame > 8) {
this.frame = 1;
}
} else {
if (this.frame < 9) {
this._x -= 22;
this._y -= 22;
this._visible = true;
this.frame = 9;
} else {
++this.frame;
if (this.frame > 13) {
this.removeMe();
}
}
}
this.gotoAndStop(this.frame);
};
v2.removeMe = function () {
this.collision.removeMovieClip();
this.removeMovieClip();
};
ASSetPropFlags(_global.Gem.prototype, null, 1);
}
#endinitclip
}
movieClip 2145 __Packages.Highscore {
#initclip
if (!_global.Highscore) {
var v1 = function () {
super();
};
_global.Highscore = v1;
_global.Highscore extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.message_font = new TextFormat();
this.message_font.font = 'MessageFont';
this.message_font.embedFonts = true;
this.message_font.size = 16;
this.message_font.align = 'center';
this.art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art.gotoAndStop(28);
this.game.addFlash('yellow');
this.game.addFlash('red');
this.game.addFlash('red', 60);
this.game.sounds.well.start();
this.words = [];
this.messages = [];
this.colors = [16125711, 14012672, 16125711, 6881446];
this.submit = _root.attachMovie('Submit', 'Submit' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.submit._x = 114;
this.submit._y = 386;
if (this.game.continued) {
if (this.game.level == 14) {
this.textBorder('you are queen again', this.colors[0], 0, 188);
this.textBorder('but your reign is tainted', this.colors[1], 0, 220);
this.textBorder('by the indignity of capture.', this.colors[2], 0, 252);
this.textBorder('try it without continuing!', this.colors[3], 0, 284);
} else {
this.textBorder('all record of your score', this.colors[0], 0, 188);
this.textBorder('was lost when you escaped.', this.colors[1], 0, 220);
this.textBorder('you reached room ' + this.game.level, this.colors[2], 0, 252);
this.textBorder('try it without continuing!', this.colors[3], 0, 284);
}
} else {
this.textBorder('your final score was', this.colors[0], 0, 188);
this.textBorder('' + this.game.score, this.colors[1], 0, 220);
if (this.game.level == 0) {
this.textBorder('in the throne room', this.colors[2], 0, 252);
} else {
if (this.game.level == 13) {
this.textBorder('in tarantula\'s lair', this.colors[2], 0, 252);
} else {
if (this.game.level == 14) {
this.textBorder('after the rebellion', this.colors[2], 0, 252);
} else {
this.textBorder('in room ' + this.game.level, this.colors[2], 0, 252);
}
}
}
if (this.game.level == 0) {
this.textBorder('next time follow the arrow!', this.colors[3], 0, 284);
} else {
if (this.game.level >= 10 and this.game.level <= 12) {
this.textBorder('you\'re almost there!', this.colors[3], 0, 284);
} else {
if (this.game.level == 13) {
this.textBorder('zap her from behind!', this.colors[3], 0, 284);
} else {
if (this.game.level == 14) {
this.textBorder('you are the spider queen!', this.colors[3], 0, 284);
} else {
this.textBorder('try harder next time!', this.colors[3], 0, 284);
}
}
}
}
}
this.cycle_timer = 0;
this.cycle_speed = 1;
this.title_timer = 0;
this.title_speed = 200;
this.input_timer = 0;
this.input_speed = 20;
this.key_clear_up = false;
this.key_clear_down = false;
};
v2.textBorder = function (text_dump, text_color, where_x, where_y, indent) {
this.printText(text_dump, 'black', where_x - 2, where_y - 2, indent);
this.printText(text_dump, 'black', where_x, where_y - 2, indent);
this.printText(text_dump, 'black', where_x + 2, where_y - 2, indent);
this.printText(text_dump, 'black', where_x + 2, where_y, indent);
this.printText(text_dump, 'black', where_x + 2, where_y + 2, indent);
this.printText(text_dump, 'black', where_x, where_y + 2, indent);
this.printText(text_dump, 'black', where_x - 2, where_y + 2, indent);
this.printText(text_dump, 'black', where_x - 2, where_y, indent);
this.messages.push(this.printText(text_dump, text_color, where_x, where_y, indent));
};
v2.printText = function (text_dump, text_color, where_x, where_y, indent) {
if (indent) {
++where_x;
}
var v3 = _root.createTextField('Textbox', _root.getNextHighestDepth(), where_x, where_y, 608, 12);
v3.embedFonts = true;
v3.textColor = this.game.hexColor(text_color);
v3.text = text_dump;
v3.setTextFormat(this.message_font);
this.words.push(v3);
return v3;
};
v2.onEnterFrame = function () {
if (this.cycle_timer < this.cycle_speed) {
++this.cycle_timer;
} else {
this.cycle_timer = 0;
this.cycleColors();
}
if (this.input_timer < this.input_speed) {
++this.input_timer;
} else {
if (Key.isDown(38) and this.key_clear_up) {
this.game.submitScore();
this.titleScreen();
}
if (Key.isDown(40) and this.key_clear_down) {
this.titleScreen();
}
if (!Key.isDown(38)) {
this.key_clear_up = true;
}
if (!Key.isDown(40)) {
this.key_clear_down = true;
}
}
};
v2.cycleColors = function () {
this.colors.unshift(this.colors.pop());
for (var v2 in this.messages) {
this.messages[v2].textColor = this.colors[v2];
}
};
v2.titleScreen = function () {
this.game.saveHigh();
this.submit.removeMovieClip();
this.art.removeMovieClip();
for (var v2 in this.words) {
this.words[v2].removeTextField();
}
this.game.sounds.well.stop();
this.game.titleScreen();
this.removeMovieClip();
};
ASSetPropFlags(_global.Highscore.prototype, null, 1);
}
#endinitclip
}
movieClip 2146 __Packages.Laser {
#initclip
if (!_global.Laser) {
var v1 = function () {
super();
};
_global.Laser = v1;
_global.Laser extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.game = this.mom.game;
this.line = this.createEmptyMovieClip('line', _root.getNextHighestDepth());
this.collision = _root.attachMovie('Collision', 'Collision' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.collision.gotoAndStop(3);
this.collision._visible = false;
this.mom.game.objs.push(this.collision);
this.frame = 0;
this.laser_radius = 10;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.line.removeMovieClip();
}
};
v2.drawLaser = function (facing) {
++this.frame;
if (this.frame > 4) {
this.frame = 1;
}
if (this.laser_type == 'spider') {
switch (this.frame) {
case 1:
var v6 = this.game.hexColor('cyan');
var v5 = 8;
break;
case 2:
var v6 = this.game.hexColor('green');
var v5 = 6;
break;
case 3:
var v6 = this.game.hexColor('white');
var v5 = 4;
break;
case 4:
var v6 = this.game.hexColor('blue');
var v5 = 4;
}
} else {
switch (this.frame) {
case 1:
var v6 = this.game.hexColor('pink');
var v5 = 8;
break;
case 2:
var v6 = this.game.hexColor('yellow');
var v5 = 6;
break;
case 3:
var v6 = this.game.hexColor('white');
var v5 = 4;
break;
case 4:
var v6 = this.game.hexColor('red');
var v5 = 4;
}
}
var v3 = storedv5 / 2;
if (facing == 'right') {
this.x1 = this.mom._x + 62 - 4;
this.x2 = this.fireLaser('right');
this.y1 = this.mom._y + 34 - v3;
this.y2 = this.mom._y + 32 + v3;
}
if (facing == 'left') {
this.x1 = this.fireLaser('left');
this.x2 = this.mom._x + 2 + 4;
this.y1 = this.mom._y + 34 - v3;
this.y2 = this.mom._y + 32 + v3;
}
if (facing == 'down') {
this.x1 = this.mom._x + 34 - v3;
this.x2 = this.mom._x + 32 + v3;
this.y1 = this.mom._y + 62 - 4;
this.y2 = this.fireLaser('down');
}
if (facing == 'up') {
this.x1 = this.mom._x + 34 - v3;
this.x2 = this.mom._x + 32 + v3;
this.y1 = this.fireLaser('up');
this.y2 = this.mom._y + 2 + 4;
}
if (this.laser_type == 'spider') {
switch (facing) {
case 'right':
this.x2 -= 2;
break;
case 'left':
this.x1 += 2;
break;
case 'down':
this.y2 -= 2;
break;
case 'up':
this.y1 += 2;
}
}
if (this.laser_type == 'tarantula') {
switch (facing) {
case 'right':
this.x2 -= 2;
break;
case 'left':
this.x1 += 2;
break;
case 'down':
this.y2 -= 2;
break;
case 'up':
this.y1 += 2;
}
}
this.line = this.createEmptyMovieClip('line', _root.getNextHighestDepth());
this.line.beginFill(storedv6);
this.line.moveTo(this.x1, this.y1);
this.line.lineTo(this.x2, this.y1);
this.line.lineTo(this.x2, this.y2);
this.line.lineTo(this.x1, this.y2);
this.line.lineTo(this.x1, this.y1);
this.line.endFill();
switch (facing) {
case 'right':
this.actual_x = this.x2;
this.actual_y = this.y1 + v3;
break;
case 'left':
this.actual_x = this.x1;
this.actual_y = this.y1 + v3;
break;
case 'down':
this.actual_x = this.x1 + v3;
this.actual_y = this.y2;
break;
case 'up':
this.actual_x = this.x1 + v3;
this.actual_y = this.y1;
}
};
v2.fireLaser = function (facing) {
this.grid_y = Math.floor((this.mom._y - this.game.origin_y) / 64);
this.grid_x = Math.floor((this.mom._x - this.game.origin_x) / 64);
if (facing == 'left') {
++this.grid_x;
}
if (facing == 'up') {
++this.grid_y;
}
if (facing == 'right' or facing == 'left') {
var v4 = true;
}
var v2 = false;
while (!v2) {
switch (facing) {
case 'right':
++this.grid_x;
break;
case 'left':
--this.grid_x;
break;
case 'down':
++this.grid_y;
break;
case 'up':
--this.grid_y;
}
if (v4) {
if (this.grid_x > 9 or this.grid_x < 0) {
v2 = true;
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 2 or this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 3) {
v2 = true;
}
}
} else {
if (this.grid_y > 7 or this.grid_y < 0) {
v2 = true;
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 1 or this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 3) {
v2 = true;
}
}
}
}
var v7 = 0;
if (v4) {
v7 = this.grid_x * 64 + this.game.origin_x;
} else {
v7 = this.grid_y * 64 + this.game.origin_y;
}
var v6 = null;
var v5 = 32;
if (this.laser_type == 'spider') {
this.checkEnemies(v5, facing, v7);
} else {
v6 = this.checkPlayer(v5, facing, v7);
}
if (v6 != null and (v6.queen_state == 'scuttling' or v6.queen_state == 'cocooned')) {
if (v4) {
return v6._x + v5;
} else {
return v6._y + v5;
}
} else {
if (this.enemy != null) {
this.enemy.getZapped(facing);
if (v4) {
return this.enemy._x + v5;
} else {
return this.enemy._y + v5;
}
} else {
if (this.mom.facing == 'right') {
--this.grid_x;
}
if (this.mom.facing == 'down') {
--this.grid_y;
}
for (var v8 in this.game.assassins) {
if (this.game.assassins[v8].grid_x == this.grid_x and this.game.assassins[v8].grid_y == this.grid_y and this.game.assassins[v8].facing == this.getOpposite(this.mom.facing)) {
this.game.assassins[v8].getZapped();
}
}
return v7;
}
}
};
v2.checkEnemies = function (half, facing, wall) {
this.enemy = null;
this.closest = null;
var v4 = 0;
var v5 = 0;
switch (facing) {
case 'right':
v4 = this.mom._x + 64;
v5 = this.mom._y + 32;
break;
case 'left':
v4 = this.mom._x;
v5 = this.mom._y + 32;
break;
case 'down':
v4 = this.mom._x + 32;
v5 = this.mom._y + 64;
break;
case 'up':
v4 = this.mom._x + 32;
v5 = this.mom._y;
}
for (var v7 in this.game.enemies) {
switch (facing) {
case 'right':
this.checkEnemy(this.game.enemies[v7], this.game.enemies[v7]._y + half, v5, this.game.enemies[v7]._x + half, wall, this.game.enemies[v7]._x + half, this.mom._x + half);
break;
case 'left':
this.checkEnemy(this.game.enemies[v7], this.game.enemies[v7]._y + half, v5, wall, this.game.enemies[v7]._x + half, this.mom._x + half, this.game.enemies[v7]._x + half);
break;
case 'down':
this.checkEnemy(this.game.enemies[v7], this.game.enemies[v7]._x + half, v4, this.game.enemies[v7]._y + half, wall, this.game.enemies[v7]._y + half, this.mom._y + half);
break;
case 'up':
this.checkEnemy(this.game.enemies[v7], this.game.enemies[v7]._x + half, v4, wall, this.game.enemies[v7]._y + half, this.mom._y + half, this.game.enemies[v7]._y + half);
}
}
};
v2.checkEnemy = function (enemy_id, collision_1, collision_2, collision_3, collision_4, collision_5, collision_6) {
if (collision_1 >= collision_2 - this.laser_radius and collision_1 <= collision_2 + this.laser_radius and collision_3 < collision_4 and collision_5 > collision_6) {
if (this.laser_type == 'tarantula') {
return true;
} else {
var v3 = Math.abs(collision_5 - collision_6);
var v2 = false;
if (this.closest == null) {
v2 = true;
} else {
if (v3 < this.closest) {
v2 = true;
}
}
if (v2) {
this.enemy = enemy_id;
this.closest = v3;
}
}
}
};
v2.checkPlayer = function (half, facing, wall) {
var v2 = this.game.queen;
var v6 = false;
var v4 = 0;
var v5 = 0;
switch (facing) {
case 'right':
v4 = this.mom._x + 64;
v5 = this.mom._y + 32;
break;
case 'left':
v4 = this.mom._x;
v5 = this.mom._y + 32;
break;
case 'down':
v4 = this.mom._x + 32;
v5 = this.mom._y + 64;
break;
case 'up':
v4 = this.mom._x + 32;
v5 = this.mom._y;
}
switch (facing) {
case 'right':
if (this.checkEnemy(v2, v2._y + half, v5, v2._x + half, wall, v2._x + half, this.mom._x + half)) {
v6 = true;
}
break;
case 'left':
if (this.checkEnemy(v2, v2._y + half, v5, wall, v2._x + half, this.mom._x + half, v2._x + half)) {
v6 = true;
}
break;
case 'down':
if (this.checkEnemy(v2, v2._x + half, v4, v2._y + half, wall, v2._y + half, this.mom._y + half)) {
v6 = true;
}
break;
case 'up':
if (this.checkEnemy(v2, v2._x + half, v4, wall, v2._y + half, this.mom._y + half, v2._y + half)) {
v6 = true;
}
}
if (v6) {
if (v2.queen_state == 'scuttling') {
trace('ZAPPO!');
this.game.vocals.saySomething('captured');
}
v2.getZapped(this.mom, facing);
return v2;
}
};
v2.getOpposite = function (facing) {
switch (facing) {
case 'up':
return 'down';
break;
case 'down':
return 'up';
break;
case 'right':
return 'left';
break;
case 'left':
return 'right';
}
};
ASSetPropFlags(_global.Laser.prototype, null, 1);
}
#endinitclip
}
movieClip 2147 __Packages.Life {
#initclip
if (!_global.Life) {
var v1 = function () {
super();
};
_global.Life = v1;
_global.Life extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
if (this.game.lives >= this.number) {
this.life_state = 'fine';
this.frame = 1;
} else {
this.life_state = 'gone';
this.frame = 6;
}
this.flashing = 'no';
this.flash_timer = 0;
this.flash_time = 50;
this.shine_timer = 0;
this.shine_speed = 60;
this.gotoAndStop(this.frame);
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.setState();
this.animateMe();
if (this.flashing != 'no') {
this.flashMe();
}
}
};
v2.setState = function () {
if (this.life_state == 'gone') {
if (this.game.lives >= this.number) {
this.life_state = 'fine';
if (this.frame == 6) {
this.flashing = 'appear';
} else {
this.flashing = 'rekindle';
}
this.flash_timer = 0;
}
} else {
if (this.life_state == 'fine') {
if (this.game.lives < this.number) {
this.life_state = 'gone';
this.flashing = 'shatter';
this.flash_timer = 0;
}
}
}
};
v2.animateMe = function () {
++this.shine_timer;
if (this.shine_timer == this.shine_speed) {
this.shine_timer = 0;
if (this.life_state == 'fine' and this.frame == 1) {
++this.frame;
}
} else {
if (this.life_state == 'fine' and this.flashing == 'no') {
if (this.frame > 1) {
++this.frame;
if (this.frame > 4) {
this.frame = 1;
}
}
}
}
this.gotoAndStop(this.frame);
};
v2.flashMe = function () {
if (this.flash_timer >= this.flash_time) {
if (this.flashing == 'appear' or this.flashing == 'rekindle') {
this.frame = 1;
} else {
this.frame = 5;
}
this.gotoAndStop(this.frame);
this.flashing = 'no';
this.flash_timer = 0;
} else {
++this.flash_timer;
if (this.flashing == 'appear') {
if (this.frame == 6) {
this.frame = 1;
} else {
this.frame = 6;
}
}
if (this.flashing == 'rekindle') {
if (this.frame == 5) {
this.frame = 1;
} else {
this.frame = 5;
}
}
if (this.flashing == 'shatter') {
if (this.frame < 5) {
this.frame = 5;
} else {
this.frame = 1;
}
}
this.gotoAndStop(this.frame);
}
};
v2.onMouseDown = function () {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
trace('');
trace('life_state = ' + this.life_state);
trace('flashing = ' + this.flashing);
trace('frame = ' + this.frame);
}
};
ASSetPropFlags(_global.Life.prototype, null, 1);
}
#endinitclip
}
movieClip 2148 __Packages.Logo {
#initclip
if (!_global.Logo) {
var v1 = function () {
super();
};
_global.Logo = v1;
_global.Logo extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.art = [];
this.bevel_count = 0;
this.bevel_depth = 5;
var v3 = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.gotoAndStop(40);
this.art.push(v3);
this.black_art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.black_art.gotoAndStop(35);
this.art.push(this.black_art);
this.title_timer = 0;
this.title_speed = 100;
};
v2.onEnterFrame = function () {
if (this.bevel_count < this.bevel_depth) {
++this.bevel_count;
var v3 = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.gotoAndStop(36);
v3._x = this.bevel_count * 2;
v3._y = this.bevel_count * 2;
this.art.push(v3);
this.black_art.swapDepths(_root.getNextHighestDepth());
}
var v4 = 4;
if (Math.ceil(Math.random() * v4) == v4) {
this.black_art.gotoAndStop(39);
} else {
this.black_art.gotoAndStop(35);
}
++this.title_timer;
if (this.title_timer == this.title_speed) {
this.titleScreen();
}
};
v2.titleScreen = function () {
this.makeStarfield();
for (var v3 in this.art) {
this.art[v3].removeMovieClip();
}
var v4 = _root.attachMovie('Title', 'Title', _root.getNextHighestDepth());
this.removeMovieClip();
};
v2.makeStarfield = function () {
var v4 = 200;
var v2 = 0;
while (v2 < v4) {
var v3 = _root.attachMovie('Star', 'Star' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = Math.ceil(Math.random() * 304) * 2;
v3._y = Math.ceil(Math.random() * 120) * 4;
++v2;
}
};
ASSetPropFlags(_global.Logo.prototype, null, 1);
}
#endinitclip
}
movieClip 2149 __Packages.Maze {
#initclip
if (!_global.Maze) {
var v1 = function () {
super();
};
_global.Maze = v1;
_global.Maze extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.Z = 0;
this.mazes = this.setupMazes();
this.original_mazes = this.setupMazes();
this.dots = [[126, 2, 'the throne room'], [116, 2, 'the crystal chamber'], [122, 6, 'the ball room'], [130, 6, 'the royal bathhouse', 'indent'], [136, 2, 'the chapel'], [150, 8, 'the castle walls'], [162, 10, 'the watch tower', 'indent'], [172, 4, 'the armory', 'indent'], [184, 8, 'the stairwells'], [208, 10, 'the dungeons'], [222, 4, 'the cells'], [230, 12, 'the arena'], [252, 10, 'the torture chamber'], [298, 10, 'mars'], [332, 12, 'syrtis major'], [362, 2, 'olympus mons'], [412, 10, 'the face'], [440, 12, 'queen tarantula\'s lair'], [518, 8, 'attract mode']];
this.names = [['choose your level - escape the throne room!', 'the throne room'], ['the chamber of the crystal sceptre', 'the crystal chamber'], ['the ball room - an impromptu get-together', 'the ball room'], ['the royal bath house - don\'t get too wet!', 'the royal bath house'], ['the royal chapel - a place of atonement', 'the chapel'], ['on the battlements of the martian palace', 'the castle walls'], ['a watch tower high above the castle', 'the watch tower'], ['the armory is missing a few weapons', 'the armory'], ['a winding stairway to the castle dungeon', 'the stairwells'], ['the dungeon - watch for sharp objects!', 'the dungeons'], ['these cells are in need of re-stocking', 'the cells'], ['the arena - where gladiators are trained', 'the arena'], ['the torture chamber is fully equipped', 'the torture chamber'], ['the martian no-man\'s-land is dangerous', 'mars'], ['syrtis major - the dark spot of mars', 'syrtis major'], ['olympus mars - the martian mountain', 'olympus mons'], ['the face - a celebrated monument of mars', 'the face'], ['tarantula\'s lair - zap her from behind!', 'queen tarantula\'s lair'], ['only a true queen can make them submit!', 'attract mode']];
};
v2.setupMazes = function () {
return [[[2, 3, 1, 3, 3, 3, 3, 1, 2, 2], [2, 2, 2, 2, 2, 2, 2, 2, 2, 2], [2, 0, 2, 3, 0, 1, 2, 2, 0, 2], [3, 1, 0, 0, 3, 2, 0, 1, 1, 2], [3, 1, 2, 2, 0, 0, 2, 3, 1, 2], [2, 2, 2, 3, 2, 3, 2, 2, 2, 2], [2, 2, 0, 2, 2, 2, 2, 0, 2, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [26, 4, 3], [27, 4, 6], [28, 0, 3], [30, 8, 3], [31, 3, 0], [32, 5, 0], [33, 3, 5], [34, 5, 5], ['warp', 1, 4, 6, 0], ['warp', 2, 0, 3, 0], ['warp', 2, 8, 3, 0]], [[2, 1, 3, 1, 1, 1, 1, 3, 0, 2], [2, 2, 2, 1, 2, 3, 0, 2, 2, 2], [2, 2, 1, 0, 0, 0, 1, 0, 2, 2], [2, 1, 0, 1, 1, 1, 0, 1, 0, 2], [2, 3, 0, 1, 1, 1, 0, 1, 2, 2], [2, 2, 3, 0, 2, 2, 1, 2, 2, 2], [2, 0, 2, 1, 0, 1, 0, 2, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0]], [[2, 1, 1, 3, 1, 1, 3, 1, 0, 2], [2, 1, 0, 0, 2, 2, 0, 1, 0, 2], [2, 1, 1, 2, 2, 2, 3, 1, 0, 2], [3, 2, 2, 0, 2, 2, 0, 2, 3, 2], [3, 0, 0, 2, 2, 2, 2, 0, 1, 2], [2, 1, 1, 0, 2, 2, 1, 1, 0, 2], [2, 1, 0, 2, 0, 0, 2, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [5, 0, 3], [6, 8, 3]], [[2, 1, 3, 1, 1, 1, 1, 3, 0, 2], [3, 2, 0, 1, 0, 1, 0, 0, 3, 2], [3, 0, 2, 1, 1, 1, 0, 2, 1, 2], [2, 1, 1, 0, 2, 2, 1, 1, 0, 2], [2, 1, 3, 0, 0, 0, 1, 3, 0, 2], [3, 2, 0, 1, 1, 1, 0, 0, 3, 2], [3, 0, 2, 1, 0, 1, 0, 2, 1, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [1, 0, 1], [1, 0, 5], [2, 8, 1], [2, 8, 5]], [[2, 1, 3, 1, 1, 1, 1, 3, 0, 2], [2, 2, 0, 2, 2, 2, 2, 0, 2, 2], [2, 0, 3, 0, 2, 2, 1, 2, 0, 2], [3, 2, 2, 1, 0, 1, 0, 2, 3, 2], [3, 0, 2, 1, 2, 3, 0, 2, 1, 2], [2, 2, 1, 2, 2, 2, 3, 0, 2, 2], [2, 0, 2, 0, 0, 0, 0, 2, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [3, 0, 3], [4, 8, 3]], [[2, 1, 1, 1, 3, 3, 1, 1, 0, 2], [3, 2, 1, 2, 1, 0, 3, 0, 3, 2], [3, 0, 2, 3, 0, 1, 2, 2, 1, 2], [2, 3, 2, 0, 1, 0, 0, 3, 2, 2], [2, 1, 2, 2, 1, 0, 2, 3, 0, 2], [3, 2, 0, 3, 0, 1, 2, 0, 3, 2], [3, 0, 1, 0, 3, 2, 1, 0, 1, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [7, 0, 1], [7, 0, 5], [7, 1, 3], [7, 4, 0], [7, 4, 6], [7, 7, 3], [7, 8, 1], [7, 8, 5]], [[2, 1, 1, 1, 3, 3, 1, 1, 0, 2], [2, 3, 0, 2, 1, 0, 2, 1, 2, 2], [2, 0, 1, 3, 0, 1, 3, 0, 0, 2], [3, 2, 2, 0, 2, 2, 0, 2, 3, 2], [3, 0, 0, 2, 0, 0, 2, 0, 1, 2], [2, 2, 1, 3, 0, 1, 3, 0, 2, 2], [2, 1, 0, 0, 3, 2, 0, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [10, 0, 3], [12, 4, 0], [11, 4, 6], [13, 8, 3]], [[2, 3, 1, 3, 1, 1, 3, 1, 0, 2], [2, 0, 2, 2, 3, 2, 0, 2, 1, 2], [2, 1, 0, 0, 3, 0, 2, 1, 0, 2], [3, 2, 3, 0, 0, 1, 0, 2, 3, 2], [3, 0, 0, 3, 0, 2, 1, 0, 1, 2], [2, 1, 2, 0, 3, 2, 2, 3, 0, 2], [3, 0, 0, 2, 1, 0, 2, 0, 2, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [9, 0, 3], [8, 4, 1], [8, 4, 5], [9, 8, 3]], [[2, 1, 1, 3, 3, 1, 1, 1, 0, 2], [2, 3, 0, 1, 2, 2, 1, 1, 2, 2], [2, 2, 3, 0, 0, 1, 1, 2, 0, 2], [2, 0, 0, 2, 1, 1, 2, 0, 1, 2], [3, 0, 2, 1, 1, 0, 0, 2, 2, 2], [2, 2, 1, 1, 2, 2, 1, 0, 2, 2], [2, 1, 1, 0, 0, 3, 2, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [14, 3, 0], [15, 5, 6]], [[2, 1, 1, 1, 1, 1, 1, 1, 0, 2], [2, 1, 0, 2, 3, 2, 1, 1, 2, 2], [2, 1, 1, 2, 1, 0, 1, 2, 2, 2], [2, 1, 0, 3, 1, 0, 2, 0, 0, 2], [2, 2, 2, 0, 1, 1, 2, 1, 0, 2], [2, 2, 1, 0, 3, 2, 3, 1, 0, 2], [2, 1, 1, 0, 1, 0, 0, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [20, 4, 1], [22, 4, 5], ['spike', 'right', 'out', 0, 3], ['spike', 'down', 'hidden', 5, 0], ['spike', 'up', 'hidden', 4, 6], ['spike', 'left', 'out', 8, 4]], [[2, 1, 3, 1, 3, 3, 1, 3, 0, 2], [2, 2, 0, 2, 1, 0, 2, 0, 2, 2], [2, 0, 2, 0, 1, 0, 0, 2, 0, 2], [3, 2, 0, 1, 2, 2, 1, 0, 3, 2], [3, 0, 3, 0, 0, 1, 0, 2, 1, 2], [2, 2, 0, 2, 1, 0, 2, 0, 2, 2], [2, 0, 2, 0, 3, 2, 0, 2, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [16, 0, 3], [23, 4, 0], [24, 4, 6], [17, 8, 3], ['spike', 'right', 'out', 1, 2], ['spike', 'left', 'hidden', 3, 2], ['spike', 'right', 'out', 5, 2], ['spike', 'left', 'hidden', 7, 2], ['spike', 'left', 'hidden', 1, 5], ['spike', 'right', 'out', 3, 5], ['spike', 'left', 'hidden', 5, 5], ['spike', 'right', 'out', 7, 5]], [[2, 1, 1, 3, 1, 1, 3, 1, 0, 2], [2, 3, 0, 0, 2, 2, 0, 1, 2, 2], [2, 0, 1, 2, 0, 0, 3, 0, 0, 2], [3, 2, 2, 0, 1, 0, 0, 2, 3, 2], [3, 0, 0, 2, 1, 0, 2, 0, 1, 2], [2, 2, 1, 0, 2, 2, 1, 0, 2, 2], [2, 1, 0, 2, 0, 0, 2, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [18, 0, 3], [19, 8, 3], ['spike', 'right', 'hidden', 0, 1], ['spike', 'right', 'hidden', 0, 6], ['spike', 'down', 'out', 1, 0], ['spike', 'up', 'out', 1, 6], ['spike', 'down', 'out', 8, 0], ['spike', 'up', 'out', 8, 6], ['spike', 'left', 'hidden', 8, 1], ['spike', 'left', 'hidden', 8, 6], ['spike', 'right', 'out', 3, 2], ['spike', 'left', 'out', 5, 2], ['spike', 'right', 'hidden', 3, 5], ['spike', 'left', 'hidden', 5, 5]], [[2, 1, 1, 3, 1, 3, 1, 1, 0, 2], [2, 1, 0, 0, 2, 2, 1, 1, 0, 2], [2, 1, 2, 3, 0, 0, 3, 2, 2, 2], [3, 0, 0, 0, 1, 0, 1, 0, 0, 2], [2, 2, 3, 2, 1, 0, 2, 2, 1, 2], [2, 0, 1, 0, 2, 3, 0, 1, 0, 2], [2, 1, 1, 0, 2, 0, 2, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [25, 2, 4], [21, 6, 2], ['spike', 'left', 'out', 1, 5], ['spike', 'up', 'hidden', 2, 3], ['spike', 'right', 'out', 3, 4], ['spike', 'down', 'hidden', 3, 5], ['spike', 'left', 'out', 5, 3], ['spike', 'up', 'hidden', 6, 1], ['spike', 'right', 'out', 7, 2], ['spike', 'down', 'hidden', 7, 3]], [[2, 1, 1, 3, 1, 1, 3, 1, 0, 2], [2, 1, 0, 0, 2, 2, 0, 1, 0, 2], [2, 3, 1, 0, 2, 2, 1, 1, 2, 2], [2, 0, 2, 1, 0, 1, 0, 2, 0, 2], [3, 0, 0, 1, 2, 3, 0, 0, 1, 2], [2, 2, 1, 2, 0, 0, 3, 0, 2, 2], [2, 0, 2, 0, 1, 0, 0, 2, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0]], [[2, 1, 1, 3, 1, 1, 3, 1, 0, 2], [2, 1, 2, 0, 1, 0, 0, 3, 0, 2], [3, 0, 2, 1, 2, 3, 0, 2, 1, 2], [2, 2, 0, 2, 0, 0, 2, 0, 2, 2], [2, 1, 3, 0, 1, 0, 1, 3, 0, 2], [2, 2, 0, 1, 0, 1, 0, 0, 2, 2], [2, 1, 0, 2, 1, 0, 2, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0]], [[2, 1, 1, 3, 1, 1, 3, 1, 0, 2], [2, 1, 2, 0, 1, 0, 0, 3, 0, 2], [3, 0, 2, 1, 0, 1, 0, 2, 1, 2], [2, 1, 1, 2, 1, 0, 3, 1, 0, 2], [3, 1, 0, 0, 2, 2, 0, 1, 1, 2], [2, 2, 1, 1, 0, 1, 1, 0, 2, 2], [2, 1, 0, 2, 1, 0, 2, 1, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0]], [[2, 1, 1, 3, 1, 1, 3, 1, 0, 2], [2, 1, 0, 0, 2, 2, 0, 1, 0, 2], [2, 1, 1, 2, 0, 0, 3, 1, 0, 2], [3, 1, 0, 0, 2, 2, 0, 1, 1, 2], [2, 1, 2, 1, 0, 1, 0, 3, 0, 2], [2, 2, 2, 1, 1, 1, 0, 2, 2, 2], [2, 0, 0, 2, 1, 0, 2, 0, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0]], [[2, 1, 3, 1, 1, 1, 1, 3, 0, 2], [2, 2, 0, 1, 2, 3, 0, 0, 2, 2], [2, 0, 3, 0, 0, 0, 1, 2, 0, 2], [3, 0, 2, 3, 1, 1, 2, 2, 1, 2], [2, 1, 0, 0, 2, 2, 0, 1, 0, 2], [2, 3, 1, 0, 2, 2, 1, 1, 2, 2], [2, 0, 2, 1, 0, 1, 0, 2, 0, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0]], [[2, 3, 1, 3, 1, 1, 3, 1, 2, 2], [2, 0, 2, 0, 3, 2, 0, 2, 0, 2], [3, 0, 3, 1, 0, 1, 1, 2, 1, 2], [2, 3, 0, 0, 0, 0, 0, 1, 2, 2], [2, 1, 2, 0, 0, 0, 0, 3, 0, 2], [3, 0, 3, 1, 2, 3, 1, 2, 1, 2], [2, 2, 0, 2, 1, 0, 2, 0, 2, 2], [0, 1, 1, 1, 1, 1, 1, 1, 0, 0], [35, 1, 1]]];
};
ASSetPropFlags(_global.Maze.prototype, null, 1);
}
#endinitclip
}
movieClip 2150 __Packages.Messages {
#initclip
if (!_global.Messages) {
var v1 = function () {
super();
};
_global.Messages = v1;
_global.Messages extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.message_font = new TextFormat();
this.message_font.font = 'MessageFont';
this.message_font.embedFonts = true;
this.message_font.size = 16;
this.message_font.align = 'center';
this.status_font = new TextFormat();
this.status_font.font = 'MessageFont';
this.status_font.embedFonts = true;
this.status_font.size = 16;
this.status_font.align = 'left';
this.title_message = this.createText(82, -2);
this.title_message.align = 'center';
this.title_message._visible = false;
this.title_message.text = 'lesbian spider-queens of mars';
this.title_message.setTextFormat(this.message_font);
this.special_message = this.createText(82, 464);
this.special_message.align = 'center';
this.special_message._visible = false;
if (this.game.demo) {
this.special_message.text = 'press the spacebar to play!';
} else {
this.special_message.text = 'use the arrow keys to move';
}
this.special_message.setTextFormat(this.message_font);
this.pause_message = this.createText(82, -2);
this.pause_message.align = 'center';
this.pause_message._visible = false;
this.pause_message.text = '< < < press p to unpause the game! > > >';
this.pause_message.setTextFormat(this.message_font);
this.room_message = this.createText(82, 464);
this.score_message = this.createText(164, 464);
this.high_message = this.createText(294, 464);
this.lives_message = this.createText(394, 464);
this.lives = [];
this.makeLife(1, 512);
this.makeLife(2, 498);
this.makeLife(3, 484);
this.makeLife(4, 470);
this.makeLife(5, 456);
this.map_pieces = [];
this.makeMap();
this.mapInvisible();
this.special_bottom = true;
this.special_timer = 0;
this.special_speed = 130;
this.flash_color = true;
if (this.one_timers == null) {
this.one_timers = [];
this.no_specials = false;
}
};
v2.createText = function (where_x, where_y) {
var v3 = _root.createTextField('Textbox', _root.getNextHighestDepth(), where_x, where_y, 444, 14);
v3.embedFonts = true;
v3.textColor = 14012672;
v3.text = '';
v3.setTextFormat(this.status_font);
return v3;
};
v2.makeLife = function (number, position) {
var v3 = _root.attachMovie('Life', 'Life' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.game = this.game;
v3.number = number;
v3._x = position;
v3._y = 468;
this.lives.push(v3);
};
v2.makeMap = function () {
this.map_bg = _root.attachMovie('Map', 'Map' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.map_bg._x = 82;
this.map_bg.identity = 'bg';
this.map_bg.game = this.game;
var v5 = 246;
var v6 = 8;
var v4 = 0;
while (v4 < 14) {
var v3 = _root.attachMovie('Map', 'Map' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = v5 + v4 * v6;
v3.place = v4;
switch (v4) {
case 0:
v3.identity = 'palace';
break;
case 1:
case 2:
case 3:
v3.identity = 'blue';
break;
case 4:
case 5:
case 6:
v3.identity = 'pink';
break;
case 7:
case 8:
case 9:
v3.identity = 'purple';
break;
case 10:
case 11:
case 12:
v3.identity = 'red';
break;
case 13:
v3.identity = 'lair';
}
v3.game = this.game;
this.map_pieces.push(v3);
++v4;
}
};
v2.onEnterFrame = function () {
this.flashColors();
if (this.game.unpaused) {
this.pause_message._visible = false;
this.showSpecial();
this.updateScore();
} else {
if (!this.game.mid_cutscene) {
this.special_message._visible = false;
this.pause_message._visible = true;
if (!this.special_bottom) {
this.mapInvisible();
}
}
}
if (this.game.mid_cutscene) {
this.statusInvisible();
this.special_message._visible = false;
this.pause_message._visible = false;
this.mapInvisible();
}
};
v2.flashColors = function () {
if (this.flash_color) {
this.flash_color = false;
this.pause_message.textColor = 16777215;
this.special_message.textColor = 16777215;
} else {
this.flash_color = true;
this.pause_message.textColor = 65280;
this.special_message.textColor = 65280;
}
};
v2.showSpecial = function () {
if (this.special_timer > 0 or this.game.first_stage or this.game.demo) {
this.special_message._visible = true;
if (this.special_bottom) {
this.statusInvisible();
this.mapVisible();
} else {
this.mapInvisible();
this.statusVisible();
}
if (!this.game.end_of_level and this.special_timer > 0) {
--this.special_timer;
}
} else {
this.special_message._visible = false;
if (this.special_bottom) {
this.statusVisible();
} else {
this.mapVisible();
}
}
};
v2.statusVisible = function () {
this.room_message._visible = true;
this.score_message._visible = true;
this.high_message._visible = true;
this.lives_message._visible = true;
for (var v2 in this.lives) {
this.lives[v2]._visible = true;
}
};
v2.statusInvisible = function () {
this.room_message._visible = false;
this.score_message._visible = false;
this.high_message._visible = false;
this.lives_message._visible = false;
for (var v2 in this.lives) {
this.lives[v2]._visible = false;
}
};
v2.mapVisible = function () {
this.map_bg._visible = true;
for (var v2 in this.map_pieces) {
this.map_pieces[v2]._visible = true;
}
};
v2.mapInvisible = function () {
this.map_bg._visible = false;
for (var v2 in this.map_pieces) {
this.map_pieces[v2]._visible = false;
}
};
v2.specialReset = function () {
this.special_timer = 0;
};
v2.updateScore = function () {
this.room_message.text = 'room ' + this.game.level;
if (this.game.continued) {
this.score_message.text = 'score>loser';
} else {
this.score_message.text = 'score>' + this.game.score;
}
this.high_message.text = 'hi>' + this.game.high;
this.lives_message.text = 'lives>';
this.room_message.setTextFormat(this.status_font);
this.score_message.setTextFormat(this.status_font);
this.high_message.setTextFormat(this.status_font);
this.lives_message.setTextFormat(this.status_font);
};
v2.updateTitle = function () {
this.title_message.text = this.game.maze.names[this.game.room][0];
this.title_message.setTextFormat(this.message_font);
switch (this.game.area) {
case 1:
this.title_message.textColor = 4023295;
break;
case 2:
this.title_message.textColor = 14483550;
break;
case 3:
this.title_message.textColor = 6881446;
break;
case 4:
this.title_message.textColor = 16125711;
break;
case 5:
this.title_message.textColor = 16125711;
}
if (this.game.demo or this.game.first_stage) {
this.special_bottom = true;
} else {
this.special_bottom = false;
}
if (this.special_bottom) {
this.special_message._y = 464;
this.pause_message._y = 464;
} else {
this.special_message._y = -2;
this.pause_message._y = -2;
}
};
v2.updateMap = function () {
for (var v2 in this.map_pieces) {
this.map_pieces[v2].refreshMe();
}
};
v2.flashMessage = function (message, only_once) {
var v2 = true;
if (this.no_specials) {
v2 = false;
} else {
if (only_once) {
for (var v4 in this.one_timers) {
if (this.one_timers[v4] == message) {
v2 = false;
}
}
if (v2) {
this.one_timers.push(message);
}
}
}
if (v2) {
this.special_message.text = message;
this.special_message.setTextFormat(this.message_font);
this.special_timer = this.special_speed;
}
};
v2.removeMe = function () {
this.special_message.removeTextField();
this.pause_message.removeTextField();
this.title_message.removeTextField();
this.room_message.removeTextField();
this.score_message.removeTextField();
this.high_message.removeTextField();
this.lives_message.removeTextField();
this.map_bg.removeMovieClip();
for (var v2 in this.map_pieces) {
this.map_pieces[v2].removeMovieClip();
}
for (v2 in this.lives) {
this.lives[v2].removeMovieClip();
}
this.removeMovieClip();
};
ASSetPropFlags(_global.Messages.prototype, null, 1);
}
#endinitclip
}
movieClip 2151 __Packages.Points {
#initclip
if (!_global.Points) {
var v1 = function () {
super();
};
_global.Points = v1;
_global.Points extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.rise_speed = 2;
this.rise_timer = 0;
this.vanish_speed = 40;
this.vanish_timer = 0;
this.font = new TextFormat();
this.font.font = 'MessageFont';
this.font.embedFonts = true;
this.font.size = 16;
this.font.align = 'center';
this.font_color = this.game.hexColor(this.color);
this.number = _root.createTextField('Number' + _root.getNextHighestDepth(), _root.getNextHighestDepth(), this._x - 200 - 1, this._y - 20, 400, 40);
this.number.embedFonts = true;
this.number.text = String(this.amount);
this.setText();
this.game.objs.push(this.number);
this.removeme = true;
};
v2.setText = function () {
this.number.textColor = this.font_color;
this.number.setTextFormat(this.font);
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.riseMe();
if (this.vanish_timer >= this.vanish_speed * 0.75) {
this.blinkNumber();
}
}
};
v2.riseMe = function () {
if (this.vanish_timer < this.vanish_speed) {
++this.vanish_timer;
} else {
this.removeMe();
}
if (this.rise_timer < this.rise_speed) {
++this.rise_timer;
} else {
this.rise_timer = 0;
this.number._y -= 2;
}
if (this.color_2 != null) {
if (this.font_color == this.game.hexColor(this.color)) {
this.font_color = this.game.hexColor(this.color_2);
} else {
this.font_color = this.game.hexColor(this.color);
}
}
this.setText();
};
v2.blinkNumber = function () {
if (this.number._visible) {
this.number._visible = false;
} else {
this.number._visible = true;
}
};
v2.removeMe = function () {
this.number.removeTextField();
this.removeMovieClip();
};
ASSetPropFlags(_global.Points.prototype, null, 1);
}
#endinitclip
}
movieClip 2152 __Packages.Puff {
#initclip
if (!_global.Puff) {
var v1 = function () {
super();
};
_global.Puff = v1;
_global.Puff extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.dissolve_timer = 0;
this.gotoAndStop(this.frame);
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.driftMe();
this.animateMe();
}
};
v2.driftMe = function () {
this._x += this.x_drift * this.drift_speed;
this._y += this.y_drift * this.drift_speed;
};
v2.animateMe = function () {
if (this.dissolve_timer < this.dissolve_speed) {
++this.dissolve_timer;
} else {
++this.frame;
}
if (this.frame > 6) {
this.removeMe();
} else {
this.gotoAndStop(this.frame);
}
};
v2.removeMe = function () {
this.removeMovieClip();
};
ASSetPropFlags(_global.Puff.prototype, null, 1);
}
#endinitclip
}
movieClip 2153 __Packages.Queen {
#initclip
if (!_global.Queen) {
var v1 = function () {
super();
};
_global.Queen = v1;
_global.Queen extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.collide_me = this.attachCollision(5);
this.collide_left = this.attachCollision(2);
this.collide_right = this.attachCollision(2);
this.collide_up = this.attachCollision(1);
this.collide_down = this.attachCollision(1);
this.updateCollision();
this.room_top = this.game.origin_y;
this.room_bottom = this.game.room_height - this.game.origin_y - 64;
this.facing = 'right';
this.last_facing = this.facing;
this.turn_direction = 'none';
this.frame = 1;
this.gotoAndStop(1);
this.key_left = false;
this.key_up = false;
this.key_right = false;
this.key_down = false;
this.was_key_left = false;
this.was_key_up = false;
this.was_key_right = false;
this.was_key_down = false;
this.x_adjust = 'right';
this.y_adjust = 'up';
this.move_timer = 0;
this.move_speed = 1;
this.step_length = 8;
this.turn_delay = -1;
this.moved = false;
if (this.queen_state != 'struggling') {
this.queen_state = 'scuttling';
}
this.boom_timer = 0;
this.boom_speed = 1;
this.struggle_timer = 0;
this.struggle_speed = 2;
this.dead_timer = 0;
this.dead_speed = 30;
this.flash_timer = 0;
this.flash_speed = 100;
this.flash_laser_speed = 20;
this.start_x = this._x;
this.start_y = this._y;
this.scuttle_timer = 0;
this.scuttle_delay = 4;
this.scuttle_count = 1;
this.invincible = false;
this.laser_active = false;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.laser_active = false;
if (this.queen_state == 'scuttling' or this.queen_state == 'flashing') {
if (this._y <= this.room_top - 64 - 16 or this._y >= 480) {
this.nextLevel();
} else {
this.getInput();
this.checkCollision();
this.faceMe();
this.moveMe();
this.updateCollision();
this.scuttleSound();
this.animateMe();
if (!this.game.laser_off and (this.queen_state == 'scuttling' or this.queen_state == 'flashing' and this.flash_timer >= this.flash_laser_speed) and !this.game.end_of_level and !this.game.first_stage) {
this.laser.drawLaser(this.facing);
this.laser_active = true;
}
if (this.game.first_stage) {
this.bubble.followQueen();
}
this.debugMe();
}
}
if (this.queen_state == 'dying' or this.queen_state == 'cocooned') {
this.animateMe();
}
if (this.queen_state == 'flashing') {
if (this.flash_timer < this.flash_speed) {
++this.flash_timer;
if (this._visible) {
this._visible = false;
} else {
this._visible = true;
}
} else {
this.flash_timer = 0;
this._visible = true;
this.queen_state = 'scuttling';
}
}
if (this.queen_state == 'dead') {
if (this.dead_timer < this.dead_speed) {
++this.dead_timer;
} else {
this.dead_timer = 0;
this._x = this.start_x;
this._y = this.start_y;
this.updateCollision();
this.facing = 'right';
this.frame = 1;
this.gotoAndStop(this.frame);
this._visible = true;
this.flash_timer = 0;
this.queen_state = 'flashing';
this.game.sounds.reboot.start();
this.game.vocals.saySomething('rebirth');
}
}
} else {
if (this.queen_state == 'flashing') {
this._visible = true;
}
}
if (this.queen_state == 'struggling') {
this.getInput();
this.moveMe();
this.animateMe();
}
};
v2.attachCollision = function (shape) {
var v3 = _root.attachMovie('Collision', 'Collision' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.gotoAndStop(shape);
v3._visible = false;
this.game.objs.push(v3);
return v3;
};
v2.makeArrows = function () {
this.arrow_left = _root.attachMovie('Arrow', 'Arrow' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.arrow_left.facing = 'left';
this.arrow_right = _root.attachMovie('Arrow', 'Arrow' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.arrow_right.facing = 'right';
this.arrow_down = _root.attachMovie('Arrow', 'Arrow' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.arrow_down.facing = 'down';
this.arrow_up = _root.attachMovie('Arrow', 'Arrow' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.arrow_up.facing = 'up';
this.updateArrows();
};
v2.getInput = function () {
this.was_key_left = this.key_left;
this.was_key_up = this.key_up;
this.was_key_right = this.key_right;
this.was_key_down = this.key_down;
this.key_left = false;
this.key_up = false;
this.key_right = false;
this.key_down = false;
if (Key.isDown(37)) {
this.key_left = true;
}
if (Key.isDown(38)) {
this.key_up = true;
}
if (Key.isDown(39)) {
this.key_right = true;
}
if (Key.isDown(40)) {
this.key_down = true;
}
};
v2.checkCollision = function () {
this.blocked_left = false;
this.blocked_right = false;
this.blocked_up = false;
this.blocked_down = false;
for (var v2 in this.game.walls) {
if (!(this.game.walls[v2].wall_type == 'spike' and this.game.walls[v2].spike_phase != 'out')) {
if (this.collide_left.hitTest(this.game.walls[v2].collision)) {
this.blocked_left = true;
}
if (this.collide_right.hitTest(this.game.walls[v2].collision)) {
this.blocked_right = true;
}
if (this.collide_up.hitTest(this.game.walls[v2].collision)) {
this.blocked_up = true;
}
if (this.collide_down.hitTest(this.game.walls[v2].collision)) {
this.blocked_down = true;
}
}
}
};
v2.faceMe = function () {
var v5 = this.game.origin_x;
var v4 = this.game.origin_y;
var v2 = (this._x - v5) % 64;
var v3 = (this._y - v4) % 64;
if (v2 > 0) {
if (v2 == 32) {
this.x_adjust = this.facing;
} else {
if (v2 >= 32) {
this.x_adjust = 'right';
} else {
this.x_adjust = 'left';
}
}
}
if (v3 > 0) {
if (v3 == 32) {
this.y_adjust = this.facing;
} else {
if (v3 > 32) {
this.y_adjust = 'down';
} else {
this.y_adjust = 'up';
}
}
}
this.grid_x = Math.floor(this._x / 64);
if (v2 >= 32) {
this.grid_x += 1;
}
this.grid_y = Math.floor(this._y / 64);
if (v3 >= 32) {
this.grid_y += 1;
}
this.last_facing = this.facing;
if (this._y < this.room_top or this._y > this.room_bottom) {
++this.move_timer;
} else {
if (this.key_up and (!this.key_left and !this.key_right and !this.key_down or this.facing == 'up')) {
this.faceCheck('up');
}
if (this.key_down and (!this.key_left and !this.key_right and !this.key_up or this.facing == 'down')) {
this.faceCheck('down');
}
if (this.key_left and (!this.key_right and !this.key_up and !this.key_down or this.facing == 'left')) {
this.faceCheck('left');
}
if (this.key_right and (!this.key_left and !this.key_up and !this.key_down or this.facing == 'right')) {
this.faceCheck('right');
}
if (!this.key_up and !this.key_down and !this.key_left and !this.key_right) {
this.move_timer = 0;
}
}
};
v2.faceCheck = function (where) {
if (where == this.facing) {
if (!this.blockCheck(where)) {
++this.move_timer;
}
} else {
if (this.blockCheck(where)) {
if (!this.wasCheck(where)) {
this.turnCheck(where);
if (this.turn_direction == 'none') {
if (where == 'up' || where == 'down') {
this.facing = this.x_adjust;
} else {
this.facing = this.y_adjust;
}
} else {
this.facing = this.turn_direction;
}
}
if (!this.blockCheck(this.facing)) {
++this.move_timer;
}
} else {
this.facing = where;
this.move_timer = this.turn_delay;
}
}
};
v2.blockCheck = function (where) {
switch (where) {
return false;
case 'left':
if (this.blocked_left) {
return true;
}
return false;
case 'right':
if (this.blocked_right) {
return true;
}
return false;
case 'up':
if (this.blocked_up) {
return true;
}
return false;
case 'down':
if (this.blocked_down) {
return true;
}
return false;
}
return false;
};
v2.wasCheck = function (where) {
switch (where) {
return false;
case 'left':
if (this.was_key_left) {
return true;
}
return false;
case 'right':
if (this.was_key_right) {
return true;
}
return false;
case 'up':
if (this.was_key_up) {
return true;
}
return false;
case 'down':
if (this.was_key_down) {
return true;
}
return false;
}
return false;
};
v2.turnCheck = function (where) {
this.turn_direction = 'none';
var v11 = this.game.origin_x;
var v10 = this.game.origin_y;
if (where == 'up' || where == 'down') {
var v5 = false;
var v8 = false;
var v4 = Math.floor((this._x + v11 + 32) / 64);
var v2 = 0;
if (where == 'down') {
v2 = 1;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y + v2][v4 - 1] == 2 || this.game.maze.mazes[this.game.layout][this.grid_y + v2][v4 - 1] == 0) {
v5 = true;
}
if (this.game.maze.mazes[this.game.layout][this.grid_y + v2][v4] == 2 || this.game.maze.mazes[this.game.layout][this.grid_y + v2][v4] == 0) {
v8 = true;
}
if (v5 and !v8) {
this.turn_direction = 'left';
} else {
if (!v5 and v8) {
this.turn_direction = 'right';
}
}
} else {
var v7 = false;
var v6 = false;
var v3 = Math.floor((this._y + v10 + 32) / 64);
var v2 = 0;
if (where == 'right') {
v2 = 1;
}
if (this.game.maze.mazes[this.game.layout][v3 - 1][this.grid_x + v2] == 1 || this.game.maze.mazes[this.game.layout][v3 - 1][this.grid_x + v2] == 0) {
v7 = true;
}
if (this.game.maze.mazes[this.game.layout][v3][this.grid_x + v2] == 1 || this.game.maze.mazes[this.game.layout][v3][this.grid_x + v2] == 0) {
v6 = true;
}
if (v7 and !v6) {
this.turn_direction = 'up';
} else {
if (!v7 and v6) {
this.turn_direction = 'down';
}
}
}
};
v2.moveMe = function () {
var v3 = this.move_speed;
var v2 = this.step_length;
if (this.queen_state == 'struggling') {
v3 *= 2;
v2 /= 2;
if (this.key_left and !this.key_right) {
this.facing = 'left';
++this.move_timer;
}
if (this.key_right and !this.key_left) {
this.facing = 'right';
++this.move_timer;
}
}
if (this.move_timer == v3) {
this.move_timer = 0;
switch (this.facing) {
case 'right':
this._x += v2;
break;
case 'left':
this._x -= v2;
break;
case 'down':
this._y += v2;
break;
case 'up':
this._y -= v2;
}
this.moved = true;
} else {
this.moved = false;
}
};
v2.updateCollision = function () {
this.collide_me._x = this._x + 30;
this.collide_me._y = this._y + 30;
this.collide_left._x = this._x;
this.collide_left._y = this._y + 4;
this.collide_right._x = this._x + 62;
this.collide_right._y = this._y + 4;
this.collide_up._x = this._x + 4;
this.collide_up._y = this._y;
this.collide_down._x = this._x + 4;
this.collide_down._y = this._y + 62;
};
v2.updateArrows = function () {
this.arrow_left._x = this._x - 20;
this.arrow_left._y = this._y + 18;
this.arrow_up._x = this._x + 20;
this.arrow_up._y = this._y - 20;
this.arrow_right._x = this._x + 68;
this.arrow_right._y = this._y + 18;
this.arrow_down._x = this._x + 20;
this.arrow_down._y = this._y + 68;
};
v2.scuttleSound = function () {
if (this.scuttle_timer > 0) {
--this.scuttle_timer;
}
if (this.moved and this.scuttle_timer == 0) {
this.scuttle_timer = this.scuttle_delay;
++this.scuttle_count;
if (this.scuttle_count > 4) {
this.scuttle_count = 1;
}
switch (this.scuttle_count) {
case 1:
this.game.sounds.scuttle1.start();
break;
case 2:
case 3:
this.game.sounds.scuttle2.start();
break;
case 4:
this.game.sounds.scuttle3.start();
}
}
};
v2.animateMe = function () {
if (this.queen_state == 'scuttling' or this.queen_state == 'flashing') {
if (this.moved) {
++this.frame;
if (this.frame == 5) {
this.frame = 1;
} else {
if (this.frame == 9) {
this.frame = 5;
} else {
if (this.frame == 13) {
this.frame = 9;
} else {
if (this.frame == 17) {
this.frame = 13;
}
}
}
}
}
if (this.last_facing != this.facing) {
switch (this.facing) {
case 'right':
this.frame = 1;
break;
case 'left':
this.frame = 5;
break;
case 'down':
this.frame = 9;
break;
case 'up':
this.frame = 13;
}
}
}
if (this.queen_state == 'cocooned') {
if (this.frame < 29) {
switch (this.facing) {
case 'right':
this.frame = 29;
break;
case 'left':
this.frame = 33;
break;
case 'down':
this.frame = 37;
break;
case 'up':
this.frame = 41;
}
this.struggle_timer = 0;
} else {
if (this.struggle_timer < this.struggle_speed) {
++this.struggle_timer;
} else {
this.struggle_timer = 0;
++this.frame;
if (this.frame == 33) {
this.frame = 29;
} else {
if (this.frame == 37) {
this.frame = 33;
} else {
if (this.frame == 41) {
this.frame = 37;
} else {
if (this.frame == 45) {
this.frame = 41;
}
}
}
}
}
}
}
if (this.queen_state == 'dying') {
if (this.frame < 17 or this.frame > 28) {
this.frame = 17;
} else {
if (this.boom_timer < this.boom_speed) {
++this.boom_timer;
} else {
this.boom_timer = 0;
++this.frame;
if (this.frame > 28) {
this._visible = false;
if (this.game.lives > -1 and !this.game.first_stage) {
this.queen_state = 'dead';
this.dead_timer = 0;
} else {
this.queen_state = 'done';
this.game.gameover = true;
}
}
}
}
}
if (this.queen_state == 'struggling') {
if (this.facing == 'right' and (this.frame < 29 or this.frame > 32)) {
this.frame = 29;
}
if (this.facing == 'left' and (this.frame < 33 or this.frame > 38)) {
this.frame = 33;
}
if (this.moved) {
++this.frame;
if (this.frame == 33) {
this.frame = 29;
} else {
if (this.frame == 37) {
this.frame = 33;
}
}
}
}
if (this.game.first_stage and this.queen_state != 'dying' and this.queen_state != 'struggling') {
this.gotoAndStop(this.frame + 44);
} else {
this.gotoAndStop(this.frame);
}
};
v2.getKilled = function () {
if ((this.queen_state == 'scuttling' or this.queen_state == 'cocooned') and !this.invincible) {
this.queen_state = 'dying';
this.swapDepths(_root.getNextHighestDepth());
this.game.addFlash('red', 100);
this.game.addFlash('red', 80);
this.game.addFlash('red', 60);
--this.game.lives;
this.boom_timer = 0;
this.game.sounds.melt.start();
if (this.game.lives > 0) {
this.tarantula.queenDead();
}
if (this.game.lives < 0 and this.game.last_stage) {
this.game.vocals.saySomething('lose');
}
}
};
v2.getZapped = function (tarantula, where) {
if (this.queen_state == 'scuttling') {
this.game.addFlash('red', 80);
this.queen_state = 'cocooned';
if (where == 'left' or where == 'right') {
this._y = tarantula._y;
} else {
this._x = tarantula._x;
}
this.game.sounds.spring.start();
}
};
v2.nextLevel = function () {
if (this.game.area_room == 3) {
this.game.area_room = 1;
++this.game.area;
this.game.room = this.game.rooms[this.game.area][0];
} else {
++this.game.area_room;
if (this._x < 304) {
this.game.room = this.game.rooms[this.game.area][0];
this.game.exit_direction = 'left';
} else {
this.game.room = this.game.rooms[this.game.area][1];
this.game.exit_direction = 'right';
}
}
++this.game.level;
this.game.nextLevel();
};
v2.debugMe = function () {};
v2.onMouseDown = function () {
if (this.hitTest(_root._xmouse, _root._ymouse, true)) {
trace(this.queen_state);
}
};
ASSetPropFlags(_global.Queen.prototype, null, 1);
}
#endinitclip
}
movieClip 2154 __Packages.Secret {
#initclip
if (!_global.Secret) {
var v1 = function () {
super();
};
_global.Secret = v1;
_global.Secret extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {};
v2.onEnterFrame = function () {
if (this.game.queen._y < 144 and this.hitTest(this.game.queen)) {
this.revealSecret();
}
};
v2.revealSecret = function () {
this.game.buildWall(256 + this.game.origin_x - 2, this.game.origin_y, 'vertical', false);
this.game.buildWall(320 + this.game.origin_x - 2, this.game.origin_y, 'vertical', false);
this.game.buildDecor(29, 4, 0);
this.game.buildWarp(3, 4, 0, 0);
this.game.queen.swapDepths(_root.getNextHighestDepth());
this.game.maze.mazes[0][2][4] = 0;
this.game.addFlash('blue', 50);
this.game.sounds.block.start();
this.removeMe();
};
v2.removeMe = function () {
this.removeMovieClip();
};
ASSetPropFlags(_global.Secret.prototype, null, 1);
}
#endinitclip
}
movieClip 2155 __Packages.Sounds {
#initclip
if (!_global.Sounds) {
var v1 = function () {
super();
};
_global.Sounds = v1;
_global.Sounds extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.alarm = new Sound();
this.alarm.attachSound('alarm.wav');
this.alien = new Sound();
this.alien.attachSound('alarm.wav');
this.block = new Sound();
this.block.attachSound('block.wav');
this.bumper = new Sound();
this.bumper.attachSound('bumper.wav');
this.chitter = new Sound();
this.chitter.attachSound('chitter.wav');
this.coin = new Sound();
this.coin.attachSound('coin.wav');
this.computer = new Sound();
this.computer.attachSound('computer.wav');
this.confusion = new Sound();
this.confusion.attachSound('confusion.wav');
this.crumble = new Sound();
this.crumble.attachSound('crumble.wav');
this.crystal = new Sound();
this.crystal.attachSound('crystal.wav');
this.diamonds = new Sound();
this.diamonds.attachSound('diamonds.wav');
this.dizzy = new Sound();
this.dizzy.attachSound('dizzy.wav');
this.dump = new Sound();
this.dump.attachSound('dump.wav');
this.elephant = new Sound();
this.elephant.attachSound('elephant.wav');
this.extend = new Sound();
this.extend.attachSound('extend.wav');
this.falldown = new Sound();
this.falldown.attachSound('falldown.wav');
this.fire = new Sound();
this.fire.attachSound('fire.wav');
this.footsteps = new Sound();
this.footsteps.attachSound('footsteps.wav');
this.ghost = new Sound();
this.ghost.attachSound('ghost.wav');
this.gremlin = new Sound();
this.gremlin.attachSound('gremlin.wav');
this.guffaw = new Sound();
this.guffaw.attachSound('guffaw.wav');
this.hahaha = new Sound();
this.hahaha.attachSound('hahaha.wav');
this.hallway = new Sound();
this.hallway.attachSound('hallway.wav');
this.haunted = new Sound();
this.haunted.attachSound('haunted.wav');
this.huh = new Sound();
this.huh.attachSound('huh.wav');
this.landing = new Sound();
this.landing.attachSound('landing.wav');
this.laser = new Sound();
this.laser.attachSound('laser.wav');
this.laugh = new Sound();
this.laugh.attachSound('laugh.wav');
this.melody = new Sound();
this.melody.attachSound('melody.wav');
this.melt = new Sound();
this.melt.attachSound('melt.wav');
this.mystery = new Sound();
this.mystery.attachSound('mystery.wav');
this.no = new Sound();
this.no.attachSound('no.wav');
this.ominous = new Sound();
this.ominous.attachSound('ominous.wav');
this.phase = new Sound();
this.phase.attachSound('phase.wav');
this.raygun = new Sound();
this.raygun.attachSound('raygun.wav');
this.reboot = new Sound();
this.reboot.attachSound('reboot.wav');
this.sack = new Sound();
this.sack.attachSound('sack.wav');
this.scuttle1 = new Sound();
this.scuttle1.attachSound('scuttle1.wav');
this.scuttle2 = new Sound();
this.scuttle2.attachSound('scuttle2.wav');
this.scuttle3 = new Sound();
this.scuttle3.attachSound('scuttle3.wav');
this.shriek = new Sound();
this.shriek.attachSound('shriek.wav');
this.spacebirds = new Sound();
this.spacebirds.attachSound('spacebirds.wav');
this.spinner = new Sound();
this.spinner.attachSound('spinner.wav');
this.spring = new Sound();
this.spring.attachSound('spring.wav');
this.stairs = new Sound();
this.stairs.attachSound('stairs.wav');
this.takeoff = new Sound();
this.takeoff.attachSound('toughguy.wav');
this.tink = new Sound();
this.tink.attachSound('tink.wav');
this.toughguy = new Sound();
this.toughguy.attachSound('toughguy.wav');
this.ufo = new Sound();
this.ufo.attachSound('ufo.wav');
this.victory = new Sound();
this.victory.attachSound('victory.wav');
this.wakeup = new Sound();
this.wakeup.attachSound('wakeup.wav');
this.well = new Sound();
this.well.attachSound('well.wav');
this.zappo = new Sound();
this.zappo.attachSound('zappo.wav');
this.title_loop = new Sound();
this.title_loop.attachSound('title_loop.mp3');
this.opening_loop = new Sound();
this.opening_loop.attachSound('opening_loop.wav');
this.cutscene_loop = new Sound();
this.cutscene_loop.attachSound('cutscene_loop.wav');
this.victory_loop = new Sound();
this.victory_loop.attachSound('victory_loop.wav');
this.closing = new Sound();
this.closing.attachSound('closing.mp3');
this.sound_bank = [['gremlin', this.gremlin, 0], ['toughguy', this.toughguy, 0], ['no', this.no, 0], ['laugh', this.laugh, 0], ['guffaw', this.guffaw, 0], ['spinner', this.spinner, 0], ['crumble', this.crumble, 0], ['elephant', this.elephant, 0], ['alarm', this.alarm, 0], ['phase', this.phase, 0], ['spacebirds', this.spacebirds, 0], ['coin', this.coin, 0], ['tink', this.tink, 0]];
};
v2.onEnterFrame = function () {
for (var v2 in this.sound_bank) {
if (this.sound_bank[v2][2] > 0) {
--this.sound_bank[v2][2];
}
}
};
v2.playSound = function (which) {
for (var v3 in this.sound_bank) {
if (this.sound_bank[v3][0] == which and this.sound_bank[v3][2] == 0) {
this.sound_bank[v3][2] = 4;
this.sound_bank[v3][1].start();
}
}
};
ASSetPropFlags(_global.Sounds.prototype, null, 1);
}
#endinitclip
}
movieClip 2156 __Packages.Sparkle {
#initclip
if (!_global.Sparkle) {
var v1 = function () {
super();
};
_global.Sparkle = v1;
_global.Sparkle extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.sparkle_state = 'appearing';
this.frame = 1;
this.gotoAndStop(1);
this.hori_direction = this.randomDirection();
this.vert_direction = this.randomDirection();
};
v2.randomDirection = function () {
var v1 = 2;
var v2 = Math.ceil(Math.random() * 3);
switch (v2) {
case 1:
return -v1;
break;
case 2:
return 0;
break;
case 3:
return v1;
}
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.driftMe();
this.animateMe();
}
};
v2.driftMe = function () {
this._x += this.hori_direction;
this._y += this.vert_direction;
};
v2.animateMe = function () {
if (this.sparkle_state == 'appearing') {
++this.frame;
if (this.frame == 5) {
this.sparkle_state = 'disappearing';
}
} else {
--this.frame;
if (this.frame < 1) {
this.removeMe();
}
}
this.gotoAndStop(this.frame);
};
v2.removeMe = function () {
this.removeMovieClip();
};
ASSetPropFlags(_global.Sparkle.prototype, null, 1);
}
#endinitclip
}
movieClip 2157 __Packages.Spike {
#initclip
if (!_global.Spike) {
var v1 = function () {
super();
};
_global.Spike = v1;
_global.Spike extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.grid_x = (this._x - this.game.origin_x) / 64;
this.grid_y = (this._y - this.game.origin_y) / 64;
if (this.facing == 'left' or this.facing == 'right') {
this.hori = true;
} else {
this.hori = false;
}
if (this.hori) {
this.collision = this.attachCollision(6);
} else {
this.collision = this.attachCollision(7);
}
this.collision._x = this._x - 2;
this.collision._y = this._y - 2;
if (this.facing == 'left' or this.facing == 'right') {
this._y -= 32;
} else {
this._x -= 32;
}
if (this.hori) {
this.collision_bump = this.attachCollision(10);
this.collision_bump._x = this._x + 30;
this.collision_bump._y = this._y;
} else {
this.collision_bump = this.attachCollision(9);
this.collision_bump._x = this._x;
this.collision_bump._y = this._y + 30;
}
this.collision_stab = this.attachCollision(4);
this.collision_stab._x = this._x + 22;
this.collision_stab._y = this._y + 22;
this.last_phase = 'none';
this.hidden_speed = 75;
this.in_speed = 25;
this.out_speed = 100;
this.hidden_timer = 0;
this.in_timer = 0;
this.out_timer = 0;
this.animation_speed = 4;
this.animation_timer = 0;
switch (this.facing) {
case 'right':
this.modifier = 0;
break;
case 'left':
this.modifier = 4;
break;
case 'down':
this.modifier = 8;
break;
case 'up':
this.modifier = 12;
}
this.frame = 5;
if (this.spike_phase == 'hidden') {
this._visible = false;
}
this.wall_type = 'spike';
};
v2.attachCollision = function (shape) {
var v3 = _root.attachMovie('Collision', 'Collision' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.gotoAndStop(shape);
v3._visible = false;
this.game.objs.push(v3);
return v3;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.tickTimer();
this.animateMe();
this.changeGrid();
}
};
v2.tickTimer = function () {
if (this.spike_phase == 'hidden' and !this.game.end_of_level) {
if (this.hidden_timer < this.hidden_speed) {
++this.hidden_timer;
} else {
this.hidden_timer = 0;
this.spike_phase = 'in';
this.game.sounds.playSound('tink');
}
} else {
if (this.spike_phase == 'in') {
if (this.in_timer < this.in_speed) {
++this.in_timer;
} else {
this.in_timer = 0;
this.spike_phase = 'out';
this.game.sounds.playSound('no');
}
} else {
if (this.spike_phase == 'out') {
if (this.out_timer < this.out_speed) {
++this.out_timer;
} else {
this.out_timer = 0;
this.spike_phase = 'hidden';
}
}
}
}
};
v2.animateMe = function () {
var v2 = [];
switch (this.spike_phase) {
case 'in':
v2 = [1 + this.modifier, 2 + this.modifier];
break;
case 'out':
v2 = [1 + this.modifier, 3 + this.modifier, 4 + this.modifier];
break;
case 'hidden':
v2 = [2 + this.modifier, 1 + this.modifier, 3 + this.modifier];
}
if (this.spike_phase != this.last_phase) {
this.frame = 0;
this._visible = true;
} else {
if (this.animation_timer < this.animation_speed) {
++this.animation_timer;
} else {
if (this.frame < v2.length - 1) {
this.animation_timer = 0;
++this.frame;
if (this.spike_phase == 'hidden' and this.frame == 2) {
this._visible = false;
}
if (this.spike_phase == 'out') {
this.checkPlayer();
}
}
}
}
if (this.spike_phase == 'out' and this.out_timer >= this.out_speed * 0.75) {
this.gotoAndStop(3 + this.modifier);
} else {
this.gotoAndStop(v2[this.frame]);
}
this.last_phase = this.spike_phase;
};
v2.checkPlayer = function () {
var v2 = this.game.queen;
var v4 = Math.floor((v2._x - this.game.origin_x + 32) / 64);
var v5 = Math.floor((v2._y - this.game.origin_y + 32) / 64);
if (this.collision_stab.hitTest(v2.collide_me)) {
v2.getKilled();
} else {
if (this.collision_bump.hitTest(v2.collide_me)) {
if (!this.hori) {
if (v5 == this.grid_y) {
v2._x = Math.floor(v4 * 64 + this.game.origin_x);
}
} else {
if (v4 == this.grid_x) {
v2._y = Math.floor(v5 * 64 + this.game.origin_y);
}
}
}
}
for (var v3 in this.game.enemies) {
if (this.game.enemies[v3].slave_state == 'cocooned') {
if (this.collision_bump.hitTest(this.game.enemies[v3].collide_me)) {
this.game.enemies[v3]._x = this.game.enemies[v3].grid_x * 64 + this.game.origin_x;
this.game.enemies[v3]._y = this.game.enemies[v3].grid_y * 64 + this.game.origin_y;
}
}
}
};
v2.changeGrid = function () {
if (this.spike_phase == 'out') {
if (!this.hori) {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 0) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 2;
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 1) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 3;
}
}
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 0) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 1;
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 2) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 3;
}
}
}
} else {
if (!this.hori) {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 2) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 0;
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 3) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 1;
}
}
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 1) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 0;
} else {
if (this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] == 3) {
this.game.maze.mazes[this.game.layout][this.grid_y][this.grid_x] = 2;
}
}
}
}
};
ASSetPropFlags(_global.Spike.prototype, null, 1);
}
#endinitclip
}
movieClip 2158 __Packages.Star {
#initclip
if (!_global.Star) {
var v1 = function () {
super();
};
_global.Star = v1;
_global.Star extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.drift_timer = 0;
this.drift_speed = Math.ceil(Math.random() * 50);
};
v2.onEnterFrame = function () {
this.driftMe();
};
v2.driftMe = function () {
if (this.drift_timer < this.drift_speed) {
++this.drift_timer;
} else {
this.drift_timer = 0;
this._x -= 2;
if (this._x == -2) {
this._x = 606;
}
}
};
ASSetPropFlags(_global.Star.prototype, null, 1);
}
#endinitclip
}
movieClip 2159 __Packages.Title {
#initclip
if (!_global.Title) {
var v1 = function () {
super();
};
_global.Title = v1;
_global.Title extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.room_width = 608;
this.room_height = 480;
this.bg = this.createEmptyMovieClip('bg', _root.getNextHighestDepth());
this.flash_timer = 0;
this.flash_speed = 0;
this.last_flash = 0;
this.art_title = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art_title.gotoAndStop(15);
this.title_timer = 0;
this.art_speed = 50;
this.game_speed = 210;
this.sounds = _root.attachMovie('Sounds', 'Sounds', _root.getNextHighestDepth());
this.vocals = _root.attachMovie('Vocals', 'Vocals', _root.getNextHighestDepth());
this.message_font = new TextFormat();
this.message_font.font = 'MessageFont';
this.message_font.embedFonts = true;
this.message_font.size = 16;
this.message_font.align = 'center';
this.key_clear = false;
};
v2.onEnterFrame = function () {
++this.title_timer;
if (this.title_timer == 1) {
this.flashBackground();
this.sounds.ufo.start();
}
if (this.title_timer == 5) {
this.art_title.gotoAndStop(16);
}
if (this.title_timer == 10) {
this.art_title.gotoAndStop(17);
}
if (this.title_timer == 15) {
this.art_title.gotoAndStop(18);
}
if (this.title_timer == 20) {
this.art_title._visible = true;
this.art_title.gotoAndStop(1);
}
if (this.title_timer < this.art_speed) {
if (this.flash_timer < this.flash_speed) {
++this.flash_timer;
} else {
this.flash_timer = 0;
this.flashBackground();
}
}
if (this.title_timer == this.art_speed - 1) {
this.art_title._visible = false;
}
if (this.title_timer == this.art_speed) {
this.bg.removeMovieClip();
this.art_title.gotoAndStop(2);
this.art_title._visible = true;
this.art_queen = _root.attachMovie('Art', 'Art', _root.getNextHighestDepth());
this.art_queen.gotoAndStop(3);
this.art_queen.box_pattern = 3;
this.sounds.alien.start();
if (!this.no_music) {
this.sounds.title_loop.start(0, 10000);
}
}
if (this.title_timer > this.art_speed) {
if (this.message_text._visible) {
this.message_text._visible = false;
} else {
this.message_text._visible = true;
}
}
if (this.title_timer == this.game_speed) {
this.showCast();
}
if (Key.isDown(32) and this.key_clear) {
if (this.title_timer < this.art_speed and !this.no_music) {
this.key_clear = false;
this.sounds.ufo.stop();
this.art_title.gotoAndStop(1);
this.title_timer = this.art_speed - 2;
} else {
this.startGame();
}
}
if (!Key.isDown(32)) {
this.key_clear = true;
}
};
v2.makeStarfield = function () {
var v5 = 100;
var v4 = 0;
while (v4 < v5) {
var v3 = _root.attachMovie('Star', 'Star' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3._x = Math.ceil(Math.random() * 304) * 2;
v3._y = Math.ceil(Math.random() * 240) * 2;
this.starfield.push(v3);
++v4;
}
};
v2.printText = function () {
this.message_text = _root.createTextField('Textbox', _root.getNextHighestDepth(), 0, 26, this.room_width, 12);
this.message_text.embedFonts = true;
this.message_text.textColor = this.hexColor('green');
this.message_text.text = 'press the spacebar to play!';
this.message_text.setTextFormat(this.message_font);
};
v2.flashBackground = function () {
var v3 = this.randomColor();
this.last_flash = v3;
this.bg.removeMovieClip();
this.bg = this.createEmptyMovieClip('bg', _root.getNextHighestDepth());
this.bg.beginFill(v3);
this.bg.moveTo(0, 0);
this.bg.lineTo(this.room_width, 0);
this.bg.lineTo(this.room_width, this.room_height);
this.bg.lineTo(0, this.room_height);
this.bg.lineTo(0, 0);
this.bg.endFill();
this.art_title.swapDepths(_root.getNextHighestDepth());
};
v2.randomColor = function () {
var v2 = this.last_flash;
while (v2 == this.last_flash) {
var v3 = Math.ceil(Math.random() * 7);
switch (v3) {
case 1:
v2 = this.hexColor('white');
break;
case 2:
v2 = this.hexColor('cyan');
break;
case 3:
v2 = this.hexColor('purple');
break;
case 4:
v2 = this.hexColor('yellow');
break;
case 5:
v2 = this.hexColor('red');
break;
case 6:
v2 = this.hexColor('green');
break;
case 7:
v2 = this.hexColor('blue');
}
}
return v2;
};
v2.hexColor = function (color) {
switch (color) {
case 'white':
return 16579836;
break;
case 'cyan':
return 64764;
break;
case 'pink':
return 14483550;
break;
case 'purple':
return 6881446;
break;
case 'yellow':
return 14012672;
break;
case 'red':
return 16125711;
break;
case 'green':
return 64512;
break;
case 'blue':
return 4023295;
}
};
v2.onMouseDown = function () {};
v2.startGame = function () {
this.sounds.title_loop.stop();
var v3 = _root.attachMovie('Game', 'Game', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
v3.demo = false;
this.removeMe();
};
v2.showCast = function () {
var v3 = _root.attachMovie('Cast', 'Cast', _root.getNextHighestDepth());
v3.starfield = this.starfield;
v3.sounds = this.sounds;
v3.vocals = this.vocals;
this.removeMe();
};
v2.removeMe = function () {
this.message_text.removeTextField();
this.bg.removeMovieClip();
this.art_title.removeMe();
this.art_queen.removeMe();
this.removeMovieClip();
};
ASSetPropFlags(_global.Title.prototype, null, 1);
}
#endinitclip
}
movieClip 2160 __Packages.Trap {
#initclip
if (!_global.Trap) {
var v1 = function () {
super();
};
_global.Trap = v1;
_global.Trap extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.collision = _root.attachMovie('Collision', 'Collision' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.collision.gotoAndStop(4);
this.collision._x = this._x + 22;
this.collision._y = this._y + 22;
this.collision._visible = false;
this.game.objs.push(this.collision);
this.sprout_speed = 1;
this.sprout_timer = 0;
this.sprout_state = 'appearing';
this.out_speed = 40;
this.out_timer = 0;
this.frame = 1;
this.gotoAndStop(this.frame);
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.animateMe();
if (this.sprout_state == 'out') {
this.checkPlayer();
}
if (this.game.end_of_level) {
this.removeMe();
}
}
};
v2.animateMe = function () {
if (this.sprout_state != 'out') {
if (this.sprout_timer < this.sprout_speed) {
++this.sprout_timer;
} else {
this.sprout_timer = 0;
if (this.sprout_state == 'appearing') {
++this.frame;
} else {
--this.frame;
}
if (this.frame == 8) {
this.sprout_state = 'out';
}
if (this.frame == 0) {
this.removeMe();
}
}
} else {
if (this.out_timer < this.out_speed) {
if (this.sprout_timer < this.sprout_speed) {
++this.sprout_timer;
} else {
this.sprout_timer = 0;
if (this.frame == 10) {
this.frame = 8;
} else {
++this.frame;
}
}
var v2 = 0;
switch (this.speed) {
case 2:
v2 = 0.5;
break;
case 3:
v2 = 1;
break;
case 4:
v2 = 1.5;
}
this.out_timer += 1 + v2;
} else {
this.sprout_state = 'disappearing';
}
}
this.gotoAndStop(this.frame);
};
v2.checkPlayer = function () {
if (this.collision.hitTest(this.game.queen.collide_me)) {
this.game.queen.getKilled();
}
};
v2.removeMe = function () {
this.collision.removeMovieClip();
this.removeMovieClip();
};
ASSetPropFlags(_global.Trap.prototype, null, 1);
}
#endinitclip
}
movieClip 2161 __Packages.Twinkle {
#initclip
if (!_global.Twinkle) {
var v1 = function () {
super();
};
_global.Twinkle = v1;
_global.Twinkle extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.frequency = 1;
this.gotoAndStop(1);
};
v2.onEnterFrame = function () {
if (this.twinkle_type == 'location') {
switch (this.frequency) {
case 1:
case 2:
case 5:
case 6:
this.gotoAndStop(1);
break;
case 3:
case 4:
case 7:
case 8:
this.gotoAndStop(2);
}
} else {
switch (this.frequency) {
case 1:
case 2:
case 3:
this._visible = true;
break;
case 4:
case 5:
case 6:
case 7:
case 8:
this._visible = false;
}
}
++this.frequency;
if (this.frequency > 8) {
this.frequency = 1;
}
};
ASSetPropFlags(_global.Twinkle.prototype, null, 1);
}
#endinitclip
}
movieClip 2162 __Packages.Vocals {
#initclip
if (!_global.Vocals) {
var v1 = function () {
super();
};
_global.Vocals = v1;
_global.Vocals extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.amidnightsnack = new Sound();
this.amidnightsnack.attachSound('amidnightsnack.wav');
this.backwhereyoubelong = new Sound();
this.backwhereyoubelong.attachSound('backwhereyoubelong.wav');
this.delicious = new Sound();
this.delicious.attachSound('delicious.wav');
this.evillaugh = new Sound();
this.evillaugh.attachSound('evillaugh.wav');
this.getoverhere = new Sound();
this.getoverhere.attachSound('getoverhere.wav');
this.iamthespiderqueen = new Sound();
this.iamthespiderqueen.attachSound('iamthespiderqueen.wav');
this.ihaveyounow = new Sound();
this.ihaveyounow.attachSound('ihaveyounow.wav');
this.ihaveacageforyou = new Sound();
this.ihaveacageforyou.attachSound('ihaveacageforyou.wav');
this.imnotfinishedyet = new Sound();
this.imnotfinishedyet.attachSound('imnotfinishedyet.wav');
this.iseeyou = new Sound();
this.iseeyou.attachSound('iseeyou.wav');
this.isntthiscozy = new Sound();
this.isntthiscozy.attachSound('isntthiscozy.wav');
this.kneelbeforeyourqueen = new Sound();
this.kneelbeforeyourqueen.attachSound('kneelbeforeyourqueen.wav');
this.slavesarealwaysgettingunderfoot = new Sound();
this.slavesarealwaysgettingunderfoot.attachSound('slavesarealwaysgettingunderfoot.wav');
this.struggleallyoulike = new Sound();
this.struggleallyoulike.attachSound('struggleallyoulike.wav');
this.youalwaysdidtopfromthebottom = new Sound();
this.youalwaysdidtopfromthebottom.attachSound('youalwaysdidtopfromthebottom.wav');
this.youcantescapeme = new Sound();
this.youcantescapeme.attachSound('youcantescapeme.wav');
this.youcantsneakuponaspider = new Sound();
this.youcantsneakuponaspider.attachSound('youcantsneakuponaspider.wav');
this.youregoingtobepunished = new Sound();
this.youregoingtobepunished.attachSound('youregoingtobepunished.wav');
this.catchmeifyoucan = new Sound();
this.catchmeifyoucan.attachSound('catchmeifyoucan.wav');
this.gotyou = new Sound();
this.gotyou.attachSound('gotyou.wav');
this.hereicome = new Sound();
this.hereicome.attachSound('hereicome.wav');
this.icantwaittoeatthis = new Sound();
this.icantwaittoeatthis.attachSound('icantwaittoeatthis.wav');
this.ilikeyouonaleash = new Sound();
this.ilikeyouonaleash.attachSound('ilikeyouonaleash.wav');
this.imgonnagetyou = new Sound();
this.imgonnagetyou.attachSound('imgonnagetyou.wav');
this.ithinkillkeepyou = new Sound();
this.ithinkillkeepyou.attachSound('ithinkillkeepyou.wav');
this.iwin = new Sound();
this.iwin.attachSound('iwin.wav');
this.makethemtighternexttime = new Sound();
this.makethemtighternexttime.attachSound('makethemtighternexttime.wav');
this.punishmenttime = new Sound();
this.punishmenttime.attachSound('punishmenttime.wav');
this.snootylaugh = new Sound();
this.snootylaugh.attachSound('snootylaugh.wav');
this.submittome = new Sound();
this.submittome.attachSound('submittome.wav');
this.youalwayssubmitintheend = new Sound();
this.youalwayssubmitintheend.attachSound('youalwayssubmitintheend.wav');
this.youcantrybegging = new Sound();
this.youcantrybegging.attachSound('youcantrybegging.wav');
this.youlookgoodinrope = new Sound();
this.youlookgoodinrope.attachSound('youlookgoodinrope.wav');
this.youneedtobetaughtalesson = new Sound();
this.youneedtobetaughtalesson.attachSound('youneedtobetaughtalesson.wav');
this.youreit = new Sound();
this.youreit.attachSound('youreit.wav');
this.youremine = new Sound();
this.youremine.attachSound('youremine.wav');
this.youstillcantresistme = new Sound();
this.youstillcantresistme.attachSound('youstillcantresistme.wav');
this.triggers = [];
this.setupVocals();
this.pause_timer = 0;
this.pause_speed = 500;
this.retort_timer = 0;
this.retort_speed = 50;
this.taunting = false;
this.tarantula_tied = false;
this.taunt_timer = 0;
this.taunt_speed = 200;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
if (this.pause_timer > 0) {
--this.pause_timer;
}
if (this.retort_timer > 0) {
--this.retort_timer;
if (this.retort_timer == 0) {
this.pause_timer = this.pause_speed;
this.youalwaysdidtopfromthebottom.start();
}
}
if (this.taunting) {
if (this.taunt_timer < this.taunt_speed) {
++this.taunt_timer;
} else {
this.taunt_timer = 0;
if (!this.tarantula_tied and this.game.queen.queen_state == 'scuttling') {
this.saySomething('taunt');
}
}
}
}
};
v2.saySomething = function (trigger, absolutely) {
if (this.pause_timer == 0) {
for (var v6 in this.triggers) {
if (trigger == this.triggers[v6][0]) {
var v3 = this.triggers[v6][1];
if (Math.ceil(Math.random() * v3) == v3 or absolutely) {
var v2 = this.triggers[v6][3];
while (v2 == this.triggers[v6][3]) {
v2 = Math.floor(Math.random() * this.triggers[v6][2].length);
}
if (this.triggers[v6][2].length > 1) {
this.triggers[v6][3] = v2;
}
this.triggers[v6][2][v2].start();
this.pause_timer = this.pause_speed;
}
}
}
}
};
v2.queenTarantula = function () {
this.pause_timer = 0;
this.pause_speed = 100;
this.saySomething('taunt', true);
this.retort_timer = this.retort_speed;
this.taunting = true;
};
v2.setupVocals = function () {
this.triggers = [['zap', 10, [this.getoverhere, this.iseeyou, this.ihaveyounow, this.struggleallyoulike, this.youcantescapeme, this.youcantsneakuponaspider], 10000], ['collect', 10, [this.backwhereyoubelong, this.delicious, this.ihaveacageforyou, this.kneelbeforeyourqueen, this.youregoingtobepunished], 10000], ['assassin', 3, [this.iseeyou, this.youcantsneakuponaspider], 10000], ['rebirth', 3, [this.imnotfinishedyet], 10000], ['endoflevel', 2, [this.evillaugh, this.iamthespiderqueen, this.slavesarealwaysgettingunderfoot], 10000], ['taunt', 2, [this.catchmeifyoucan, this.hereicome, this.imgonnagetyou, this.submittome, this.youneedtobetaughtalesson], 10000], ['captured', 2, [this.gotyou, this.ilikeyouonaleash, this.youlookgoodinrope, this.youremine, this.youstillcantresistme], 10000], ['escaped', 1, [this.makethemtighternexttime], 10000], ['lose', 1, [this.ithinkillkeepyou, this.iwin, this.punishmenttime, this.snootylaugh, this.youalwayssubmitintheend], 10000]];
};
ASSetPropFlags(_global.Vocals.prototype, null, 1);
}
#endinitclip
}
movieClip 2163 __Packages.Walker {
#initclip
if (!_global.Walker) {
var v1 = function () {
super();
};
_global.Walker = v1;
_global.Walker extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
trace(this.identity);
if (this.identity == null) {
var v2 = 10;
if (Math.ceil(Math.random() * v2) == v2) {
this.identity = 'slave';
} else {
this.identity = 'queen';
}
if (this.identity == 'slave' and Math.ceil(Math.random() * 2) == 2) {
this.identity = 'princess';
}
}
this.done = false;
this.adjustSpeed();
this.frame = 10000;
this.animateMe();
};
v2.onEnterFrame = function () {
this.adjustSpeed();
this.hustleMe();
this.animateMe();
};
v2.adjustSpeed = function () {
this.walk_speed = 4;
var v2 = 16;
if (Key.isDown(37) or Key.isDown(38) or Key.isDown(39) or Key.isDown(40)) {
this.walk_speed = v2;
}
};
v2.hustleMe = function () {
if (this.facing == 'left') {
this._x -= this.walk_speed;
if (this._x < -64) {
this.done = true;
}
} else {
this._x += this.walk_speed;
if (this._x > this.mom.game.room_width) {
this.done = true;
}
}
};
v2.animateMe = function () {
var v2 = 0;
var v3 = 0;
if (this.facing == 'right') {
if (this.identity == 'queen') {
v2 = 1;
v3 = 4;
} else {
if (this.identity == 'princess') {
v2 = 25;
v3 = 28;
} else {
if (this.identity == 'shield') {
v2 = 33;
v3 = 40;
} else {
if (this.identity == 'gladiator') {
v2 = 49;
v3 = 56;
} else {
v2 = 9;
v3 = 16;
}
}
}
}
} else {
if (this.identity == 'queen') {
v2 = 5;
v3 = 8;
} else {
if (this.identity == 'princess') {
v2 = 29;
v3 = 32;
} else {
if (this.identity == 'shield') {
v2 = 41;
v3 = 48;
} else {
if (this.identity == 'gladiator') {
v2 = 57;
v3 = 64;
} else {
v2 = 17;
v3 = 24;
}
}
}
}
}
++this.frame;
if (this.frame > v3) {
this.frame = v2;
}
this.gotoAndStop(this.frame);
};
ASSetPropFlags(_global.Walker.prototype, null, 1);
}
#endinitclip
}
movieClip 2164 __Packages.Wall {
#initclip
if (!_global.Wall) {
var v1 = function () {
super();
};
_global.Wall = v1;
_global.Wall extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.wall_type = 'wall';
this.collision = this;
};
ASSetPropFlags(_global.Wall.prototype, null, 1);
}
#endinitclip
}
movieClip 2165 __Packages.Warp {
#initclip
if (!_global.Warp) {
var v1 = function () {
super();
};
_global.Warp = v1;
_global.Warp extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this._x += 30;
this._y += 30;
};
v2.onEnterFrame = function () {
this.checkPlayer();
};
v2.checkPlayer = function () {
if (this.hitTest(this.game.queen.collide_me)) {
this.adjustScore();
if (this.area > 1) {
this.game.messages.no_specials = true;
}
this.game.area = this.area;
this.game.level = (this.area - 1) * 3 + 1;
this.game.room = this.game.rooms[this.area][0];
this.game.first_stage = false;
this.game.messages.showStatus();
this.game.nextLevel();
}
};
v2.adjustScore = function () {
this.game.score += this.amount;
while (this.game.score >= this.game.next_extend) {
this.game.next_extend = this.game.score + this.game.extend_score;
}
};
ASSetPropFlags(_global.Warp.prototype, null, 1);
}
#endinitclip
}
movieClip 2166 __Packages.Tab {
#initclip
if (!_global.Tab) {
var v1 = function () {
super();
};
_global.Tab = v1;
_global.Tab extends MovieClip;
var v2 = v1.prototype;
ASSetPropFlags(_global.Tab.prototype, null, 1);
}
#endinitclip
}
movieClip 2167 __Packages.Continues {
#initclip
if (!_global.Continues) {
var v1 = function () {
super();
};
_global.Continues = v1;
_global.Continues extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.objs = [];
this.frame = 37;
this.art = _root.attachMovie('Art', 'Art' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
this.art.gotoAndStop(this.frame);
this.objs.push(this.art);
this.animation_timer = 0;
this.animation_speed = 4;
var v3 = _root.attachMovie('Character', 'Character' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.identity = 'traitor';
v3.area = this.game.area;
v3._x = 384;
v3._y = 256;
this.objs.push(v3);
this.words = [];
this.message_font = new TextFormat();
this.message_font.font = 'MessageFont';
this.message_font.embedFonts = true;
this.message_font.size = 16;
this.message_font.align = 'center';
if (this.game.continued) {
this.printText('back so soon?', 'yellow', 192, 128, 224);
this.printText('i\'ll free you again,', 'yellow', 192, 144, 224);
this.printText('but you have to live', 'yellow', 192, 160, 224);
this.printText('with the humiliation!', 'yellow', 192, 176, 224);
} else {
this.printText('your former majesty,', 'yellow', 192, 128, 224);
this.printText('i can cut you free', 'yellow', 192, 144, 224);
this.printText('but it will cost', 'yellow', 192, 160, 224);
this.printText('you your dignity!', 'yellow', 192, 176, 224);
}
this.printText('accept your', 'blue', 96, 320, 128);
this.printText('final score', 'blue', 96, 336, 128);
this.printText('continue game', 'blue', 352, 320, 128);
this.printText('with no score', 'blue', 352, 336, 128);
this.game.makeQueen(true);
this.game.sounds.falldown.start();
};
v2.printText = function (text_dump, text_color, where_x, where_y, text_width) {
var v3 = _root.createTextField('Textbox', _root.getNextHighestDepth(), where_x, where_y, text_width, 120);
v3.embedFonts = true;
v3.textColor = this.game.hexColor(text_color);
v3.text = text_dump;
v3.setTextFormat(this.message_font);
this.words.push(v3);
};
v2.onEnterFrame = function () {
this.animateBackground();
this.checkPlayer();
};
v2.animateBackground = function () {
if (this.animation_timer < this.animation_speed) {
++this.animation_timer;
} else {
this.animation_timer = 0;
if (this.frame == 37) {
this.frame = 38;
} else {
this.frame = 37;
}
this.art.gotoAndStop(this.frame);
}
};
v2.checkPlayer = function () {
if (this.game.queen._x <= 192) {
this.game.highScore();
this.removeMe();
}
if (this.game.queen._x >= 352) {
this.game.continueGame();
this.removeMe();
}
};
v2.removeMe = function () {
for (var v2 in this.objs) {
this.objs[v2].removeMovieClip();
}
for (v2 in this.words) {
this.words[v2].removeTextField();
}
this.game.queen.removeMovieClip();
this.removeMovieClip();
};
ASSetPropFlags(_global.Continues.prototype, null, 1);
}
#endinitclip
}
movieClip 2168 __Packages.Map {
#initclip
if (!_global.Map) {
var v1 = function () {
super();
};
_global.Map = v1;
_global.Map extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
if (this.identity == 'bg') {
this.gotoAndStop(1);
} else {
this.refreshMe();
}
this.flash_timer = 0;
this.flash_speed = 10;
this.flashed_out = false;
};
v2.refreshMe = function () {
var v2 = 0;
switch (this.identity) {
case 'palace':
v2 = 2;
break;
case 'blue':
v2 = 5;
break;
case 'pink':
v2 = 8;
break;
case 'purple':
v2 = 11;
break;
case 'red':
v2 = 14;
break;
case 'lair':
v2 = 17;
}
var v3 = 0;
this.flashing = false;
if (!this.game.demo) {
if (this.game.level == this.place) {
v3 = 1;
this.flashing = true;
}
if (this.game.level > this.place) {
v3 = 2;
}
}
this.frame = v2 + v3;
this.gotoAndStop(this.frame);
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
if (this.flashing) {
this.flashMe();
}
}
};
v2.flashMe = function () {
if (this.flash_timer < this.flash_speed) {
++this.flash_timer;
} else {
this.flash_timer = 0;
if (this.flashed_out) {
this.gotoAndStop(this.frame);
this.flashed_out = false;
} else {
this.gotoAndStop(this.frame - 1);
this.flashed_out = true;
}
}
};
ASSetPropFlags(_global.Map.prototype, null, 1);
}
#endinitclip
}
movieClip 2169 __Packages.Glitch {
#initclip
if (!_global.Glitch) {
var v1 = function () {
super();
};
_global.Glitch = v1;
_global.Glitch extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.colors = [16125711, 12261154, 4023295, 2238665, 14483550, 11796546, 6881446, 3868742, 65280];
this.color = 16125711;
this.textures = ['assassin.gif', 'check.gif', 'colors_1.gif', 'colors_2.gif', 'dots_1.gif', 'dots_2.gif', 'eyes.gif', 'fire.gif', 'grid_1.gif', 'mars.gif', 'redder.gif', 'slave_1.gif', 'slave_2.gif', 'spike.gif', 'stripes_1.gif', 'stripes_2.gif', 'stripes_3.gif', 'tits.gif', 'wall_1.gif', 'wall_2.gif', 'wall_3.gif'];
this.texture = 'none';
this.chooseTexture();
if (!this.logo) {
this.gotoAndStop(1);
} else {
this._x = 136;
this._y = 236;
this.gotoAndStop(2);
}
this.createBox();
};
v2.onEnterFrame = function () {
this.createBox();
};
v2.createBox = function () {
if (this.logo) {
var v2 = 4;
} else {
var v2 = 2;
}
var v3 = Math.ceil(Math.random() * v2);
if (v3 == v2) {
if (this.logo) {
this.chooseLogo();
} else {
this.chooseTexture();
}
}
if (!this.logo) {
this.drawBox();
}
};
v2.chooseLogo = function () {
var v2 = Math.ceil(Math.random() * 8) + 1;
this.gotoAndStop(v2);
};
v2.chooseTexture = function () {
var v2 = 3;
var v3 = Math.ceil(Math.random() * v2);
this.is_texture = false;
if (v3 == v2) {
this.is_texture = true;
}
this.color = this.colors[Math.floor(Math.random() * this.colors.length)];
this.texture = this.textures[Math.floor(Math.random() * this.textures.length)];
this.x_start_var = this.varyBox(this.x_start);
this.y_start_var = this.varyBox(this.y_start);
this.x_end_var = this.varyBox(this.x_end);
this.y_end_var = this.varyBox(this.y_end);
};
v2.drawBox = function () {
this.box.removeMovieClip();
this.box = this.createEmptyMovieClip('box', _root.getNextHighestDepth());
if (this.is_texture) {
var v3 = flash.display.BitmapData.loadBitmap(this.texture);
this.box.beginBitmapFill(v3);
this.box.moveTo(this.x_start_var, this.y_start_var);
this.box.lineTo(this.x_end_var, this.y_start_var);
this.box.lineTo(this.x_end_var, this.y_end_var);
this.box.lineTo(this.x_start_var, this.y_end_var);
this.box.lineTo(this.x_start_var, this.y_start_var);
this.box.endFill();
} else {
this.box.beginFill(this.color);
this.box.moveTo(this.x_start_var, this.y_start_var);
this.box.lineTo(this.x_end_var, this.y_start_var);
this.box.lineTo(this.x_end_var, this.y_end_var);
this.box.lineTo(this.x_start_var, this.y_end_var);
this.box.lineTo(this.x_start_var, this.y_start_var);
this.box.endFill();
}
};
v2.varyBox = function (originumber) {
var v1 = 2;
return originumber + Math.ceil(Math.random() * (v1 * 2) - v1) * 2;
};
v2.removeMe = function () {
this.box.removeMovieClip();
this.removeMovieClip();
};
ASSetPropFlags(_global.Glitch.prototype, null, 1);
}
#endinitclip
}
movieClip 2170 __Packages.Thoughtbubble {
#initclip
if (!_global.Thoughtbubble) {
var v1 = function () {
super();
};
_global.Thoughtbubble = v1;
_global.Thoughtbubble extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {};
v2.onEnterFrame = function () {
this.flashMe();
};
v2.flashMe = function () {
if (this._visible) {
this._visible = false;
} else {
this._visible = true;
}
};
v2.followQueen = function () {
this._x = this.queen._x + 56;
this._y = this.queen._y - 56;
};
ASSetPropFlags(_global.Thoughtbubble.prototype, null, 1);
}
#endinitclip
}
movieClip 2171 __Packages.Art {
#initclip
if (!_global.Art) {
var v1 = function () {
super();
};
_global.Art = v1;
_global.Art extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.animation = 'none';
this.animation_timer = 0;
this.animation_speed = 1;
this.frame = 1;
this.boxes = [];
if (this.box_pattern != null) {
switch (this.box_pattern) {
case 3:
this.makeBox(0, 0, 0, 0, true);
break;
case 4:
this.makeBox(90, 66, 134, 84, false);
this.makeBox(378, 98, 428, 116, false);
break;
case 6:
this.makeBox(356, 294, 484, 332, false);
this.makeBox(118, 110, 138, 122, false);
this.makeBox(140, 98, 160, 110, false);
break;
case 13:
this.makeBox(208, 268, 286, 318, false);
this.makeBox(242, 214, 322, 258, false);
this.makeBox(496, 398, 532, 420, false);
}
}
};
v2.onEnterFrame = function () {
if (this.animation != 'none') {
this.animateMe();
}
};
v2.makeBox = function (x_start, y_start, x_end, y_end, logo) {
var v3 = _root.attachMovie('Glitch', 'Glitch' + _root.getNextHighestDepth(), _root.getNextHighestDepth());
v3.x_start = x_start;
v3.y_start = y_start;
v3.x_end = x_end;
v3.y_end = y_end;
v3.logo = logo;
this.boxes.push(v3);
};
v2.animateMe = function () {
if (this.animation_timer < this.animation_speed) {
++this.animation_timer;
} else {
this.animation_timer = 0;
++this.frame;
if (this.animation == 'crystal' and this.frame > 3) {
this.frame = 1;
}
if (this.animation == 'tarantula' and this.frame > 4) {
this.frame = 1;
}
if (this.animation == 'crystal') {
switch (this.frame) {
case 1:
this.gotoAndStop(29);
break;
case 2:
this.gotoAndStop(30);
break;
case 3:
this.gotoAndStop(31);
}
}
if (this.animation == 'tarantula') {
switch (this.frame) {
case 1:
case 3:
this.gotoAndStop(32);
break;
case 2:
this.gotoAndStop(33);
break;
case 4:
this.gotoAndStop(34);
}
}
}
};
v2.removeMe = function () {
this.removeBoxes();
this.removeMovieClip();
};
v2.removeBoxes = function () {
for (var v2 in this.boxes) {
this.boxes[v2].removeMe();
}
};
ASSetPropFlags(_global.Art.prototype, null, 1);
}
#endinitclip
}
movieClip 2172 __Packages.Facade {
#initclip
if (!_global.Facade) {
var v1 = function () {
super();
};
_global.Facade = v1;
_global.Facade extends MovieClip;
var v2 = v1.prototype;
ASSetPropFlags(_global.Facade.prototype, null, 1);
}
#endinitclip
}
movieClip 2173 __Packages.Arrow {
#initclip
if (!_global.Arrow) {
var v1 = function () {
super();
};
_global.Arrow = v1;
_global.Arrow extends MovieClip;
var v2 = v1.prototype;
v2.onLoad = function () {
this.move_timer = 0;
this.move_speed = 1;
this.move_phase = 1;
this.position_1 = this._y;
this.position_2 = this.position_1 + 34;
this.position_3 = this.position_2 + 34;
this.repeats = 15;
};
v2.onEnterFrame = function () {
if (this.game.unpaused) {
this.moveMe();
}
};
v2.moveMe = function () {
if (this.move_timer < this.move_speed) {
++this.move_timer;
} else {
this.move_timer = 0;
++this.move_phase;
if (this.move_phase > 3) {
this.move_phase = 1;
}
if (this.repeats == 0) {
this.removeMe();
} else {
if (this.move_phase == 1) {
this._y = this.position_1;
}
if (this.move_phase == 2) {
this._y = this.position_2;
}
if (this.move_phase == 3) {
this._y = this.position_3;
}
}
}
};
v2.animateMe = function () {
if (this.pointing == 'down') {
if (this.frame != 1) {
this.frame = 1;
} else {
this.frame = 2;
}
}
if (this.pointing == 'left') {
if (this.frame != 3) {
this.frame = 3;
} else {
this.frame = 4;
}
}
if (this.pointing == 'right') {
if (this.frame != 5) {
this.frame = 5;
} else {
this.frame = 6;
}
}
this.gotoAndStop(this.frame);
};
v2.removeMe = function () {
this.removeMovieClip();
};
ASSetPropFlags(_global.Arrow.prototype, null, 1);
}
#endinitclip
}
movieClip 2174 __Packages.as2md5 {
#initclip
if (!_global.as2md5) {
var v1 = function (b64pad, chrsz) {
if (b64pad != undefined) {
this.b64pad = b64pad;
}
if (chrsz != undefined && chrsz == 8 || chrsz == 16) {
this.chrsz = chrsz;
}
};
_global.as2md5 = v1;
var v2 = v1.prototype;
v2.hash = function (s) {
return this.hex_md5(s);
};
v2.hex_md5 = function (s) {
return this.binl2hex(this.core_md5(this.str2binl(s), s.length * this.chrsz));
};
v2.b64_md5 = function (s) {
return this.binl2b64(this.core_md5(this.str2binl(s), s.length * this.chrsz));
};
v2.str_md5 = function (s) {
return this.binl2str(this.core_md5(this.str2binl(s), s.length * this.chrsz));
};
v2.hex_hmac_md5 = function (key, data) {
return this.binl2hex(this.core_hmac_md5(key, data));
};
v2.b64_hmac_md5 = function (key, data) {
return this.binl2b64(this.core_hmac_md5(key, data));
};
v2.str_hmac_md5 = function (key, data) {
return this.binl2str(this.core_hmac_md5(key, data));
};
v2.md5_cmn = function (q, a, b, x, s, t) {
return this.safe_add(this.bit_rol(this.safe_add(this.safe_add(a, q), this.safe_add(x, t)), s), b);
};
v2.md5_ff = function (a, b, c, d, x, s, t) {
return this.md5_cmn(b & c | ~b & d, a, b, x, s, t);
};
v2.md5_gg = function (a, b, c, d, x, s, t) {
return this.md5_cmn(b & d | c & ~d, a, b, x, s, t);
};
v2.md5_hh = function (a, b, c, d, x, s, t) {
return this.md5_cmn(b ^ c ^ d, a, b, x, s, t);
};
v2.md5_ii = function (a, b, c, d, x, s, t) {
return this.md5_cmn(c ^ (b | ~d), a, b, x, s, t);
};
v2.core_md5 = function (x, len) {
x[len >> 5] |= 128 << len % 32;
x[(len + 64 >>> 9 << 4) + 14] = len;
var v5 = 1732584193;
var v4 = -271733879;
var v3 = -1732584194;
var v2 = 271733878;
var v6 = 0;
while (v6 < x.length) {
var v11 = v5;
var v10 = v4;
var v9 = v3;
var v8 = v2;
v5 = this.md5_ff(v5, v4, v3, v2, x[v6 + 0], 7, -680876936);
v2 = this.md5_ff(v2, v5, v4, v3, x[v6 + 1], 12, -389564586);
v3 = this.md5_ff(v3, v2, v5, v4, x[v6 + 2], 17, 606105819);
v4 = this.md5_ff(v4, v3, v2, v5, x[v6 + 3], 22, -1044525330);
v5 = this.md5_ff(v5, v4, v3, v2, x[v6 + 4], 7, -176418897);
v2 = this.md5_ff(v2, v5, v4, v3, x[v6 + 5], 12, 1200080426);
v3 = this.md5_ff(v3, v2, v5, v4, x[v6 + 6], 17, -1473231341);
v4 = this.md5_ff(v4, v3, v2, v5, x[v6 + 7], 22, -45705983);
v5 = this.md5_ff(v5, v4, v3, v2, x[v6 + 8], 7, 1770035416);
v2 = this.md5_ff(v2, v5, v4, v3, x[v6 + 9], 12, -1958414417);
v3 = this.md5_ff(v3, v2, v5, v4, x[v6 + 10], 17, -42063);
v4 = this.md5_ff(v4, v3, v2, v5, x[v6 + 11], 22, -1990404162);
v5 = this.md5_ff(v5, v4, v3, v2, x[v6 + 12], 7, 1804603682);
v2 = this.md5_ff(v2, v5, v4, v3, x[v6 + 13], 12, -40341101);
v3 = this.md5_ff(v3, v2, v5, v4, x[v6 + 14], 17, -1502002290);
v4 = this.md5_ff(v4, v3, v2, v5, x[v6 + 15], 22, 1236535329);
v5 = this.md5_gg(v5, v4, v3, v2, x[v6 + 1], 5, -165796510);
v2 = this.md5_gg(v2, v5, v4, v3, x[v6 + 6], 9, -1069501632);
v3 = this.md5_gg(v3, v2, v5, v4, x[v6 + 11], 14, 643717713);
v4 = this.md5_gg(v4, v3, v2, v5, x[v6 + 0], 20, -373897302);
v5 = this.md5_gg(v5, v4, v3, v2, x[v6 + 5], 5, -701558691);
v2 = this.md5_gg(v2, v5, v4, v3, x[v6 + 10], 9, 38016083);
v3 = this.md5_gg(v3, v2, v5, v4, x[v6 + 15], 14, -660478335);
v4 = this.md5_gg(v4, v3, v2, v5, x[v6 + 4], 20, -405537848);
v5 = this.md5_gg(v5, v4, v3, v2, x[v6 + 9], 5, 568446438);
v2 = this.md5_gg(v2, v5, v4, v3, x[v6 + 14], 9, -1019803690);
v3 = this.md5_gg(v3, v2, v5, v4, x[v6 + 3], 14, -187363961);
v4 = this.md5_gg(v4, v3, v2, v5, x[v6 + 8], 20, 1163531501);
v5 = this.md5_gg(v5, v4, v3, v2, x[v6 + 13], 5, -1444681467);
v2 = this.md5_gg(v2, v5, v4, v3, x[v6 + 2], 9, -51403784);
v3 = this.md5_gg(v3, v2, v5, v4, x[v6 + 7], 14, 1735328473);
v4 = this.md5_gg(v4, v3, v2, v5, x[v6 + 12], 20, -1926607734);
v5 = this.md5_hh(v5, v4, v3, v2, x[v6 + 5], 4, -378558);
v2 = this.md5_hh(v2, v5, v4, v3, x[v6 + 8], 11, -2022574463);
v3 = this.md5_hh(v3, v2, v5, v4, x[v6 + 11], 16, 1839030562);
v4 = this.md5_hh(v4, v3, v2, v5, x[v6 + 14], 23, -35309556);
v5 = this.md5_hh(v5, v4, v3, v2, x[v6 + 1], 4, -1530992060);
v2 = this.md5_hh(v2, v5, v4, v3, x[v6 + 4], 11, 1272893353);
v3 = this.md5_hh(v3, v2, v5, v4, x[v6 + 7], 16, -155497632);
v4 = this.md5_hh(v4, v3, v2, v5, x[v6 + 10], 23, -1094730640);
v5 = this.md5_hh(v5, v4, v3, v2, x[v6 + 13], 4, 681279174);
v2 = this.md5_hh(v2, v5, v4, v3, x[v6 + 0], 11, -358537222);
v3 = this.md5_hh(v3, v2, v5, v4, x[v6 + 3], 16, -722521979);
v4 = this.md5_hh(v4, v3, v2, v5, x[v6 + 6], 23, 76029189);
v5 = this.md5_hh(v5, v4, v3, v2, x[v6 + 9], 4, -640364487);
v2 = this.md5_hh(v2, v5, v4, v3, x[v6 + 12], 11, -421815835);
v3 = this.md5_hh(v3, v2, v5, v4, x[v6 + 15], 16, 530742520);
v4 = this.md5_hh(v4, v3, v2, v5, x[v6 + 2], 23, -995338651);
v5 = this.md5_ii(v5, v4, v3, v2, x[v6 + 0], 6, -198630844);
v2 = this.md5_ii(v2, v5, v4, v3, x[v6 + 7], 10, 1126891415);
v3 = this.md5_ii(v3, v2, v5, v4, x[v6 + 14], 15, -1416354905);
v4 = this.md5_ii(v4, v3, v2, v5, x[v6 + 5], 21, -57434055);
v5 = this.md5_ii(v5, v4, v3, v2, x[v6 + 12], 6, 1700485571);
v2 = this.md5_ii(v2, v5, v4, v3, x[v6 + 3], 10, -1894986606);
v3 = this.md5_ii(v3, v2, v5, v4, x[v6 + 10], 15, -1051523);
v4 = this.md5_ii(v4, v3, v2, v5, x[v6 + 1], 21, -2054922799);
v5 = this.md5_ii(v5, v4, v3, v2, x[v6 + 8], 6, 1873313359);
v2 = this.md5_ii(v2, v5, v4, v3, x[v6 + 15], 10, -30611744);
v3 = this.md5_ii(v3, v2, v5, v4, x[v6 + 6], 15, -1560198380);
v4 = this.md5_ii(v4, v3, v2, v5, x[v6 + 13], 21, 1309151649);
v5 = this.md5_ii(v5, v4, v3, v2, x[v6 + 4], 6, -145523070);
v2 = this.md5_ii(v2, v5, v4, v3, x[v6 + 11], 10, -1120210379);
v3 = this.md5_ii(v3, v2, v5, v4, x[v6 + 2], 15, 718787259);
v4 = this.md5_ii(v4, v3, v2, v5, x[v6 + 9], 21, -343485551);
v5 = this.safe_add(v5, v11);
v4 = this.safe_add(v4, v10);
v3 = this.safe_add(v3, v9);
v2 = this.safe_add(v2, v8);
v6 += 16;
}
return Array(v5, v4, v3, v2);
};
v2.core_hmac_md5 = function (key, data) {
var v3 = new Array(this.str2binl(key));
if (v3.length > 16) {
v3 = this.core_md5(v3, key.length * this.chrsz);
}
var v4 = new Array(16);
var v5 = new Array(16);
var v2 = 0;
while (v2 < 16) {
v4[v2] = v3[v2] ^ 909522486;
v5[v2] = v3[v2] ^ 1549556828;
++v2;
}
var v6 = new Array(this.core_md5(v4.concat(this.str2binl(data)), 512 + data.length * this.chrsz));
return this.core_md5(v5.concat(v6), 640);
};
v2.safe_add = function (x, y) {
var v1 = new Number((x & 65535) + (y & 65535));
var v2 = new Number((x >> 16) + (y >> 16) + (v1 >> 16));
return v2 << 16 | v1 & 65535;
};
v2.bit_rol = function (num, cnt) {
return num << cnt | num >>> 32 - cnt;
};
v2.str2binl = function (str) {
var v4 = new Array();
var v5 = (1 << this.chrsz) - 1;
var v2 = 0;
while (v2 < str.length * this.chrsz) {
v4[v2 >> 5] |= (str.charCodeAt(v2 / this.chrsz) & v5) << v2 % 32;
v2 += this.chrsz;
}
return v4;
};
v2.binl2str = function (bin) {
var v4 = new String('');
var v5 = (1 << this.chrsz) - 1;
var v2 = 0;
while (v2 < bin.length * 32) {
v4 += String.fromCharCode(bin[v2 >> 5] >>> v2 % 32 & v5);
v2 += this.chrsz;
}
return v4;
};
v2.binl2hex = function (binarray) {
var v3 = '0123456789abcdef';
var v4 = new String('');
var v1 = 0;
while (v1 < binarray.length * 4) {
v4 += v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 + 4 & 15) + v3.charAt(binarray[v1 >> 2] >> (v1 % 4) * 8 & 15);
++v1;
}
return v4;
};
v2.binl2b64 = function (binarray) {
var v7 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
var v5 = new String('');
var v3 = 0;
while (v3 < binarray.length * 4) {
var v6 = (binarray[v3 >> 2] >> 8 * (v3 % 4) & 255) << 16 | (binarray[v3 + 1 >> 2] >> 8 * ((v3 + 1) % 4) & 255) << 8 | binarray[v3 + 2 >> 2] >> 8 * ((v3 + 2) % 4) & 255;
var v2 = 0;
while (v2 < 4) {
if (v3 * 8 + v2 * 6 > binarray.length * 32) {
v5 += this.b64pad;
} else {
v5 += v7.charAt(v6 >> 6 * (3 - v2) & 63);
}
++v2;
}
v3 += 3;
}
return v5;
};
v2.b64pad = new String('');
v2.chrsz = new Number(8);
ASSetPropFlags(_global.as2md5.prototype, null, 1);
}
#endinitclip
}
// unknown tag 88 length 140
movieClip 1659 Arrow {
#initclip
Object.registerClass('Arrow', Arrow);
#endinitclip
}
movieClip 1788 Assassin {
#initclip
Object.registerClass('Assassin', Assassin);
#endinitclip
}
movieClip 1789 Cast {
#initclip
Object.registerClass('Cast', Cast);
#endinitclip
}
movieClip 1808 Character {
#initclip
Object.registerClass('Character', Character);
#endinitclip
}
movieClip 1819 Collision {
#initclip
Object.registerClass('Collision', Collision);
#endinitclip
}
movieClip 1820 Credits {
#initclip
Object.registerClass('Credits', Credits);
#endinitclip
}
movieClip 1821 Cutscene {
#initclip
Object.registerClass('Cutscene', Cutscene);
#endinitclip
}
movieClip 1838 Dagger {
#initclip
Object.registerClass('Dagger', Dagger);
#endinitclip
}
movieClip 1874 Decor {
#initclip
Object.registerClass('Decor', Decor);
#endinitclip
}
movieClip 1877 Egg {
#initclip
Object.registerClass('Egg', Egg);
#endinitclip
}
movieClip 1895 Exit {
#initclip
Object.registerClass('Exit', Exit);
#endinitclip
}
movieClip 1896 Game {
#initclip
Object.registerClass('Game', Game);
#endinitclip
}
movieClip 1902 Gem {
#initclip
Object.registerClass('Gem', Gem);
#endinitclip
}
movieClip 1903 Highscore {
#initclip
Object.registerClass('Highscore', Highscore);
#endinitclip
}
movieClip 1904 Laser {
#initclip
Object.registerClass('Laser', Laser);
#endinitclip
}
movieClip 1911 Life {
#initclip
Object.registerClass('Life', Life);
#endinitclip
}
movieClip 1912 Logo {
#initclip
Object.registerClass('Logo', Logo);
#endinitclip
}
movieClip 1913 Maze {
#initclip
Object.registerClass('Maze', Maze);
#endinitclip
}
movieClip 1914 Messages {
#initclip
Object.registerClass('Messages', Messages);
#endinitclip
}
movieClip 1915 Points {
#initclip
Object.registerClass('Points', Points);
#endinitclip
}
movieClip 1922 Puff {
#initclip
Object.registerClass('Puff', Puff);
#endinitclip
}
movieClip 1983 Queen {
#initclip
Object.registerClass('Queen', Queen);
#endinitclip
}
movieClip 1985 Secret {
#initclip
Object.registerClass('Secret', Secret);
#endinitclip
}
movieClip 1986 Sounds {
#initclip
Object.registerClass('Sounds', Sounds);
#endinitclip
}
movieClip 1992 Sparkle {
#initclip
Object.registerClass('Sparkle', Sparkle);
#endinitclip
}
movieClip 2009 Spike {
#initclip
Object.registerClass('Spike', Spike);
#endinitclip
}
movieClip 2011 Star {
#initclip
Object.registerClass('Star', Star);
#endinitclip
}
movieClip 2012 Title {
#initclip
Object.registerClass('Title', Title);
#endinitclip
}
movieClip 2023 Trap {
#initclip
Object.registerClass('Trap', Trap);
#endinitclip
}
movieClip 2026 Twinkle {
#initclip
Object.registerClass('Twinkle', Twinkle);
#endinitclip
}
movieClip 2027 Vocals {
#initclip
Object.registerClass('Vocals', Vocals);
#endinitclip
}
movieClip 2028 Walker {
#initclip
Object.registerClass('Walker', Walker);
#endinitclip
}
movieClip 2035 Wall {
#initclip
Object.registerClass('Wall', Wall);
#endinitclip
}
movieClip 2036 Warp {
#initclip
Object.registerClass('Warp', Warp);
#endinitclip
}
movieClip 2039 Tab {
#initclip
Object.registerClass('Tab', Tab);
#endinitclip
}
movieClip 2040 Continues {
#initclip
Object.registerClass('Continues', Continues);
#endinitclip
}
movieClip 2060 Map {
#initclip
Object.registerClass('Map', Map);
#endinitclip
}
movieClip 2069 Glitch {
#initclip
Object.registerClass('Glitch', Glitch);
#endinitclip
}
movieClip 2071 Thoughtbubble {
#initclip
Object.registerClass('Thoughtbubble', Thoughtbubble);
#endinitclip
}
movieClip 2113 Art {
#initclip
Object.registerClass('Art', Art);
#endinitclip
}
movieClip 2118 Facade {
#initclip
Object.registerClass('Facade', Facade);
#endinitclip
}
movieClip 2119 {
frame 1 {
stop();
}
}
frame 3 {
stop();
}
// unknown tag 88 length 144
movieClip 2123 {
frame 1 {
function clearListeners() {
trace('rrr');
var v3 = Number(this.var3);
var v2 = Number(this.var1);
trace('!1! ' + v3 + ' :: ' + v2);
try {
var v9 = flash.external.ExternalInterface.call('getLittleServer');
}
catch (v0) {
if (Error(v0) != null) {
var oErr = Error(v0);
v9 = 'http://highscores.adultswim.com/highscores/SubmitScoreServlet.do?';
trace('err 1: ' + oErr + ' :: ' + oErr.message);
} else {
throw v0;
}
}
try {
var v4 = flash.external.ExternalInterface.call('getSrvrTime');
}
catch (v0) {
if (Error(v0) != null) {
var oErr = Error(v0);
v4 = (new Date()).getTime();
trace('err 2: ' + oErr + ' :: ' + oErr.message);
} else {
throw v0;
}
}
var v7 = v4.toString();
var v13 = v7.substr(-3, 3);
var v12 = v7.substr(-4, 3);
var v11 = parseInt(v13);
var v10 = parseInt(v12);
var v8 = v11 * v10 * v2 + v2;
trace('nAlgo ' + v8);
var v5 = v3 + ',' + v2 + ',' + v4 + ',' + v8;
trace('strToPass ' + v5);
var v6 = m.hash(v5);
trace(v9 + 'attr1=score=' + v2 + '|gameId=' + v3 + '|timestamp=' + v4 + '|key=' + v6);
getURL(v9 + 'attr1=score=' + v2 + '|gameId=' + v3 + '|timestamp=' + v4 + '|key=' + v6, '_self');
}
try {
var m = new as2md5();
}
catch (v0) {
if (Error(v0) != null) {
var oErr = Error(v0);
var m;
trace('err 0: ' + oErr + ' :: ' + oErr.message);
} else {
throw v0;
}
}
}
frame 1 {
}
}