Frame 1
trace("loaded jtr");
Frame 58
function main(target, url) {
hoeScore = 0;
score = 0;
totalHoe = 0;
tar = target;
hoesInLevel = 7;
init(url);
loadTracker = 0;
healthMeter._visible = false;
soundManager = tar.createEmptyMovieClip("soundManager_MC", tar.getNextHighestDepth());
registerSounds();
playSound("trimIntro");
trace("running main");
}
function init(url, arg) {
if (arg == 1) {
hoesInLevel = 7;
currentLevel = 1;
}
if (arg == 2) {
hoesInLevel = 10;
currentLevel = 2;
}
if (arg == 3) {
hoesInLevel = 5;
currentLevel = 3;
}
lastURL = url;
renderMC.removeMovieClip();
levelMC.removeMovieClip();
tar.removeMovieClip();
delete renderMC;
delete renderer;
delete jackIntface;
delete roundCalculator;
delete levelMC;
StartScreen = tar.attachMovie("StartScreen", "StartScreen_MC", tar.getNextHighestDepth());
StartScreen.inner.startButton.me = this;
StartScreen.alphaVec = 0;
StartScreen.me = this;
StartScreen.inner.startButton.onRelease = function () {
this.me.fadeScreenOut();
};
}
function setupHud() {
if (score == null) {
score = 0;
}
if (hoeScore == null) {
hoeScore = 0;
}
if (totalHoe == null) {
totalHoe = 0;
}
totalHoe = totalHoe + hoeScore;
lastLevelScore = score;
hoeScore = 0;
healthMeter = tar.attachMovie("healthMeter", "healthMeter_MC", tar.getNextHighestDepth());
healthMeter.swapDepths(5005);
healthMeter._visible = true;
healthMeter._x = 24;
healthMeter._y = 7;
ScoreBoard = tar.attachMovie("ScoreBoard", "ScoreBoard_MC", tar.getNextHighestDepth());
ScoreBoard.swapDepths(5001);
ScoreBoard._x = 530;
ScoreBoard._y = 34;
ScoreBoard.hoe1.text = (hoeScore + "/") + hoesInLevel;
ScoreBoard.hoe2.text = (hoeScore + "/") + hoesInLevel;
ScoreBoard.a.text = String("SCORE: " + score);
ScoreBoard.b.text = String("SCORE: " + score);
}
function fadeScreenOut() {
StartScreen.play();
}
function fadeScreenOut_Finished() {
StartScreen.removeMovieClip();
delete StartScreen;
}
function reLoadLevel(url, arg, startScrn) {
StartScreen = startScrn;
if (arg == null) {
score = lastLevelScore;
hoeScore = lastHoeScore;
}
trace("commanded to reload");
jackDies();
renderMC.removeMovieClip();
levelMC.removeMovieClip();
tar.removeMovieClip();
delete renderMC;
delete renderer;
delete jackIntface;
delete roundCalculator;
delete levelMC;
jackIntface = new as.main.jackInterface(this);
renderer = new as.main.renderEngine(this, tar);
roundCalculator = new as.main.model(this, renderer);
renderMC = renderer.getRenderMC();
renderer.setModel(roundCalculator);
levelMC = tar.createEmptyMovieClip("levelMC", -5000);
jack = renderMC.createEmptyMovieClip("jack", renderMC.getNextHighestDepth());
healthMeter._visible = false;
ScoreBoard._visible = false;
renderMC.introTicker = 0;
if (url == null) {
loadNewLevel(lastURL);
} else {
loadNewLevel(url);
lastURL = url;
}
if (arg == 1) {
hoesInLevel = 7;
currentLevel = 1;
}
if (arg == 2) {
hoesInLevel = 10;
currentLevel = 2;
}
if (arg == 3) {
hoesInLevel = 4;
currentLevel = 3;
}
soundManager.jackDies.stop();
soundManager.introFX.stop();
soundManager.intro.stop();
soundManager.trak.stop();
playSound("thunderLoop");
}
function run() {
roundCalculator.moveByRound(jackIntface.collectLiterals());
}
function pause() {
clearInterval(runInterVal);
tar.onEnterFrame = null;
}
function unPause() {
initialize();
}
function initialize() {
tar.onEnterFrame = mx.utils.Delegate.create(this, render);
}
function render() {
run();
renderer.render(roundCalculator.getItemList());
}
function levelReady() {
playIntro();
initialize();
}
function levelLoaded() {
jackStart = levelMC.jackStart;
levelMC._visible = false;
path = levelMC.path;
path._visible = false;
jackIntface.init();
roundCalculator.init();
renderer.init();
jackStart._visible = false;
loadJack();
healthMeter.removeMovieClip();
ScoreBoard.removeMovieClip();
StartScreen.gotoAndPlay("fadeFromBlack");
levelMC._visible = true;
StartScreen.swapDepths(3000);
setupHud();
delete lvlListener;
}
function jackLoaded() {
jack.init(this);
jack.rePosition(0, 0, jackStart);
jack.setPath(path);
jack.healthMeter = healthMeter;
jack.main = this;
levelReady();
delete jckListener;
}
function loadJack(target) {
jckListener = new Object();
jckLoader.addListener(jckListener);
jckLoader.loadClip(jackURL, jack);
jckListener.me = this;
jckListener.onLoadInit = function (target_mc) {
this.me.jackLoaded();
};
jckListener.onLoadProgress = function (target_mc) {
this.me.loadTracker = (target_mc.getBytesLoaded() / target_mc.getBytesTotal()) * 100;
if ((this.me.loadTracker < 100) && (this.me.loadTracker > 0)) {
this.me.tar.loader._visible = true;
this.me.tar.loader._xscale = this.me.loadTracker;
} else {
tar.loader._visible = false;
}
};
}
function loadAssets() {
assetsLoaded++;
astListener = new Object();
astLoader.addListener(astListener);
astLoader.loadClip(assetURL[assetsLoaded], assets);
astListener.me = this;
astListener.onLoadInit = function (target_mc) {
trace("hello" + target_mc._name);
this.me.assetsLoaded();
};
astListener.onLoadProgress = function (target_mc) {
this.me.loadTracker = (target_mc.getBytesLoaded() / target_mc.getBytesTotal()) * 100;
if ((this.me.loadTracker < 100) && (this.me.loadTracker > 0)) {
this.me.tar.loader._visible = true;
this.me.tar.loader._xscale = this.me.loadTracker;
} else {
tar.loader._visible = false;
}
};
}
function loadNewLevel(url) {
lvlListener = new Object();
lvlLoader.addListener(lvlListener);
lvlLoader.loadClip(url, levelMC);
lvlListener.me = this;
lvlListener.onLoadInit = function (target_mc) {
trace((("hello " + target_mc._name) + " size: ") + target_mc.getBytesLoaded());
this.me.levelLoaded();
};
lvlListener.onLoadProgress = function (target_mc) {
this.me.loadTracker = (target_mc.getBytesLoaded() / target_mc.getBytesTotal()) * 100;
if ((this.me.loadTracker < 100) && (this.me.loadTracker > 0)) {
this.me.tar.loader._visible = true;
this.me.tar.loader._xscale = this.me.loadTracker;
} else {
tar.loader._visible = false;
}
};
}
function updateScore(val) {
trace("update score");
if (val == "hoe") {
hoeScore = hoeScore + 1;
ScoreBoard.hoe1.text = (hoeScore + "/") + hoesInLevel;
ScoreBoard.hoe2.text = (hoeScore + "/") + hoesInLevel;
} else {
score = score + val;
ScoreBoard.a.text = String("SCORE: " + score);
ScoreBoard.b.text = String("SCORE: " + score);
}
}
function jackDied() {
roundCalculator.dieSequence();
}
function jackDies() {
roundCalculator.deleteAssets();
roundCalculator.reset();
healthMeter.inner.meter._xscale = 100;
healthMeter._visible = false;
}
function getJack() {
return(jack);
}
function getPath() {
return(path);
}
function getTarget() {
return(tar);
}
function getLevel() {
return(levelMC);
}
function registerSounds() {
soundManager.PunchTwo = new Sound(soundManager);
soundManager.PunchTwo.attachSound("PunchTwo");
soundManager.Punchthree = new Sound(soundManager);
soundManager.Punchthree.attachSound("Punchthree");
soundManager.PunchSeven = new Sound(soundManager);
soundManager.PunchSeven.attachSound("PunchSeven");
soundManager.PunchNine = new Sound(soundManager);
soundManager.PunchNine.attachSound("PunchNine");
soundManager.PunchFour = new Sound(soundManager);
soundManager.PunchFour.attachSound("PunchFour");
soundManager.miss = new Sound(soundManager);
soundManager.miss.attachSound("miss");
soundManager.Sword = new Sound(soundManager);
soundManager.Sword.attachSound("Sword");
soundManager.knife = new Sound(soundManager);
soundManager.knife.attachSound("Knife");
soundManager.jackBlock = new Sound(soundManager);
soundManager.jackBlock.attachSound("jackBlock");
soundManager.jack_block_hit = new Sound(soundManager);
soundManager.jack_block_hit.attachSound("jack_block_hit");
soundManager.hydeRoar = new Sound(soundManager);
soundManager.hydeRoar.attachSound("hydeRoar");
soundManager.femaleScream = new Sound(soundManager);
soundManager.femaleScream.attachSound("femaleScream");
soundManager.gore = new Sound(soundManager);
soundManager.gore.attachSound("gore");
soundManager.gore2 = new Sound(soundManager);
soundManager.gore2.attachSound("gore2");
soundManager.whistle = new Sound(soundManager);
soundManager.whistle.attachSound("whistle");
soundManager.victoria = new Sound(soundManager);
soundManager.victoria.attachSound("victoria");
soundManager.watsonCharge = new Sound(soundManager);
soundManager.watsonCharge.attachSound("watsonCharge");
soundManager.intro2 = new Sound(soundManager);
soundManager.intro2.attachSound("intro2");
soundManager.loop2 = new Sound(soundManager);
soundManager.loop2.attachSound("loop2");
soundManager.trak = new Sound(soundManager);
soundManager.trak.attachSound("boss2");
soundManager.thunderLoop = new Sound(soundManager);
soundManager.thunderLoop.attachSound("thunderLoop");
soundManager.jackDies = new Sound(soundManager);
soundManager.jackDies.attachSound("jackDies");
soundManager.trimIntro = new Sound(soundManager);
soundManager.trimIntro.attachSound("trimIntroLoop");
soundManager.intro = new Sound(soundManager);
soundManager.intro.attachSound("bossIntro2");
soundManager.bossIntroFX = new Sound(soundManager);
soundManager.bossIntroFX.attachSound("bossIntroFX");
}
function playSound(arg) {
switch (arg) {
case "punch" :
var _local1 = Math.random();
if (_local1 < 0.2) {
soundManager.PunchTwo.start();
} else if (_local1 < 0.4) {
soundManager.Punchthree.start();
} else if (_local1 < 0.6) {
soundManager.PunchSeven.start();
} else if (_local1 < 0.8) {
soundManager.PunchFour.start();
} else {
soundManager.PunchNine.start();
}
break;
case "sword1" :
soundManager.knife.start();
break;
case "sword2" :
soundManager.Sword.start();
break;
case "jack_block_hit" :
soundManager.jack_block_hit.start();
break;
case "jackBlock" :
soundManager.jackBlock.start();
break;
case "miss" :
soundManager.miss.start();
break;
case "loop" :
trace("playing loop");
soundManager.loop2.start();
soundManager.loop2.onSoundComplete = function () {
playSound("loop");
};
break;
case "bossloop" :
soundManager.trak.stop();
soundManager.trak.start();
soundManager.trak.onSoundComplete = function () {
playSound("bossloop");
};
break;
case "hydeRoar" :
soundManager.hydeRoar.start();
break;
case "femaleScream" :
soundManager.femaleScream.start();
break;
case "gore" :
if (Math.random() > 0.3) {
soundManager.gore.start();
} else {
soundManager.gore2.start();
}
break;
case "policeAlert" :
soundManager.whistle.start(1);
break;
case "thunderLoop" :
soundManager.thunderLoop.stop();
soundManager.thunderLoop.start();
soundManager.thunderLoop.onSoundComplete = function () {
playSound("thunderLoop");
};
break;
case "jackDies" :
soundManager.jackDies.stop();
soundManager.introFX.stop();
soundManager.intro.stop();
soundManager.trak.stop();
soundManager.thunderLoop.stop();
soundManager.jackDies.start();
break;
case "trimIntro" :
soundManager.trimIntro.stop();
soundManager.trimIntro.start();
soundManager.trimIntro.onSoundComplete = function () {
playSound("trimIntro");
};
break;
case "victoria" :
soundManager.victoria.start();
break;
case "watsonCharge" :
soundManager.watsonCharge.start();
}
}
function bossIntro() {
soundManager.trak.stop();
soundManager.intro.stop();
soundManager.bossIntroFX.start();
soundManager.intro.start();
soundManager.intro.onSoundComplete = function () {
playSound("bossloop");
};
}
function playIntro() {
soundManager.trimIntro.stop();
soundManager.trak.stop();
soundManager.intro.stop();
soundManager.intro2.start();
soundManager.intro2.onSoundComplete = function () {
trace("intro finished");
playSound("loop");
};
}
_lockroot = true;
trace("found as");
var assetsLoaded;
var tar;
var jackStart;
var lvlListener;
var jckListener;
var astListener;
var runInterVal;
var hoesInLevel;
var hoeScore;
var score = 0;
var totalHoeL = 0;
var lastLevelScore;
var lastHoeScore;
var fadeingScreen;
var soundManager;
var path;
var levelMC;
var jack;
var assets;
var renderMC;
var healthMeter;
var ScoreBoard;
var StartScreen;
var jackIntface;
var renderer;
var roundCalculator;
var lastURL;
var loadTracker;
var l2l = (new com.geoffpell.math.geometry.localToLocalClass());
var assetURL = ["assets/assets.swf", "assets/person1.swf"];
var jackURL = "assets/jack.swf";
var lvlLoader = new MovieClipLoader();
var jckLoader = new MovieClipLoader();
var astLoader = new MovieClipLoader();
currentLevel = 1;
trace("making");
main(this, "content/level1.swf");
trace("starting jack");
stop();
Symbol 37 MovieClip [jackShadow_Gfx] Frame 1
stop();
Symbol 57 MovieClip Frame 1
onLoad = function () {
xst = _x;
yst = _y;
};
onEnterFrame = function () {
if (Math.random() >= 0.8) {
scaler = 0.5 - (Math.random() * 1);
alph = 1 - (Math.random() * 2);
}
if (Math.random() >= 0.8) {
scaler2 = 0.5 - (Math.random() * 1);
alph2 = 1 - (Math.random() * 2);
}
_xscale = (_xscale + scaler);
if (_xscale > 120) {
_xscale = 120;
} else if (_xscale < 80) {
_xscale = 80;
}
_yscale = (_yscale + scaler);
if (_yscale > 120) {
_yscale = 120;
} else if (_yscale < 80) {
_yscale = 80;
}
_alpha = (_alpha + alph);
if (_alpha > 90) {
_alpha = 90;
} else if (_alpha < 60) {
_alpha = 60;
}
if (Math.random() >= 0.998) {
gotoAndPlay (2);
}
};
stop();
Symbol 61 MovieClip [person_Gfx] Frame 1
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 11
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 19
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 31
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 38
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 45
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 55
stop();
Symbol 76 MovieClip [whore3_shadow_Gfx] Frame 64
stop();
Symbol 108 MovieClip [whore4_Gfx] Frame 10
gotoAndPlay (1);
Symbol 108 MovieClip [whore4_Gfx] Frame 19
gotoAndPlay(_parent.diedfrom);
Symbol 108 MovieClip [whore4_Gfx] Frame 30
gotoAndPlay ("floored1");
Symbol 108 MovieClip [whore4_Gfx] Frame 38
gotoAndPlay ("cheer");
Symbol 108 MovieClip [whore4_Gfx] Frame 45
gotoAndPlay ("floored2");
Symbol 108 MovieClip [whore4_Gfx] Frame 55
stop();
_parent.gotoAndPlay("die");
Symbol 108 MovieClip [whore4_Gfx] Frame 64
stop();
_parent.gotoAndPlay("die");
Symbol 108 MovieClip [whore4_Gfx] Frame 80
stop();
Symbol 109 MovieClip [whore4] Frame 1
#initclip 42
Object.registerClass("whore4", as.assets.whore4);
#endinitclip
stop();
Symbol 109 MovieClip [whore4] Frame 16
stop();
selfErase();
Symbol 131 MovieClip [whore3_Gfx] Frame 10
gotoAndPlay (1);
Symbol 131 MovieClip [whore3_Gfx] Frame 19
gotoAndPlay(_parent.diedfrom);
Symbol 131 MovieClip [whore3_Gfx] Frame 30
gotoAndPlay ("floored1");
Symbol 131 MovieClip [whore3_Gfx] Frame 37
gotoAndPlay ("floored1");
Symbol 131 MovieClip [whore3_Gfx] Frame 44
gotoAndPlay ("floored2");
Symbol 131 MovieClip [whore3_Gfx] Frame 54
stop();
_parent.gotoAndPlay("die");
Symbol 131 MovieClip [whore3_Gfx] Frame 63
stop();
_parent.gotoAndPlay("die");
Symbol 131 MovieClip [whore3_Gfx] Frame 64
play();
Symbol 131 MovieClip [whore3_Gfx] Frame 150
gotoAndPlay ("idle");
Symbol 132 MovieClip [whore3] Frame 1
#initclip 28
Object.registerClass("whore3", as.assets.person);
#endinitclip
stop();
Symbol 132 MovieClip [whore3] Frame 16
stop();
selfErase();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 11
stop();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 19
stop();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 31
stop();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 37
stop();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 44
stop();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 54
stop();
Symbol 139 MovieClip [whore2_shadow_Gfx] Frame 63
stop();
Symbol 173 MovieClip [whore2_Gfx] Frame 10
gotoAndPlay (1);
Symbol 173 MovieClip [whore2_Gfx] Frame 18
gotoAndPlay(_parent.diedfrom);
Symbol 173 MovieClip [whore2_Gfx] Frame 30
gotoAndPlay ("floored1");
Symbol 173 MovieClip [whore2_Gfx] Frame 36
gotoAndPlay ("floored1");
Symbol 173 MovieClip [whore2_Gfx] Frame 43
gotoAndPlay ("floored2");
Symbol 173 MovieClip [whore2_Gfx] Frame 53
stop();
_parent.gotoAndPlay("die");
Symbol 173 MovieClip [whore2_Gfx] Frame 62
stop();
_parent.gotoAndPlay("die");
Symbol 173 MovieClip [whore2_Gfx] Frame 63
play();
Symbol 173 MovieClip [whore2_Gfx] Frame 168
gotoAndPlay ("idle");
Symbol 174 MovieClip [whore2] Frame 1
#initclip 29
Object.registerClass("whore2", as.assets.person);
#endinitclip
stop();
Symbol 174 MovieClip [whore2] Frame 15
stop();
selfErase();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 11
stop();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 19
stop();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 31
stop();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 37
stop();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 44
stop();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 54
stop();
Symbol 181 MovieClip [whore1_shadow_Gfx] Frame 63
stop();
Symbol 201 MovieClip [whore1_Gfx] Frame 10
gotoAndPlay (1);
Symbol 201 MovieClip [whore1_Gfx] Frame 18
gotoAndPlay(_parent.diedfrom);
Symbol 201 MovieClip [whore1_Gfx] Frame 30
gotoAndPlay ("floored1");
Symbol 201 MovieClip [whore1_Gfx] Frame 36
gotoAndPlay ("floored1");
Symbol 201 MovieClip [whore1_Gfx] Frame 43
gotoAndPlay ("floored2");
Symbol 201 MovieClip [whore1_Gfx] Frame 53
stop();
_parent.gotoAndPlay("die");
Symbol 201 MovieClip [whore1_Gfx] Frame 62
stop();
_parent.gotoAndPlay("die");
Symbol 201 MovieClip [whore1_Gfx] Frame 63
play();
Symbol 201 MovieClip [whore1_Gfx] Frame 228
gotoAndPlay ("idle");
Symbol 202 MovieClip [whore1] Frame 1
#initclip 30
Object.registerClass("whore1", as.assets.person);
#endinitclip
stop();
Symbol 202 MovieClip [whore1] Frame 16
stop();
selfErase();
Symbol 213 MovieClip [man2] Frame 1
#initclip 31
Object.registerClass("man2", as.assets.policeman);
#endinitclip
Symbol 227 MovieClip [man1_Gfx] Frame 50
gotoAndPlay (1);
Symbol 227 MovieClip [man1_Gfx] Frame 58
_parent.swung();
Symbol 227 MovieClip [man1_Gfx] Frame 64
gotoAndPlay (1);
Symbol 227 MovieClip [man1_Gfx] Frame 98
stop();
_parent.gotoAndPlay("die");
Symbol 228 MovieClip [man1a] Frame 1
#initclip 32
Object.registerClass("man1a", as.assets.policeman);
#endinitclip
stop();
Symbol 228 MovieClip [man1a] Frame 2
play();
Symbol 228 MovieClip [man1a] Frame 4
gotoAndStop (1);
Symbol 228 MovieClip [man1a] Frame 5
play();
Symbol 228 MovieClip [man1a] Frame 16
stop();
selfErase();
Symbol 243 MovieClip [policeman_shadow_Gfx] Frame 1
stop();
Symbol 244 MovieClip [policeman1_shadow] Frame 1
stop();
Symbol 245 MovieClip [man1] Frame 1
#initclip 33
Object.registerClass("man1", as.assets.policeman);
#endinitclip
stop();
Symbol 245 MovieClip [man1] Frame 2
play();
Symbol 245 MovieClip [man1] Frame 4
gotoAndStop (1);
Symbol 245 MovieClip [man1] Frame 5
play();
Symbol 245 MovieClip [man1] Frame 16
stop();
selfErase();
Symbol 263 MovieClip [policeman_Gfx] Frame 48
gotoAndPlay (1);
Symbol 263 MovieClip [policeman_Gfx] Frame 58
_parent.swung();
Symbol 263 MovieClip [policeman_Gfx] Frame 63
gotoAndPlay (1);
Symbol 263 MovieClip [policeman_Gfx] Frame 72
stop();
Symbol 263 MovieClip [policeman_Gfx] Frame 96
stop();
_parent.gotoAndPlay("die");
Symbol 264 MovieClip [policeman1] Frame 1
#initclip 34
Object.registerClass("policeman1", as.assets.policeman);
#endinitclip
stop();
Symbol 264 MovieClip [policeman1] Frame 2
play();
Symbol 264 MovieClip [policeman1] Frame 4
gotoAndStop (1);
Symbol 264 MovieClip [policeman1] Frame 5
play();
Symbol 264 MovieClip [policeman1] Frame 16
stop();
selfErase();
Symbol 265 MovieClip [person1] Frame 1
#initclip 35
Object.registerClass("person1", as.assets.person);
#endinitclip
Symbol 277 MovieClip [blood_Gfx] Frame 1
stop();
Symbol 277 MovieClip [blood_Gfx] Frame 7
stop();
Symbol 304 MovieClip Frame 1
play();
Symbol 304 MovieClip Frame 19
gotoAndPlay (1);
Symbol 307 MovieClip [sherlock01_Gfx] Frame 19
gotoAndPlay (1);
Symbol 307 MovieClip [sherlock01_Gfx] Frame 23
_parent.swung();
Symbol 307 MovieClip [sherlock01_Gfx] Frame 24
gotoAndPlay (1);
Symbol 307 MovieClip [sherlock01_Gfx] Frame 198
gotoAndPlay (130);
Symbol 308 MovieClip [sherlock] Frame 1
#initclip 36
Object.registerClass("sherlock", as.assets.sherlock);
#endinitclip
stop();
Symbol 308 MovieClip [sherlock] Frame 2
gotoAndStop (1);
Symbol 308 MovieClip [sherlock] Frame 3
gotoAndStop (1);
Symbol 308 MovieClip [sherlock] Frame 4
play();
Symbol 308 MovieClip [sherlock] Frame 11
gotoAndStop (1);
Symbol 308 MovieClip [sherlock] Frame 57
stop();
Symbol 333 MovieClip [hydeHolder] Frame 1
play();
Symbol 333 MovieClip [hydeHolder] Frame 31
gotoAndPlay (1);
Symbol 333 MovieClip [hydeHolder] Frame 32
_parent.grabJack();
Symbol 333 MovieClip [hydeHolder] Frame 92
gotoAndPlay (1);
Symbol 333 MovieClip [hydeHolder] Frame 139
_parent.punchJack();
Symbol 333 MovieClip [hydeHolder] Frame 157
gotoAndPlay (1);
Symbol 333 MovieClip [hydeHolder] Frame 184
_parent.releaseSac();
Symbol 333 MovieClip [hydeHolder] Frame 191
gotoAndPlay (1);
Symbol 333 MovieClip [hydeHolder] Frame 242
stop();
Symbol 334 MovieClip [hyde] Frame 1
#initclip 37
Object.registerClass("hyde", as.assets.hyde);
#endinitclip
stop();
Symbol 334 MovieClip [hyde] Frame 2
gotoAndStop (1);
Symbol 334 MovieClip [hyde] Frame 3
gotoAndStop (1);
Symbol 334 MovieClip [hyde] Frame 4
play();
Symbol 334 MovieClip [hyde] Frame 11
gotoAndStop (1);
Symbol 334 MovieClip [hyde] Frame 67
stop();
Symbol 344 MovieClip [waston01_Gfx] Frame 1
play();
Symbol 344 MovieClip [waston01_Gfx] Frame 19
gotoAndStop (1);
Symbol 344 MovieClip [waston01_Gfx] Frame 35
gotoAndPlay (20);
Symbol 344 MovieClip [waston01_Gfx] Frame 109
stop();
_parent.gotoAndPlay("die");
Symbol 345 MovieClip [watson] Frame 1
#initclip 38
Object.registerClass("watson", as.assets.watson);
#endinitclip
stop();
Symbol 345 MovieClip [watson] Frame 2
gotoAndStop (1);
Symbol 345 MovieClip [watson] Frame 3
gotoAndStop (1);
Symbol 345 MovieClip [watson] Frame 4
play();
Symbol 345 MovieClip [watson] Frame 11
gotoAndStop (1);
Symbol 345 MovieClip [watson] Frame 67
stop();
Symbol 349 MovieClip [queen_Text_Gfx] Frame 137
stop();
Symbol 354 MovieClip [Hyde_Text_Gfx] Frame 137
stop();
Symbol 358 MovieClip [HandWat_Text_Gfx] Frame 137
stop();
Symbol 370 MovieClip [bloodCurtain] Frame 126
stop();
Symbol 370 MovieClip [bloodCurtain] Frame 195
stop();
Symbol 407 MovieClip [EndLevel3Screen] Frame 1
function playAgain() {
}
stop();
b1.onRelease = function () {
_root.swHighScoreObject.showTab = "submit";
docount = true;
loadMovieNum (_root.HSHubURL, 2);
};
b2.onRelease = function () {
_root.swHighScoreObject.showTab = "view";
docount = true;
loadMovieNum (_root.HSHubURL, 2);
};
System.security.allowDomain("shockwave.com", "intranet.shockwave.com", "gameblast.shockwave.com", "www.shockwave.com", "dev.shockwave.com", "stage.shockwave.com");
_level0.swHighScoreObject = new Object();
_level0.swHighScoreObject.showTab = "view";
_level0.swHighScoreObject.gameId = "jacktheripper";
_level0.swHighScoreObject.gameTitle = "Jack the Ripper";
_level0.swHighScoreObject.screenWidth = 580;
_level0.swHighScoreObject.screenHeight = 350;
_level0.swHighScoreObject.scoreDescriptor = "points";
_level0.swHighScoreObject.numPlayers = 1;
_level0.swHighScoreObject.player1Score = total;
_level0.swHighScoreObject.player2Score = 0;
_level0.swHighScoreObject.player3Score = 0;
_level0.swHighScoreObject.player4Score = 0;
_level0.HSHubURL = "http://www.shockwave.com/content/highscores/scorez-2002.swf";
Instance of Symbol 372 MovieClip "b2" in Symbol 407 MovieClip [EndLevel3Screen] Frame 1
onClipEvent (load) {
docount = false;
}
onClipEvent (enterFrame) {
if (docount) {
trycount++;
if ((_level2.getBytesTotal() == -1) && (trycount > 60)) {
docount = false;
trycount = 0;
}
}
}
Instance of Symbol 372 MovieClip "b1" in Symbol 407 MovieClip [EndLevel3Screen] Frame 1
onClipEvent (load) {
docount = false;
}
onClipEvent (enterFrame) {
if (docount) {
trycount++;
if ((_level2.getBytesTotal() == -1) && (trycount > 60)) {
docount = false;
trycount = 0;
}
}
}
Symbol 408 MovieClip [endLevel3Curtain] Frame 10
stop();
Symbol 408 MovieClip [endLevel3Curtain] Frame 98
stop();
me.fadeScreenOut_Finished();
Symbol 420 MovieClip [endLevel2Curtain] Frame 10
stop();
Symbol 420 MovieClip [endLevel2Curtain] Frame 98
stop();
me.fadeScreenOut_Finished();
Symbol 426 MovieClip [endLevel1Curtain] Frame 10
stop();
Symbol 426 MovieClip [endLevel1Curtain] Frame 98
stop();
me.fadeScreenOut_Finished();
Symbol 429 MovieClip Frame 1
stop();
Symbol 461 MovieClip Frame 1
stop();
b.onRelease = function () {
gotoAndStop (2);
};
c.onRelease = function () {
gotoAndStop (3);
};
Symbol 461 MovieClip Frame 2
b.onRelease = function () {
gotoAndStop (1);
};
Symbol 461 MovieClip Frame 3
b.onRelease = function () {
gotoAndStop (1);
};
Symbol 468 MovieClip [StartScreen] Frame 1
stop();
Symbol 468 MovieClip [StartScreen] Frame 14
stop();
me.reLoadLevel(this.me.lastURL);
Symbol 468 MovieClip [StartScreen] Frame 102
stop();
me.fadeScreenOut_Finished();
Symbol 471 MovieClip [light] Frame 1
#initclip 39
Object.registerClass("light", as.assets.light);
#endinitclip
Symbol 498 MovieClip [queenVic] Frame 1
play();
Symbol 498 MovieClip [queenVic] Frame 24
gotoAndPlay (1);
Symbol 498 MovieClip [queenVic] Frame 42
_parent.punchJack();
Symbol 498 MovieClip [queenVic] Frame 50
gotoAndPlay (1);
Symbol 498 MovieClip [queenVic] Frame 52
_parent.grabJack();
Symbol 498 MovieClip [queenVic] Frame 72
gotoAndPlay (1);
Symbol 498 MovieClip [queenVic] Frame 89
stop();
Symbol 499 MovieClip [QueenVicMC] Frame 1
#initclip 40
Object.registerClass("QueenVicMC", as.assets.queenvic);
#endinitclip
stop();
Symbol 499 MovieClip [QueenVicMC] Frame 2
play();
Symbol 499 MovieClip [QueenVicMC] Frame 6
gotoAndStop (1);
Symbol 513 MovieClip [orphan] Frame 15
gotoAndPlay (1);
Symbol 513 MovieClip [orphan] Frame 21
stop();
Symbol 525 MovieClip [hotAirBallon] Frame 60
stop();
Symbol 525 MovieClip [hotAirBallon] Frame 93
_parent.releaseSac();
Symbol 525 MovieClip [hotAirBallon] Frame 130
gotoAndStop ("float");
Symbol 526 MovieClip [BallonMC] Frame 1
#initclip 41
Object.registerClass("BallonMC", as.assets.ballon);
#endinitclip
Symbol 555 MovieClip [__Packages.com.geoffpell.math.geometry.vector.gVector2DInterface] Frame 0
class com.geoffpell.math.geometry.vector.gVector2DInterface
{
function gVector2DInterface () {
}
function makeVector(x, y) {
var _local1 = new com.geoffpell.math.geometry.vector.gVector2D(x, y);
return(_local1);
}
function translateFromCartesian(iThrust, iTheta) {
var _local3 = iThrust * Math.sin(iTheta * (Math.PI/180));
var _local2 = iThrust * Math.cos(iTheta * (Math.PI/180));
var _local1 = new com.geoffpell.math.geometry.vector.gVector2D(_local3, _local2);
return(_local1);
}
function getCartesianAngle(vec1, vec2) {
if (arguments.length == 1) {
var _local4 = Math.acos(((vec1.getX() * vec2.getX()) + (vec1.getY * vec2.getY())) / (Math.sqrt(Math.pow(vec1.getX(), 2) + Math.pow(vec1.getY(), 2)) * Math.sqrt(Math.pow(vec2.getX(), 2) + Math.pow(vec2.getY(), 2))));
} else {
vec2 = new com.geoffpell.math.geometry.vector.gVector2D(0, 0);
var _local4 = Math.acos(((vec1.getX() * vec2.getX()) + (vec1.getY * vec2.getY())) / (Math.sqrt(Math.pow(vec1.getX(), 2) + Math.pow(vec1.getY(), 2)) * Math.sqrt(Math.pow(vec2.getX(), 2) + Math.pow(vec2.getY(), 2))));
}
return(_local4);
}
function add2Vectors(vec1, vec2) {
var _local3 = vec1.getX() + vec2.getX();
var _local2 = vec1.getY() + vec2.getY();
var _local1 = new com.geoffpell.math.geometry.vector.gVector2D(_local3, _local2);
return(_local1);
}
function sub2Vectors(vec1, vec2) {
var _local3 = vec1.getX() - vec2.getX();
var _local2 = vec1.getY() - vec2.getY();
var _local1 = new com.geoffpell.math.geometry.vector.gVector2D(_local3, _local2);
return(_local1);
}
function multi2Vectors(vec1, vec2) {
var _local3 = vec1.getX() * vec2.getX();
var _local2 = vec1.getY() * vec2.getY();
var _local1 = new com.geoffpell.math.geometry.vector.gVector2D(_local3, _local2);
return(_local1);
}
function div2Vectors(vec1, vec2) {
var _local3 = vec1.getX() / vec2.getX();
var _local2 = vec1.getY() / vec2.getY();
var _local1 = new com.geoffpell.math.geometry.vector.gVector2D(_local3, _local2);
return(_local1);
}
}
Symbol 556 MovieClip [__Packages.com.geoffpell.math.geometry.vector.gVector2D] Frame 0
class com.geoffpell.math.geometry.vector.gVector2D
{
var xVec, yVec;
function gVector2D (startX, startY) {
xVec = startX;
yVec = startY;
}
function setX(X) {
xVec = X;
}
function setY(Y) {
yVec = Y;
}
function getX() {
return(xVec);
}
function getY() {
return(yVec);
}
function mag() {
return(Math.sqrt((xVec * xVec) + (yVec * yVec)));
}
function mag2() {
return((xVec * xVec) + (yVec * yVec));
}
function unit() {
var _local2 = mag();
if (_local2 > 1) {
var _local4 = xVec * (1 / _local2);
var _local3 = yVec * (1 / _local2);
}
var _local5 = new com.geoffpell.math.geometry.vector.gVector2D(_local4, _local3);
return(_local5);
}
function scaleTo(scale) {
var _local2 = mag();
var _local4 = xVec * (scale / _local2);
var _local3 = yVec * (scale / _local2);
var _local5 = new com.geoffpell.math.geometry.vector.gVector2D(_local4, _local3);
return(_local5);
}
function addVec(vec) {
xVec = xVec + vec.getX();
yVec = yVec + vec.getY();
}
function subVec(vec) {
xVec = xVec - vec.getX();
yVec = yVec - vec.getY();
}
function multiVec(vec) {
xVec = xVec * vec.getX();
yVec = yVec * vec.getY();
}
function divVec(vec) {
xVec = xVec / vec.getX();
yVec = yVec / vec.getY();
}
}
Symbol 557 MovieClip [__Packages.as.assets.person] Frame 0
class as.assets.person extends MovieClip
{
var offset, l2l, vector, pt, _x, _y, scale, id, me, jack, attitude, shadow, shadow2, startX, startY, yoffset, xoffset, dir, inner, screamCounter, _currentframe, dead, diedfrom, targetX, targetY, _xscale, _yscale;
function person () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm, stAttitude) {
me = itm;
jack = me.jack;
attitude = stAttitude;
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local3 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local4 = _local2.walkSpeed * (scale / 60);
vector.setX(0);
vector.setY(0);
startX = pt.getX();
startY = pt.getY();
if (Math.random() > 0.5) {
yoffset = 2 + (Math.random() * 12);
} else {
yoffset = -2 - (Math.random() * 12);
}
xoffset = 60;
dir = 1;
if (attitude != 5) {
inner.gotoAndPlay("idle");
}
screamCounter = 10;
}
function watchForRemoval() {
if (pt.getX() < -40) {
selfErase();
}
if (pt.getX() > 900) {
selfErase();
}
}
function harm(obj, style) {
if ((_currentframe == 1) && (dead != true)) {
dead = true;
inner.gotoAndPlay("die_part2");
me.conductor.playSound("gore");
switch (obj.stabStyle) {
case "gutted" :
diedfrom = "gutted";
var _local3 = {x:30, y:10};
break;
case "stab" :
diedfrom = "stab";
_local3 = {x:30, y:-10};
break;
case "decap" :
diedfrom = "decap";
_local3 = {x:30, y:10};
}
halt();
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, true, diedfrom);
} else {
me.makeBloodFountain(this, 0, 0, 1, true, diedfrom);
}
me.conductor.updateScore("hoe");
}
}
function yourGoingToDie(by) {
if (dead != true) {
diedfrom = by;
inner.gotoAndStop("die");
}
}
function ai() {
if (!dead) {
switch (attitude) {
case 1 :
if (getXDistanceToJack(this, 0) < 230) {
if (Math.random() > 0.998) {
attitude = 2;
targetX = jack.pt.getX() + 100;
targetY = jack.pt.getY();
inner.gotoAndPlay(1);
} else if (Math.random() > 0.97) {
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
}
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 2 :
vector.setX((targetX - pt.getX()) / 20);
if (vector.getX() > 2) {
vector.setX(2);
}
if (vector.getX() < -2) {
vector.setX(-2);
}
vector.setY((targetY - pt.getY()) / 40);
if (vector.getY() > 1.4) {
vector.setY(1.4);
}
if (vector.getY() < -1.4) {
vector.setY(-1.4);
}
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
if (Math.random() > 0.995) {
attitude = 3;
}
if (Math.random() > 0.9995) {
attitude = 4;
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 3 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 2.3) {
vector.setX(2.3);
}
if (vector.getX() < -2.3) {
vector.setX(-2.3);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
if (Math.random() > 0.95) {
targetX = jack.pt.getX() + 100;
targetY = jack.pt.getY();
attitude = 2;
}
if (Math.random() > 0.9995) {
attitude = 4;
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 4 :
vector.setX((pt.getX() - startX) / 20);
if (vector.getX() > 2.3) {
vector.setX(2.3);
}
if (vector.getX() < -2.3) {
vector.setX(-2.3);
}
vector.setY((startY - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
if (getDistanceToStart(this, 0) < 4) {
halt();
attitude = 1;
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 5 :
vector.setX(-2);
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 6 :
if (screamCounter == 10) {
me.conductor.playSound("femaleScream");
}
screamCounter--;
if (screamCounter > 0) {
inner.gotoAndStop("die");
} else if ((screamCounter > -2) && (!dead)) {
inner.gotoAndPlay(1);
if (jack.pt.getX() > pt.getX()) {
dir = 1;
vector.setX(-3.2);
} else {
dir = -1;
vector.setX(3.2);
}
vector.setY(0);
}
break;
case 7 :
break;
default :
attitude = 1;
}
}
}
function selfErase() {
me.destroyByID(id);
}
function run() {
ai();
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!dead) {
_xscale = scale * dir;
_yscale = scale;
shadow.inner._xscale = scale * dir;
shadow2.inner._xscale = scale * dir;
}
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getDistanceToStart(obj, offset) {
var _local3 = l2l.localToLocal(obj, _root);
var _local5 = startX - _local3.x;
var _local4 = startY - _local3.y;
return(Math.sqrt((_local5 * _local5) - ((_local4 * _local4) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 558 MovieClip [__Packages.com.geoffpell.math.geometry.vector.gPoint2D] Frame 0
class com.geoffpell.math.geometry.vector.gPoint2D
{
function gPoint2D (startX, startY) {
x = startX;
y = startY;
}
function getX() {
return(x);
}
function getY() {
return(y);
}
function setX(iX) {
x = iX;
}
function setY(iY) {
y = iY;
}
function moveByVec(vec) {
x = x + vec.getX();
y = y + vec.getY();
}
function getCartesianAngle(p) {
var _local3 = Math.acos(((p.getX() * getX()) + (p.getY() * getY())) / (Math.sqrt(Math.pow(p.getX(), 2) + Math.pow(p.getY(), 2)) * Math.sqrt(Math.pow(getX(), 2) + Math.pow(getY(), 2))));
return(_local3);
}
var x = 0;
var y = 0;
}
Symbol 559 MovieClip [__Packages.com.geoffpell.math.geometry.localToLocalClass] Frame 0
class com.geoffpell.math.geometry.localToLocalClass
{
function localToLocalClass () {
}
function localToLocal(from, to) {
var _local1 = {x:0, y:0};
from.localToGlobal(_local1);
to.globalToLocal(_local1);
return(_local1);
}
}
Symbol 560 MovieClip [__Packages.as.assets.policeman] Frame 0
class as.assets.policeman extends MovieClip
{
var offset, l2l, vector, pt, alert, health, timer, hitTimer, harmVec, _x, _y, dead, contactMade, jack, dir, scale, id, me, shadow, shadow2, attitude, man1, yoffset, xoffset, strikeDistance, approchXSpeed, retreatXSpeed, _currentframe, gotoAndPlay, diying, inner, jackIsFacingMe, hitting, spent, _xscale, _yscale;
function policeman () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
alert = false;
health = 150;
timer = null;
hitTimer = 0;
harmVec = 0;
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
if (alert && (!dead)) {
if (contactMade) {
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if ((vector.getX() < 0.5) && (vector.getX() > -0.5)) {
contactMade = true;
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
trace("my point on reposition: " + pt.getX());
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm) {
me = itm;
jack = me.jack;
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local4 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local3 = _local2.walkSpeed * (scale / 60);
vector.setX(_local3);
vector.setY(0);
attitude = 1;
if (!man1) {
if (Math.random() > 0.5) {
yoffset = 2 + (Math.random() * 12);
} else {
yoffset = -2 - (Math.random() * 12);
}
if (Math.random() > 0.435) {
xoffset = 70;
} else {
xoffset = -70;
}
strikeDistance = 98;
approchXSpeed = 4.3;
retreatXSpeed = 3.6;
health = 150;
} else {
if (Math.random() > 0.5) {
yoffset = 2 + (Math.random() * 12);
} else {
yoffset = -2 - (Math.random() * 12);
}
if (Math.random() > 0.435) {
xoffset = 50;
} else {
xoffset = -50;
}
strikeDistance = 80;
approchXSpeed = 3.6;
retreatXSpeed = 3.6;
health = 70;
}
}
function setMan1() {
man1 = true;
}
function watchForRemoval() {
if ((pt.getX() < -30) && (alert != true)) {
selfErase();
}
}
function harm(obj) {
if (((_currentframe == 1) && (dead != true)) && (jack.spent != true)) {
health = health - obj.damageInflicted;
halt();
if (health > 0) {
(gotoAndPlay("harm"));// not popped
if (obj.pt.getX() > pt.getX()) {
harmVec = -4;
me.makeBloodFountain(this, 0, 0, -1, false);
} else {
harmVec = 4;
me.makeBloodFountain(this, 0, 0, 1, false);
}
me.conductor.updateScore(15);
} else {
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, true);
} else {
me.makeBloodFountain(this, 0, 0, 1, true);
}
me.conductor.playSound("gore");
diying = true;
dead = true;
harmVec = 0;
if (man1) {
inner.gotoAndPlay("stun");
me.conductor.updateScore(100);
} else {
inner.gotoAndPlay("fall");
me.conductor.updateScore(300);
}
}
}
}
function aquireTarget() {
if (((diying != true) && (!jack.dead)) && (jack.fallTimer <= 0)) {
if (alert) {
if (((jack.dir == 1) && (dir == 1)) || ((jack.dir == -1) && (dir == -1))) {
jackIsFacingMe = true;
var _local3 = 0.78;
} else {
jackIsFacingMe = false;
var _local3 = 0.994;
}
if ((timer <= 0) && ((Math.random() > _local3) || (attitude == 2))) {
timer = 100;
if (attitude == 1) {
attitude = 2;
} else {
attitude = 1;
}
}
timer--;
switch (attitude) {
case 1 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 15);
if (vector.getX() > approchXSpeed) {
vector.setX(approchXSpeed);
}
if (vector.getX() < (-approchXSpeed)) {
vector.setX(-approchXSpeed);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
break;
case 2 :
vector.setX(((jack.pt.getX() + (xoffset * 2.4)) - pt.getX()) / 15);
if (vector.getX() > retreatXSpeed) {
vector.setX(retreatXSpeed);
}
if (vector.getX() < (-retreatXSpeed)) {
vector.setX(-retreatXSpeed);
}
vector.setY(((jack.pt.getY() + yoffset) - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() >= -2) {
break;
}
vector.setY(-2);
}
hitTimer--;
if ((getYSqDistanceToJack(this, 0) < 4) && (getXDistanceToJack(this, 0) < strikeDistance)) {
if (hitTimer < 0) {
inner.gotoAndPlay("hit");
hitting = true;
spent = false;
hitTimer = 50;
} else if (hasTrunchonHitJack() && (spent == false)) {
me.conductor.playSound("punch");
jack.harm(this);
spent = true;
}
}
} else if (man1) {
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 150)) {
alert = true;
}
} else if (_root.currentLevel == 1) {
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
alert = true;
if (!alerted) {
me.conductor.playSound("policeAlert");
alerted = true;
contactMade = true;
}
}
} else if (getXDistanceToJack(this, 0) < 200) {
alert = true;
if (!alerted) {
me.conductor.playSound("policeAlert");
alerted = true;
contactMade = true;
}
}
} else {
halt();
}
}
function swung() {
if (spent == false) {
me.conductor.playSound("miss");
}
}
function hasTrunchonHitJack() {
if (((jack.tint.inner.hitTest(inner.knifeBox) && (inner._currentframe > 54)) && (inner._currentframe < 59)) && (getYSqDistanceToJack(this, 0) < 5)) {
return(true);
}
return(false);
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function selfErase() {
me.destroyByID(id);
}
function run() {
aquireTarget();
harmVec = harmVec * 0.8;
vector.setX(vector.getX() + harmVec);
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!dead) {
_xscale = scale * dir;
_yscale = scale;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
}
var alerted = false;
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 561 MovieClip [__Packages.as.assets.sherlock] Frame 0
class as.assets.sherlock extends MovieClip
{
var offset, l2l, vector, pt, alert, health, timer, hitTimer, harmVec, spent, inner, attitude, xoffset, _x, _y, contactMade, jack, dir, scale, id, me, shadow, shadow2, yoffset, _currentframe, diying, gotoAndPlay, jackIsFacingMe, hitting, _xscale, _yscale;
function sherlock () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
alert = true;
health = 230;
timer = null;
hitTimer = 0;
harmVec = 0;
spent = false;
inner.gotoAndPlay(1);
attitude = 1;
xoffset = 32;
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
if (alert && (attitude != 3)) {
if (contactMade) {
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if ((vector.getX() < 0.5) && (vector.getX() > -0.5)) {
contactMade = true;
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm) {
me = itm;
jack = me.jack;
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local4 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local3 = _local2.walkSpeed * (scale / 60);
vector.setX(_local3);
vector.setY(0);
attitude = 2;
if (Math.random() > 0.5) {
yoffset = 5 + (Math.random() * 3);
} else {
yoffset = -5 - (Math.random() * 3);
}
xoffset = 60;
}
function watchForRemoval() {
if ((pt.getX() < 0) && (alert != true)) {
selfErase();
}
}
function harm(obj) {
if ((_currentframe < 4) && (!diying)) {
health = health - obj.damageInflicted;
halt();
if (health > 0) {
(gotoAndPlay("harm"));// not popped
if (obj.pt.getX() > pt.getX()) {
harmVec = -2;
me.makeBloodFountain(this, 0, 0, -1, false);
} else {
harmVec = 2;
me.makeBloodFountain(this, 0, 0, 1, false);
}
me.conductor.updateScore(15);
} else {
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, null);
} else {
me.makeBloodFountain(this, 0, 0, 1, null);
}
diying = true;
harmVec = 0;
inner.gotoAndPlay("fall");
me.conductor.updateScore(600);
}
}
}
function aquireTarget() {
if (diying != true) {
if (alert) {
if (((jack.dir == 1) && (dir == 1)) || ((jack.dir == -1) && (dir == -1))) {
jackIsFacingMe = true;
var _local2 = 0.8;
} else {
jackIsFacingMe = false;
var _local2 = 0.995;
}
if ((timer <= 0) && ((Math.random() > _local2) || (attitude == 2))) {
timer = 100;
if (attitude == 1) {
attitude = 2;
} else {
attitude = 1;
}
}
timer--;
switch (attitude) {
case 1 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 3.5) {
vector.setX(3.5);
}
if (vector.getX() < -3.5) {
vector.setX(-3.5);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
break;
case 2 :
vector.setX(((jack.pt.getX() + (xoffset * 4)) - pt.getX()) / 20);
if (vector.getX() > 4.3) {
vector.setX(4.3);
}
if (vector.getX() < -4.3) {
vector.setX(-4.3);
}
vector.setY(((jack.pt.getY() + yoffset) - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() >= -2) {
break;
}
vector.setY(-2);
}
hitTimer--;
if ((getYSqDistanceToJack(this, 0) < 4) && (getXDistanceToJack(this, 0) < 76)) {
if (hitTimer < 0) {
inner.gotoAndPlay("hit");
hitting = true;
spent = false;
hitTimer = 20;
} else if (hasTrunchonHitJack() && (!spent)) {
me.conductor.playSound("punch");
jack.harm(this);
spent = true;
}
}
} else if ((getYSqDistanceToJack(this, 0) < 24) && (getXDistanceToJack(this, 0) < 150)) {
alert = true;
}
}
}
function swung() {
if (spent == false) {
me.conductor.playSound("miss");
}
}
function hasTrunchonHitJack() {
if (jack.tint.inner.hitTest(inner.knifeBox)) {
return(true);
}
return(false);
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function selfErase() {
me.destroyByID(id);
}
function run() {
aquireTarget();
harmVec = harmVec * 0.8;
vector.setX(vector.getX() + harmVec);
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!diying) {
_xscale = scale * dir;
_yscale = scale;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
}
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 562 MovieClip [__Packages.as.assets.hyde] Frame 0
class as.assets.hyde extends MovieClip
{
var offset, l2l, vector, pt, alert, health, timer, hitTimer, harmVec, spent, inner, attitude, xoffset, _x, _y, contactMade, jack, dir, scale, id, me, shadow, shadow2, yoffset, _currentframe, diying, gotoAndPlay, targetLadder, activeSac, sac, _xscale, _yscale;
function hyde () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
alert = true;
health = 510;
timer = null;
hitTimer = 0;
harmVec = 0;
spent = false;
inner.gotoAndPlay(1);
attitude = 1;
xoffset = 60;
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
if (alert && (attitude != 3)) {
if (contactMade) {
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if ((vector.getX() < 0.5) && (vector.getX() > -0.5)) {
contactMade = true;
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm) {
me = itm;
jack = me.jack;
setUp();
me.conductor.playSound("hydeRoar");
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local4 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local3 = _local2.walkSpeed * (scale / 60);
vector.setX(_local3);
vector.setY(0);
attitude = 2;
if (Math.random() > 0.5) {
yoffset = 5 + (Math.random() * 3);
} else {
yoffset = -5 - (Math.random() * 3);
}
xoffset = 70;
}
function watchForRemoval() {
if ((pt.getX() < 0) && (alert != true)) {
selfErase();
}
}
function harm(obj) {
if ((_currentframe < 4) && (!diying)) {
health = health - obj.damageInflicted;
halt();
if (health > 0) {
(gotoAndPlay("harm"));// not popped
if (obj.pt.getX() > pt.getX()) {
harmVec = -2.4;
me.makeBloodFountain(this, 0, 0, -1, false);
} else {
harmVec = 2.4;
me.makeBloodFountain(this, 0, 0, 1, false);
}
me.conductor.updateScore(40);
} else {
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, null);
me.makeBloodFountain(this, 0, 0, -1, null);
} else {
me.makeBloodFountain(this, 0, 0, 1, null);
me.makeBloodFountain(this, 0, 0, 1, null);
}
me.conductor.updateScore(100);
diying = true;
harmVec = 0;
inner.gotoAndPlay("fall");
}
}
}
function aquireTarget() {
if (diying != true) {
if (alert) {
if ((timer <= 0) && (Math.random() > 0.8)) {
if ((attitude == 3) || (attitude == 10)) {
if (Math.random() > 0.4) {
attitude = 2;
inner.gotoAndPlay(1);
} else {
attitude = 1;
}
} else if (attitude == 2) {
spent = false;
if (Math.random() < 0.22) {
attitude = 10;
me.conductor.playSound("hydeRoar");
} else if (Math.random() < 0.55) {
attitude = 3;
me.conductor.playSound("hydeRoar");
} else if (attitude != 5) {
attitude = 5;
if (Math.random() > 0.5) {
targetLadder = 160;
} else {
targetLadder = 500;
}
}
} else if ((attitude == 1) || (attitude == null)) {
inner.gotoAndPlay(1);
if (Math.random() > 0.4) {
attitude = 2;
}
}
timer = 70;
}
timer--;
trace("attitude: " + attitude);
switch (attitude) {
case 1 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 4.3) {
vector.setX(4.3);
}
if (vector.getX() < -4.3) {
vector.setX(-4.3);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
if ((getXDistanceToJack(this, xoffset) < 88) && (getYSqDistanceToJack(this, 0) < 12)) {
inner.gotoAndPlay("hit");
attitude = 4;
}
break;
case 2 :
vector.setX(((jack.pt.getX() + (xoffset * 4)) - pt.getX()) / 20);
if (vector.getX() > 5.3) {
vector.setX(5.3);
}
if (vector.getX() < -5.3) {
vector.setX(-5.3);
}
vector.setY(((jack.pt.getY() + yoffset) - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
break;
case 3 :
vector.setX(((jack.pt.getX() + ((-xoffset) * 6)) - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 0.4) {
vector.setY(0.4);
}
if (vector.getY() < -0.4) {
vector.setY(-0.4);
}
if ((getXDistanceToJack(this, xoffset * 3) < 28) && (getYSqDistanceToJack(this, 0) < 10)) {
attitude = 4;
inner.gotoAndPlay("throw");
jack.harm(this, "hyde");
xoffset = -xoffset;
}
if (getXDistanceToJack(this, (-xoffset) * 6) < 8) {
}
break;
case 10 :
vector.setX(((jack.pt.getX() + ((-xoffset) * 6)) - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 0.4) {
vector.setY(0.4);
}
if (vector.getY() < -0.4) {
vector.setY(-0.4);
}
if ((getXDistanceToJack(this, 0) < 88) && (getYSqDistanceToJack(this, 0) < 15)) {
inner.gotoAndPlay("hit");
attitude = 4;
}
break;
case 4 :
halt();
if (inner._currentframe < 30) {
attitude = 1;
}
break;
case 5 :
vector.setX((targetLadder - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((290 - pt.getY()) / 40);
if (vector.getY() > 1.4) {
vector.setY(1.4);
}
if (vector.getY() < -1.4) {
vector.setY(-1.4);
}
var _local8 = pt.getX();
var _local7 = pt.getY();
var _local9 = _local8 - targetLadder;
var _local4 = _local7 - 290;
if ((Math.sqrt(_local9 * _local9) < 8) && (Math.sqrt(_local4 * _local4) < 5)) {
attitude = 6;
}
break;
case 6 :
vector.setX(((targetLadder - 20) - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((130 - pt.getY()) / 40);
if (vector.getY() > 2.4) {
vector.setY(2.4);
}
if (vector.getY() < -2.4) {
vector.setY(-2.4);
}
_local8 = pt.getX();
_local7 = pt.getY();
_local9 = _local8 - (targetLadder - 20);
_local4 = _local7 - 130;
if (Math.sqrt(_local4 * _local4) < 10) {
attitude = 7;
activeSac = false;
inner.gotoAndPlay("throwSac");
var _local3 = l2l.localToLocal(inner.sac, _root);
sac = me.sacForHyde();
sac.timmer = 60;
sac.pt = new com.geoffpell.math.geometry.vector.gPoint2D(_local3.x, _local3.y);
sac.grav = 0;
var _local5 = (getXVectorToJack(inner.sac, 0) + jack.vector.getX()) * 1.15;
var _local6 = getYVectorToJack(inner.sac, 0) - 50;
sac.vector = new com.geoffpell.math.geometry.vector.gVector2D(_local5 / 18, _local6 / 25);
sac.ground = jack.pt.getY();
sac._x = _local3.x;
sac._y = _local3.y;
halt();
}
break;
case 7 :
var _local3 = l2l.localToLocal(inner.sac, _root);
sac.pt = new com.geoffpell.math.geometry.vector.gPoint2D(_local3.x, _local3.y);
sac._x = _local3.x;
sac._y = _local3.y;
break;
case 8 :
vector.setX(((targetLadder - 20) - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((310 - pt.getY()) / 40);
if (vector.getY() > 2.4) {
vector.setY(2.4);
}
if (vector.getY() < -2.4) {
vector.setY(-2.4);
}
_local8 = pt.getX();
_local7 = pt.getY();
_local9 = _local8 - (targetLadder - 20);
_local4 = _local7 - 280;
if (Math.sqrt(_local4 * _local4) >= 8) {
break;
}
attitude = 1;
}
hitTimer--;
if (hitTimer < -10) {
hitTimer = -10;
}
if ((getYSqDistanceToJack(this, 0) < 9) && (getXDistanceToJack(this, 0) < 68)) {
if (hasTrunchonHitJack()) {
spent = true;
}
}
} else if ((getYSqDistanceToJack(this, 0) < 24) && (getXDistanceToJack(this, 0) < 150)) {
alert = true;
}
}
if (activeSac) {
sac.pt.moveByVec(sac.vector);
}
}
function grabJack() {
trace("grabbed jack");
jack.hydeGrab();
}
function punchJack() {
if ((getXDistanceToJack(this, 0) < 98) && (getYSqDistanceToJack(this, 0) < 12)) {
me.conductor.playSound("punch");
jack.harm(this, "hardpunch");
xoffset = -xoffset;
}
}
function releaseSac() {
me.conductor.playSound("throw");
activeSac = true;
attitude = 8;
}
function hasTrunchonHitJack() {
if (jack.tint.inner.hitTest(inner.knifeBox)) {
return(true);
}
return(false);
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function selfErase() {
me.destroyByID(id);
}
function run() {
aquireTarget();
harmVec = harmVec * 0.8;
vector.setX(vector.getX() + harmVec);
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if ((!diying) && (attitude < 6)) {
_xscale = (scale * dir) * 1.2;
_yscale = scale * 1.2;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
if (activeSac) {
sac.timmer--;
sac.grav = sac.grav + 0.8;
sac.pt.setY(sac.pt.getY() + sac.grav);
if (sac.pt.getY() > sac.ground) {
sac.pt.setY(sac.ground);
sac.vector.setX(0);
sac.vector.setY(0);
sac.dead = true;
}
sac._x = sac.pt.getX();
sac._y = sac.pt.getY();
if (sac.hitTest(jack) && (!sac.dead)) {
jack.harm(this, "hardpunch");
me.conductor.playSound("punch");
sac.dead = true;
}
if (sac.timmer <= 0) {
sac.removeMovieClip();
}
}
}
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 563 MovieClip [__Packages.as.assets.watson] Frame 0
class as.assets.watson extends MovieClip
{
var offset, l2l, vector, pt, alert, health, timer, hitTimer, harmVec, spent, inner, attitude, xoffset, _x, _y, contactMade, jack, dir, scale, id, me, shadow, shadow2, yoffset, _currentframe, diying, gotoAndPlay, jackIsFacingMe, soundspent, _xscale, _yscale;
function watson () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
alert = true;
health = 100;
timer = null;
hitTimer = 0;
harmVec = 0;
spent = false;
inner.gotoAndPlay(1);
attitude = 1;
xoffset = 60;
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
if (alert && (attitude != 3)) {
if (contactMade) {
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if ((vector.getX() < 0.5) && (vector.getX() > -0.5)) {
contactMade = true;
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm) {
me = itm;
jack = me.jack;
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local4 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local3 = _local2.walkSpeed * (scale / 60);
vector.setX(_local3);
vector.setY(0);
attitude = 2;
if (Math.random() > 0.5) {
yoffset = 5 + (Math.random() * 3);
} else {
yoffset = -5 - (Math.random() * 3);
}
xoffset = -60;
}
function watchForRemoval() {
if ((pt.getX() < 0) && (alert != true)) {
selfErase();
}
}
function harm(obj) {
if ((_currentframe < 4) && (!diying)) {
health = health - obj.damageInflicted;
halt();
if (health > 0) {
(gotoAndPlay("harm"));// not popped
if (obj.pt.getX() > pt.getX()) {
harmVec = -4;
me.makeBloodFountain(this, 0, 0, -1, false);
} else {
harmVec = 4;
me.makeBloodFountain(this, 0, 0, 1, false);
}
me.conductor.updateScore(15);
} else {
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, true);
} else {
me.makeBloodFountain(this, 0, 0, 1, true);
}
me.conductor.updateScore(1000);
diying = true;
harmVec = 0;
inner.gotoAndPlay("fall");
}
}
}
function aquireTarget() {
if (diying != true) {
if (alert) {
if (((jack.dir == 1) && (dir == 1)) || ((jack.dir == -1) && (dir == -1))) {
jackIsFacingMe = true;
var _local2 = 0.8;
} else {
jackIsFacingMe = false;
var _local2 = 0.995;
}
if ((timer <= 0) && ((Math.random() > _local2) || (attitude == 2))) {
if (attitude == 3) {
if (Math.random() > 0.3) {
attitude = 2;
inner.gotoAndPlay(1);
} else {
attitude = 1;
}
} else if (attitude == 2) {
attitude = 3;
spent = false;
soundspent = false;
inner.gotoAndPlay("charge");
} else if ((attitude == 1) || (attitude == null)) {
inner.gotoAndPlay(1);
attitude = 2;
} else {
attitude = 2;
}
timer = 100;
}
timer--;
trace("current attitude: " + attitude);
switch (attitude) {
case 1 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 4.3) {
vector.setX(4.3);
}
if (vector.getX() < -4.3) {
vector.setX(-4.3);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
break;
case 2 :
vector.setX(((jack.pt.getX() + (xoffset * 3)) - pt.getX()) / 20);
if (vector.getX() > 5.3) {
vector.setX(5.3);
}
if (vector.getX() < -5.3) {
vector.setX(-5.3);
}
vector.setY(((jack.pt.getY() + yoffset) - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
break;
case 3 :
if (!soundspent) {
if (Math.random() > 0.5) {
me.conductor.playSound("watsonCharge");
}
soundspent = true;
}
vector.setX(((jack.pt.getX() + ((-xoffset) * 6)) - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 0.4) {
vector.setY(0.4);
}
if (vector.getY() < -0.4) {
vector.setY(-0.4);
}
if (getXDistanceToJack(this, (-xoffset) * 6) >= 8) {
break;
}
attitude = 2;
xoffset = -xoffset;
inner.gotoAndPlay(1);
}
hitTimer--;
if (hitTimer < -10) {
hitTimer = -10;
}
if ((getYSqDistanceToJack(this, 0) < 10) && (getXDistanceToJack(this, 0) < 68)) {
if (hasTrunchonHitJack() && (!spent)) {
jack.harm(this, "watson");
me.conductor.playSound("punch");
spent = true;
}
}
} else if ((getYSqDistanceToJack(this, 0) < 24) && (getXDistanceToJack(this, 0) < 150)) {
alert = true;
}
}
}
function hasTrunchonHitJack() {
if (jack.tint.inner.hitTest(inner.knifeBox)) {
return(true);
}
return(false);
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function selfErase() {
me.destroyByID(id);
}
function run() {
aquireTarget();
harmVec = harmVec * 0.8;
vector.setX(vector.getX() + harmVec);
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!diying) {
_xscale = scale * dir;
_yscale = scale;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
}
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 564 MovieClip [__Packages.as.assets.light] Frame 0
class as.assets.light extends MovieClip
{
function light () {
super();
}
}
Symbol 565 MovieClip [__Packages.as.assets.queenvic] Frame 0
class as.assets.queenvic extends MovieClip
{
var offset, l2l, vector, pt, alert, health, timer, hitTimer, harmVec, spent, inner, attitude, xoffset, _x, _y, contactMade, jack, dir, scale, id, me, shadow, shadow2, yoffset, _currentframe, diying, gotoAndPlay, hitting, _xscale, _yscale;
function queenvic () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
alert = true;
health = 450;
timer = null;
hitTimer = 0;
harmVec = 0;
spent = false;
inner.gotoAndPlay(1);
attitude = 1;
xoffset = 32;
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
if (alert && (attitude != 3)) {
if (contactMade) {
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if ((vector.getX() < 0.5) && (vector.getX() > -0.5)) {
contactMade = true;
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
} else if (vector.getX() > 0) {
dir = -1;
} else {
dir = 1;
}
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm) {
me = itm;
jack = me.jack;
me.conductor.playSound("victoria");
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local4 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local3 = _local2.walkSpeed * (scale / 60);
vector.setX(_local3);
vector.setY(0);
attitude = 2;
if (Math.random() > 0.5) {
yoffset = 0;
} else {
yoffset = 0;
}
xoffset = -50;
}
function watchForRemoval() {
if ((pt.getX() < 0) && (alert != true)) {
selfErase();
}
}
function harm(obj) {
if (((_currentframe < 2) && (!diying)) && (inner._currentframe < 42)) {
health = health - obj.damageInflicted;
halt();
if (health > 0) {
(gotoAndPlay("harm"));// not popped
if (Math.random > 0.5) {
inner.gotoAndPlay("harm");
}
if (obj.pt.getX() > pt.getX()) {
harmVec = -2;
me.makeBloodFountain(this, 0, 0, -1, false);
} else {
harmVec = 2;
me.makeBloodFountain(this, 0, 0, 1, false);
}
me.conductor.updateScore(15);
} else {
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, null);
} else {
me.makeBloodFountain(this, 0, 0, 1, null);
}
diying = true;
harmVec = 0;
inner.gotoAndPlay("fall");
me.conductor.updateScore(600);
}
}
}
function aquireTarget() {
if (diying != true) {
if (alert) {
if ((timer <= 0) && ((Math.random() > 0.9) || (attitude == 2))) {
timer = 45;
if (attitude == 1) {
attitude = 2;
} else if (Math.random() > 0.4) {
attitude = 1;
if (Math.random() > 0.6) {
xoffset = -xoffset;
}
}
}
timer--;
switch (attitude) {
case 1 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 5) {
vector.setX(5);
}
if (vector.getX() < -5) {
vector.setX(-5);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 4) {
vector.setY(4);
}
if (vector.getY() < -4) {
vector.setY(-4);
}
break;
case 2 :
vector.setX(((jack.pt.getX() + (xoffset * 4)) - pt.getX()) / 20);
if (vector.getX() > 6) {
vector.setX(6);
}
if (vector.getX() < -6) {
vector.setX(-6);
}
vector.setY(((jack.pt.getY() + yoffset) - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() >= -2) {
break;
}
vector.setY(-2);
}
hitTimer--;
if ((getYSqDistanceToJack(this, 0) < 4) && (getXDistanceToJack(this, 0) < 90)) {
if ((hitTimer < 0) && (inner._currentframe < 25)) {
inner.gotoAndPlay("hit");
hitting = true;
spent = false;
hitTimer = 8;
} else if (hasTrunchonHitJack() && (!spent)) {
me.conductor.playSound("punch");
jack.harm(this, "vic");
spent = true;
}
}
} else if ((getYSqDistanceToJack(this, 0) < 24) && (getXDistanceToJack(this, 0) < 150)) {
alert = true;
}
}
}
function swung() {
if (spent == false) {
me.conductor.playSound("miss");
}
}
function hasTrunchonHitJack() {
if (jack.tint.inner.hitTest(inner.knifeBox)) {
return(true);
}
return(false);
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function selfErase() {
me.destroyByID(id);
}
function run() {
aquireTarget();
harmVec = harmVec * 0.8;
vector.setX(vector.getX() + harmVec);
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!diying) {
_xscale = scale * dir;
_yscale = scale;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
}
var timer2 = 0;
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 566 MovieClip [__Packages.as.assets.ballon] Frame 0
class as.assets.ballon extends MovieClip
{
var offset, l2l, vector, pt, alert, health, timer, hitTimer, harmVec, spent, inner, attitude, xoffset, _x, _y, scale, id, me, jack, shadow, shadow2, yoffset, _currentframe, diying, gotoAndPlay, activeSac, sac, getDepth, _yscale, _xscale, dir;
function ballon () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
alert = true;
health = 100;
timer = null;
hitTimer = 0;
harmVec = 0;
spent = false;
inner.gotoAndPlay(1);
attitude = 1;
xoffset = 60;
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm) {
me = itm;
jack = me.jack;
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local4 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local3 = _local2.walkSpeed * (scale / 60);
vector.setX(_local3);
vector.setY(0);
attitude = 2;
if (Math.random() > 0.5) {
yoffset = 4;
} else {
yoffset = 4;
}
xoffset = -5;
}
function watchForRemoval() {
if ((pt.getX() < 0) && (alert != true)) {
selfErase();
}
}
function harm(obj) {
if ((_currentframe < 4) && (!diying)) {
health = health - obj.damageInflicted;
halt();
if (health > 0) {
(gotoAndPlay("harm"));// not popped
if (obj.pt.getX() > pt.getX()) {
harmVec = -4;
me.makeBloodFountain(this, 0, 0, -1, false);
} else {
harmVec = 4;
me.makeBloodFountain(this, 0, 0, 1, false);
}
me.conductor.updateScore(15);
} else {
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, true);
} else {
me.makeBloodFountain(this, 0, 0, 1, true);
}
me.conductor.updateScore(1000);
diying = true;
harmVec = 0;
inner.gotoAndPlay("fall");
}
}
}
function aquireTarget() {
if (diying != true) {
if (alert) {
attitude = 1;
switch (attitude) {
case 1 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 1) {
vector.setX(1);
}
if (vector.getX() < -1) {
vector.setX(-1);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 0.6) {
vector.setY(0.6);
}
if (vector.getY() < -0.6) {
vector.setY(-0.6);
}
break;
case 2 :
vector.setX(((jack.pt.getX() + (xoffset * 3)) - pt.getX()) / 20);
if (vector.getX() > 5.3) {
vector.setX(5.3);
}
if (vector.getX() < -5.3) {
vector.setX(-5.3);
}
vector.setY(((jack.pt.getY() + yoffset) - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
break;
case 3 :
vector.setX(((jack.pt.getX() + ((-xoffset) * 6)) - pt.getX()) / 20);
if (vector.getX() > 7) {
vector.setX(7);
}
if (vector.getX() < -7) {
vector.setX(-7);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 0.4) {
vector.setY(0.4);
}
if (vector.getY() < -0.4) {
vector.setY(-0.4);
}
if (getXDistanceToJack(this, (-xoffset) * 6) >= 8) {
break;
}
attitude = 2;
xoffset = -xoffset;
}
hitTimer--;
if (hitTimer < -10) {
hitTimer = -10;
spent = false;
}
if (((getYSqDistanceToJack(this, 0) < 10) && (getXDistanceToJack(this, 0) < 50)) && (!spent)) {
hitTimer = 80;
inner.gotoAndPlay("throw");
spent = true;
}
} else if ((getYSqDistanceToJack(this, 0) < 24) && (getXDistanceToJack(this, 0) < 150)) {
alert = true;
}
}
if (activeSac) {
sac.pt.moveByVec(sac.vector);
}
}
function releaseSac() {
activeSac = false;
var _local3 = l2l.localToLocal(inner.sac, _root);
sac = me.orphanForBallon();
sac.timmer = 50;
sac.pt = new com.geoffpell.math.geometry.vector.gPoint2D(_local3.x, _local3.y);
sac.grav = 0;
var _local4 = 0;
var _local5 = 0;
sac.vector = new com.geoffpell.math.geometry.vector.gVector2D(_local4 / 18, _local5 / 25);
sac.ground = pt.getY();
sac._x = _local3.x;
sac._y = _local3.y;
sac.swapDepths(getDepth() + 1);
halt();
me.conductor.playSound("throw");
activeSac = true;
attitude = 8;
}
function hasTrunchonHitJack() {
if (jack.tint.inner.hitTest(inner.knifeBox)) {
return(true);
}
return(false);
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function selfErase() {
me.destroyByID(id);
}
function run() {
aquireTarget();
harmVec = harmVec * 0.8;
vector.setX(vector.getX() + harmVec);
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!diying) {
_yscale = scale;
_xscale = _yscale;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
if (activeSac) {
sac.timmer--;
sac.grav = sac.grav + 0.8;
sac.pt.setY(sac.pt.getY() + sac.grav);
if (sac.pt.getY() > sac.ground) {
sac.pt.setY(sac.ground);
sac.inner.gotoAndPlay("smash");
sac.vector.setX(0);
sac.vector.setY(0);
sac.dead = true;
}
sac._x = sac.pt.getX();
sac._y = sac.pt.getY();
if ((sac.hitTest(jack) && (!sac.dead)) && ((sac.ground > (jack.pt.getY() - 2)) && (sac.ground < (jack.pt.getY() + 2)))) {
jack.harm(sac, "watson");
me.conductor.playSound("punch");
sac.dead = true;
}
if (sac.timmer <= 0) {
sac.removeMovieClip();
}
}
}
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 567 MovieClip [__Packages.as.assets.whore4] Frame 0
class as.assets.whore4 extends MovieClip
{
var offset, l2l, vector, pt, _x, _y, scale, id, me, jack, attitude, shadow, shadow2, startX, startY, yoffset, xoffset, dir, _currentframe, dead, inner, diedfrom, hyde, targetX, targetY, _xscale, _yscale;
function whore4 () {
super();
offset = 0;
init();
}
function init() {
l2l = new com.geoffpell.math.geometry.localToLocalClass();
vector = vi.makeVector(0, 0);
pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
updatePoint();
}
function updatePoint() {
pt.setX(_x);
pt.setY(_y);
maintainScale();
}
function maintainScale() {
scale = -60 + (_y / 2);
}
function rePosition(x, y, relMC) {
_x = x;
_y = y + offset;
pt.setX(x);
pt.setY(y);
updatePoint();
}
function halt() {
vector.setX(0);
vector.setY(0);
}
function setID(ID) {
id = ID;
}
function setMe(itm, stAttitude) {
me = itm;
jack = me.jack;
attitude = stAttitude;
setUp();
}
function setShadow(s, s2) {
shadow = s;
shadow2 = s2;
}
function setUp() {
var _local3 = me.getPedestrianPosition();
var _local2 = me.getPedestrianDefaults();
var _local4 = _local2.walkSpeed * (scale / 60);
vector.setX(0);
vector.setY(0);
startX = pt.getX();
startY = pt.getY();
if (Math.random() > 0.5) {
yoffset = 2 + (Math.random() * 12);
} else {
yoffset = -2 - (Math.random() * 12);
}
xoffset = 60;
dir = 1;
if (attitude != 5) {
}
screamCounter = 10;
}
function watchForRemoval() {
if (pt.getX() < -40) {
selfErase();
}
if (pt.getX() > 700) {
selfErase();
}
}
function harm(obj, style) {
if (((_currentframe == 1) && (dead != true)) && (attitude != 1)) {
dead = true;
inner.gotoAndPlay("die_part2");
switch (obj.stabStyle) {
case "gutted" :
diedfrom = "gutted";
var _local3 = {x:30, y:10};
break;
case "stab" :
diedfrom = "stab";
_local3 = {x:30, y:-10};
break;
case "decap" :
diedfrom = "decap";
_local3 = {x:30, y:10};
}
halt();
me.conductor.updateScore("hoe");
if (obj.pt.getX() > pt.getX()) {
me.makeBloodFountain(this, 0, 0, -1, true, diedfrom);
} else {
me.makeBloodFountain(this, 0, 0, 1, true, diedfrom);
}
me.conductor.updateScore("hoe");
}
}
function yourGoingToDie(by) {
if (dead != true) {
diedfrom = by;
inner.gotoAndStop("die");
}
}
function ai() {
if (!dead) {
switch (attitude) {
case 1 :
hyde = me.getHyde();
cheerCounter--;
if ((cheerCounter < -30) && (hyde._currentframe >= 4)) {
inner.gotoAndPlay("cheer");
cheerCounter = 100;
} else if (cheerCounter < 0) {
inner.gotoAndStop("scared");
}
if ((hyde.health <= 0) && (jack.health > 0)) {
attitude = 3;
}
break;
case 2 :
vector.setX((targetX - pt.getX()) / 20);
if (vector.getX() > 2) {
vector.setX(2);
}
if (vector.getX() < -2) {
vector.setX(-2);
}
vector.setY((targetY - pt.getY()) / 40);
if (vector.getY() > 1.4) {
vector.setY(1.4);
}
if (vector.getY() < -1.4) {
vector.setY(-1.4);
}
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
if (Math.random() > 0.995) {
attitude = 3;
}
if (Math.random() > 0.9995) {
attitude = 4;
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 3 :
vector.setX(((jack.pt.getX() + xoffset) - pt.getX()) / 20);
if (vector.getX() > 2.3) {
vector.setX(2.3);
}
if (vector.getX() < -2.3) {
vector.setX(-2.3);
}
vector.setY((jack.pt.getY() - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
if (jack.pt.getX() > pt.getX()) {
dir = -1;
} else {
dir = 1;
}
if (Math.random() > 0.95) {
targetX = jack.pt.getX() + 100;
targetY = jack.pt.getY();
}
if (Math.random() > 0.9995) {
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
}
break;
case 4 :
vector.setX((pt.getX() - startX) / 20);
if (vector.getX() > 2.3) {
vector.setX(2.3);
}
if (vector.getX() < -2.3) {
vector.setX(-2.3);
}
vector.setY((startY - pt.getY()) / 40);
if (vector.getY() > 2) {
vector.setY(2);
}
if (vector.getY() < -2) {
vector.setY(-2);
}
if (getDistanceToStart(this, 0) < 4) {
halt();
attitude = 1;
}
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 5 :
vector.setX(-2);
if (((jack.state == 1) || (jack.state == 3)) && (getXDistanceToJack(this, 0) < 200)) {
attitude = 6;
}
break;
case 6 :
screamCounter--;
if (screamCounter > 0) {
inner.gotoAndStop("die");
} else if ((screamCounter > -2) && (!dead)) {
inner.gotoAndPlay(1);
if (jack.pt.getX() > pt.getX()) {
dir = 1;
vector.setX(-3.2);
} else {
dir = -1;
vector.setX(3.2);
}
vector.setY(0);
}
break;
case 7 :
break;
default :
attitude = 1;
}
}
}
function selfErase() {
me.destroyByID(id);
}
function run() {
ai();
pt.moveByVec(vector);
maintainScale();
watchForRemoval();
}
function render() {
_x = pt.getX();
_y = pt.getY() + offset;
if (!dead) {
_xscale = scale * dir;
_yscale = scale;
shadow._xscale = scale * dir;
shadow._yscale = scale;
}
}
function getDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
var _local6 = (_local4.x + offset) - _local3.x;
var _local5 = _local4.y - _local3.y;
return(Math.sqrt((_local6 * _local6) - ((_local5 * _local5) / 2)));
}
function getDistanceToStart(obj, offset) {
var _local3 = l2l.localToLocal(obj, _root);
var _local5 = startX - _local3.x;
var _local4 = startY - _local3.y;
return(Math.sqrt((_local5 * _local5) - ((_local4 * _local4) / 2)));
}
function getXDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt((_local4.x - _local3.x) * (_local4.x - _local3.x)));
}
function getYDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
function getYSqDistanceToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return(Math.sqrt(((_local4.y + offset) - _local3.y) * ((_local4.y + offset) - _local3.y)));
}
function getXVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.x + offset) - _local3.x);
}
function getYVectorToJack(obj, offset) {
var _local4 = l2l.localToLocal(jack, _root);
var _local3 = l2l.localToLocal(obj, _root);
return((_local4.y + offset) - _local3.y);
}
var screamCounter = 0;
var cheerCounter = 0;
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
}
Symbol 568 MovieClip [__Packages.as.main.jackInterface] Frame 0
class as.main.jackInterface
{
var conductor, keyListener, jack, up, down, left, right, space, lastDir, xDirection, yDirection;
function jackInterface (main) {
conductor = main;
}
function init() {
keyListener = new Object();
Key.addListener(keyListener);
jack = conductor.getJack();
up = false;
down = false;
left = false;
right = false;
space = false;
lastDir = "right";
assignListner();
}
function assignListner() {
}
function collectLiterals() {
xDirection = 0;
yDirection = 0;
lastDir = null;
if (Key.isDown(38)) {
yDirection = yDirection + 1;
} else if (Key.isDown(40)) {
yDirection = yDirection - 1;
}
if (Key.isDown(39)) {
xDirection = xDirection + 3;
lastDir = "right";
} else if (Key.isDown(37)) {
xDirection = xDirection - 3;
lastDir = "left";
}
if (Key.isDown(32)) {
var _local3 = true;
} else {
var _local3 = false;
}
if (Key.isDown(88)) {
var _local2 = true;
} else {
var _local2 = false;
}
var _local4 = {x:xDirection, y:yDirection, d:lastDir, m:_local3, defend:_local2};
return(_local4);
}
}
Symbol 569 MovieClip [__Packages.as.main.control] Frame 0
class as.main.control
{
var dy, t, lightList, bloodParticles, bloodShadParticles, bossmode, bossDeathCounter, level, target, pathPoints, jack, renderMC, itemList, boss1, bossXtar, bossTimer, bossPresent, boss2, markerY, conductor, bossText, itemShadowList, Jack_offset, lamps, lighting;
function control () {
dy = 0;
t = -50;
lightList = new Array();
bloodParticles = new Array(45);
bloodShadParticles = new Array(45);
bossmode = false;
bossDeathCounter = null;
}
function scanForLightSources() {
for (var _local4 in level) {
if (level[_local4] instanceof as.assets.light) {
var _local2 = level[_local4];
var _local3 = l2l.localToLocal(_local2, target);
if ((_local3.x < -50) || (_local3.x > (Stage.width + 50))) {
if (_local2.active) {
unRegisterLight(_local2, _local4);
}
} else if ((!_local2.active) || (_local2.active == null)) {
registerLight(_local2, _local4);
}
}
}
}
function deriveCamaeraPath() {
pathPoints = new Array();
for (var _local2 in level) {
if (level[_local2] instanceof as.assets.marker) {
var _local3 = level[_local2];
pathPoints.push({x:_local3._x, y:_local3._y});
}
}
trace("pathPoints: " + pathPoints.length);
var _local6 = level.createEmptyMovieClip("cameraPath_mc", 1);
_local6.moveTo(pathPoints[pathPoints.length - 1].x, pathPoints[pathPoints.length - 1].y);
_local6.lineStyle(5, 16711935, 100);
var _local2 = pathPoints.length - 1;
while (_local2 > 0) {
_local6.lineTo(pathPoints[_local2].x, pathPoints[_local2].y);
_local2--;
}
_local6.moveTo(pathPoints[0].x, pathPoints[0].y);
}
function scanForPeople() {
for (var _local6 in level) {
if (level[_local6] instanceof as.assets.p1) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("person1", {x:_local2.x, y:_local2.y});
_local3.activated = true;
}
}
}
if (level[_local6] instanceof as.assets.m1) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("man1", {x:_local2.x, y:_local2.y});
_local3.activated = true;
}
}
}
if (level[_local6] instanceof as.assets.m2) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("man2", {x:_local2.x, y:_local2.y});
_local3.activated = true;
}
}
}
if (level[_local6] instanceof as.assets.w1) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("whore1", {x:_local2.x, y:_local2.y}, _local3.attitude);
_local3.activated = true;
}
}
}
if (level[_local6] instanceof as.assets.w2) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("whore2", {x:_local2.x, y:_local2.y}, _local3.attitude);
_local3.activated = true;
}
}
}
if (level[_local6] instanceof as.assets.w4) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("whore4", {x:_local2.x, y:_local2.y}, _local3.attitude);
_local3.activated = true;
}
}
}
if (level[_local6] instanceof as.assets.w3) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("whore3", {x:_local2.x, y:_local2.y}, _local3.attitude);
_local3.activated = true;
trace("found whore with attitude: " + _local3.attitude);
}
}
}
if (level[_local6] instanceof as.assets.pol1) {
var _local3 = level[_local6];
_local3._visible = false;
if (!_local3.activated) {
var _local2 = l2l.localToLocal(_local3, target);
if ((_local2.x < (-screenBleed)) || (_local2.x > (Stage.width + screenBleed))) {
} else {
findSlotAndCreatePerson("police1", {x:_local2.x, y:_local2.y});
_local3.activated = true;
}
}
}
}
}
function makeBloodFountain(obj, x, y, dir, arg, special) {
if (arg) {
var _local6 = 8 + Math.round(Math.random() * 6);
} else if (!arg) {
var _local6 = 2 + Math.round(Math.random() * 3);
} else {
var _local6 = 10 + Math.round(Math.random() * 10);
}
var _local4 = l2l.localToLocal(jack.tint.inner.knifeBox2, renderMC);
if (typeof(jack.tint.inner.knifeBox2) == "movieclip") {
var _local2 = 0;
while (_local2 < bloodParticles.length) {
if ((bloodParticles[_local2] == null) && (_local6 > 0)) {
bloodParticles[_local2] = renderMC.attachMovie("blood", "blood" + _local2, renderMC.getNextHighestDepth());
bloodShadParticles[_local2] = renderMC.attachMovie("blood_shadow", "bloodShad" + _local2, renderMC.getNextHighestDepth());
bloodShadParticles[_local2]._alpha = 30;
bloodShadParticles[_local2]._x = obj._x;
bloodShadParticles[_local2]._y = obj._y;
bloodParticles[_local2].obj = obj;
bloodParticles[_local2]._xscale = obj._xscale;
bloodParticles[_local2]._yscale = obj._yscale;
bloodShadParticles[_local2]._xscale = obj._xscale;
bloodShadParticles[_local2]._yscale = obj._yscale;
bloodParticles[_local2]._x = _local4.x + (11 * dir);
if (arg) {
bloodParticles[_local2]._y = _local4.y - 120;
} else {
bloodParticles[_local2]._y = _local4.y;
}
bloodParticles[_local2].pt = new com.geoffpell.math.geometry.vector.gPoint2D(_local4.x + (10 * dir), _local4.y);
bloodParticles[_local2].vector = new com.geoffpell.math.geometry.vector.gVector2D(dir * (Math.random() * 18), -6 - (Math.random() * 6));
if (arg == null) {
bloodParticles[_local2].timer = _local2 / 4;
} else {
bloodParticles[_local2].timer = _local2 / 2;
}
bloodParticles[_local2].splatRng = ((10 - (Math.random() * 20)) + obj._y) - 10;
bloodParticles[_local2].grav = 0.73;
bloodParticles[_local2]._visible = false;
_local6--;
}
_local2++;
}
}
}
function createPerson(typ, id, args, attitude) {
switch (typ) {
case "person1" :
var _local4 = renderMC.attachMovie("person1", "person" + id, renderMC.getNextHighestDepth());
var _local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
var _local7;
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "man1" :
_local4 = renderMC.attachMovie("man1", "man" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("genShad", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMan1();
_local4.setMe(this);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "man2" :
_local4 = renderMC.attachMovie("man2", "man" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("genShad", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "whore1" :
_local4 = renderMC.attachMovie("whore1", "whore" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("genShad", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, level);
_local4.setMe(this, attitude);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "whore2" :
_local4 = renderMC.attachMovie("whore2", "whore" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("genShad", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, level);
_local4.setMe(this, attitude);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "whore3" :
_local4 = renderMC.attachMovie("whore3", "whore" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("genShad", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, level);
_local4.setMe(this, attitude);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "whore4" :
_local4 = renderMC.attachMovie("whore4", "whore" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("whore1_shadow", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("whore1_shadow", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, level);
trace("makeing whore 4" + _local4);
_local4.setMe(this, attitude);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "police1" :
_local4 = renderMC.attachMovie("policeman1", "police" + id, renderMC.getNextHighestDepth());
_local6 = renderMC.attachMovie("genShad", "person2Shad" + id, renderMC.getNextHighestDepth());
_local7 = renderMC.attachMovie("genShad", "person2Shad2" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
_local4.setShadow(_local6, _local7);
registerShadow(_local4, _local6, _local7);
return(_local4);
case "sherlock" :
_local4 = renderMC.attachMovie("sherlock", "boss" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
return(_local4);
case "watson" :
_local4 = renderMC.attachMovie("watson", "boss" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
return(_local4);
case "hyde" :
_local4 = renderMC.attachMovie("hyde", "boss" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
trace("created hyde on: " + _local4);
return(_local4);
case "QueenVicMC" :
_local4 = renderMC.attachMovie("QueenVicMC", "boss" + id, renderMC.getNextHighestDepth());
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
return(_local4);
case "BallonMC" :
_local4 = renderMC.attachMovie("BallonMC", "boss" + id, renderMC.getNextHighestDepth());
trace("making ballon: " + _local4);
_local4.rePosition(args.x, args.y, renderMC);
_local4.setMe(this);
_local4.setID(id);
return(_local4);
}
}
function findSlotAndCreatePerson(type, att, attitude) {
var _local2 = 1;
while (_local2 < itemList.length) {
if (itemList[_local2] == null) {
itemList[_local2] = createPerson(type, _local2, att, attitude);
return(itemList[_local2]);
}
_local2++;
}
return(null);
}
function getPedestrianPosition() {
var _local3 = 700;
var _local2 = 300 + (Math.random() * 120);
var _local1 = {x:_local3, y:_local2};
return(_local1);
}
function getPedestrianDefaults() {
var _local1 = {walkSpeed:-0.8};
return(_local1);
}
function getHyde() {
return(boss1);
}
function maintainCamera(jack) {
var _local4 = 0;
var _local3 = 0;
while (_local3 < itemList.length) {
if (itemList[_local3] != null) {
_local4++;
}
_local3++;
}
if ((((jack.pt.getX() > 300) && (jack.vector.getX() > 0)) && (bossmode == false)) && (_local4 <= 4)) {
moveLevelX(jack, -1);
} else if ((((jack.pt.getX() < 100) && (jack.vector.getX() < 0)) && (bossmode == false)) && (_local4 <= 4)) {
moveLevelX(jack, 1);
}
if (bossmode) {
var _local7 = level.pt.getX() + ((bossXtar - level.pt.getX()) / 30);
level.pt.setX(_local7);
var _local6 = new com.geoffpell.math.geometry.vector.gVector2D(0, 0);
_local6.setX((bossXtar - level.pt.getX()) / 30);
moveAllItems(_local6);
jack.pt.moveByVec(_local6);
bossTimer--;
if ((bossTimer <= 0) && (bossPresent != true)) {
if (_root.currentLevel == 1) {
boss1 = findSlotAndCreatePerson("sherlock", {x:620, y:320});
boss2 = findSlotAndCreatePerson("watson", {x:-50, y:320});
bossPresent = true;
} else if (_root.currentLevel == 2) {
boss1 = findSlotAndCreatePerson("hyde", {x:620, y:320});
boss2 = findSlotAndCreatePerson("whore4", {x:530, y:340});
bossPresent = true;
} else if (_root.currentLevel == 3) {
boss1 = findSlotAndCreatePerson("QueenVicMC", {x:550, y:320});
boss2 = findSlotAndCreatePerson("BallonMC", {x:430, y:250});
bossPresent = true;
}
}
if (_root.currentLevel == 1) {
if ((((boss1.health <= 0) && (boss2.health <= 0)) && (boss1.diying)) && (boss2.diying)) {
if (bossDeathCounter == null) {
bossDeathCounter = 250;
} else if ((bossDeathCounter <= 30) && (bossDeathCounter > -40)) {
endLevel(1);
bossDeathCounter = -50;
} else {
bossDeathCounter--;
}
}
} else if (_root.currentLevel == 2) {
if (((boss1.health <= 0) && (typeof(boss1) == "movieclip")) && (boss2.dead != true)) {
if (bossDeathCounter == null) {
bossDeathCounter = 250;
} else if ((bossDeathCounter <= 30) && (bossDeathCounter > -40)) {
endLevel(2);
bossDeathCounter = -50;
} else {
bossDeathCounter--;
}
}
} else if (_root.currentLevel == 3) {
if ((boss1.health <= 0) && (boss1.diying)) {
boss2.health = 0;
boss2.diying = true;
boss2.removeMovieClip();
if (bossDeathCounter == null) {
bossDeathCounter = 50;
} else if ((bossDeathCounter <= 30) && (bossDeathCounter > -40)) {
endLevel(3);
bossDeathCounter = -50;
} else {
bossDeathCounter--;
}
}
}
}
}
function findCameraPathScanner() {
}
function findCameraPath() {
var _local3 = jack.pt.getX() + 100;
var _local5 = 0;
var _local4 = 200;
var _local7 = 0;
target.Position_marker.swapDepths(10000);
target.Position_marker2.swapDepths(10001);
var _local6 = l2l.localToLocal(level.cameraPath, target);
dy = 0;
var _local2 = 0;
while (_local2 <= _local4) {
if (level.cameraPath.hitTest(_local3, _local2, true)) {
target.Position_marker._x = _local3;
target.Position_marker._y = _local2 - _local5;
dy = _local2;
break;
}
target.Position_marker._x = _local3;
_local2++;
}
dy = markerY + target.Position_marker2._y;
target.Position_marker2._x = target.Position_marker2._x - ((target.Position_marker2._x - target.Position_marker._x) / 20);
target.Position_marker2._y = target.Position_marker2._y - ((target.Position_marker2._y - target.Position_marker._y) / 20);
}
function getYPos(x, y) {
}
function trackY() {
level.pt.setY(-dy);
moveAllItemsByY(-dy);
}
function moveLevelX(jack, dir) {
level.vector.setX(0);
level.vector.setX(jack.vector.getX() * -1);
level.pt.moveByVec(level.vector);
jack.vector.setX(jack.vector.getX() * -1);
jack.pt.moveByVec(jack.vector);
chkBossZone();
moveAllItems(level.vector);
scanForLightSources();
scanForPeople();
}
function chkBossZone() {
if (jack.hitTest(level.bossZone) && (level.bossZone.active != false)) {
level.bossZone.active = false;
if (jack.pt.getX() > 300) {
var _local3 = jack.pt.getX() - 300;
} else {
var _local3 = 0;
}
bossXtar = level.pt.getX() - (188 + _local3);
bossmode = true;
bossTimer = 200;
conductor.bossIntro();
if (_root.currentLevel == 1) {
bossText = renderMC.attachMovie("BossText1", "aniText", renderMC.getNextHighestDepth());
} else if (_root.currentLevel == 2) {
bossText = renderMC.attachMovie("BossText2", "aniText", renderMC.getNextHighestDepth());
} else if (_root.currentLevel == 3) {
bossText = renderMC.attachMovie("BossText3", "aniText", renderMC.getNextHighestDepth());
}
bossText._x = Stage.width / 2;
bossText._y = Stage.height / 2;
}
}
function moveLevelY(jack, dir) {
level.vector.setY(dy);
level.vector.setY(jack.vector.getY() * -1);
level.pt.moveByVec(level.vector);
jack.vector.setY(jack.vector.getY() * -1);
jack.pt.moveByVec(jack.vector);
moveAllItems(level.vector);
scanForLightSources();
scanForPeople();
}
function moveAllItems(vec) {
var _local2 = 1;
while (_local2 < itemList.length) {
if (typeof(itemList[_local2]) == "movieclip") {
itemList[_local2].pt.moveByVec(vec);
}
_local2++;
}
_local2 = 0;
while (_local2 < bloodParticles.length) {
if (typeof(bloodParticles[_local2]) == "movieclip") {
bloodParticles[_local2].pt.moveByVec(vec);
}
_local2++;
}
}
function moveAllItemsByY(y) {
var _local2 = 1;
while (_local2 < itemList.length) {
if (typeof(itemList[_local2]) == "movieclip") {
itemList[_local2].offset = y;
}
_local2++;
}
}
function registerLight(lgt, id) {
var _local3 = 0;
var _local2 = 0;
while (_local2 <= lightList.length) {
if (lightList[_local2].id == id) {
_local3++;
}
_local2++;
}
if (_local3 == 0) {
lgt.id = lightList.length;
lgt.active = true;
lightList.push(lgt);
trace("adding light too list: " + lightList);
}
}
function unRegisterLight(lgt, id) {
var _local2 = 0;
while (_local2 <= lightList.length) {
if (lightList[_local2]._name == lgt._name) {
lightList.splice(_local2, 1);
lgt.id = null;
lgt.active = false;
}
_local2++;
}
}
function getLights() {
return(lightList);
}
function registerShadow(obj, shad, shad2) {
shad.id = itemShadowList.length;
shad.pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
shad2.id = itemShadowList.length;
shad2.pt = new com.geoffpell.math.geometry.vector.gPoint2D(0, 0);
var _local3 = {mc:obj, s:shad, s2:shad2};
itemShadowList.push(_local3);
}
function unregisterShadow(shad) {
itemShadowList.splice(shad.id, 1);
}
function prepLevel(lvl) {
level = lvl;
var _local4 = level.Position_marker._x - level._x;
var _local3 = level._y - level.Position_marker._y;
lvl.pt = new com.geoffpell.math.geometry.vector.gPoint2D(lvl._x, lvl._y);
lvl.vector = vi.makeVector(0, 0);
findCameraPath();
target.Position_marker2._x = target.Position_marker._x;
target.Position_marker2._y = target.Position_marker._y;
markerY = target.Position_marker2._y;
Jack_offset = jack.pt.getX();
level.cameraPath._visible = false;
level.bossZone._visible = false;
level.startX = level._x;
level.startY = level._y;
level.lamps.startX = level.lamps._x;
level.lamps.startY = level.lamps._y;
level.Paralax1.startX = level.Paralax1._x;
level.Paralax1.startY = level.Paralax1._y;
level.Paralax2.startX = level.Paralax2._x;
level.Paralax2.startY = level.Paralax2._y;
}
function resetLevel() {
bossmode = false;
bossText.removeMovieClip();
lamps.removeMovieClip();
lighting.removeMovieClip();
for (var _local2 in level) {
if (level[_local2] instanceof as.assets.p1) {
var _local3 = level[_local2];
_local3.activated = false;
}
if (level[_local2] instanceof as.assets.m2) {
var _local3 = level[_local2];
_local3.activated = false;
}
if (level[_local2] instanceof as.assets.w1) {
var _local3 = level[_local2];
_local3.activated = false;
}
if (level[_local2] instanceof as.assets.w2) {
var _local3 = level[_local2];
_local3.activated = false;
}
if (level[_local2] instanceof as.assets.w3) {
var _local3 = level[_local2];
_local3.activated = false;
}
if (level[_local2] instanceof as.assets.pol1) {
var _local3 = level[_local2];
_local3.activated = false;
}
}
var _local2 = 0;
while (_local2 <= itemList.length) {
if (typeof(itemList[_local2]) == "movieclip") {
itemList[_local2].removeMovieClip();
itemList[_local2] = null;
}
_local2++;
}
}
function endLevel(arg) {
}
var screenBleed = 50;
static var vi = new com.geoffpell.math.geometry.vector.gVector2DInterface();
static var l2l = new com.geoffpell.math.geometry.localToLocalClass();
static var keyThrust = 3;
}
Symbol 570 MovieClip [__Packages.as.assets.marker] Frame 0
class as.assets.marker extends MovieClip
{
function marker () {
super();
}
}
Symbol 571 MovieClip [__Packages.as.assets.p1] Frame 0
class as.assets.p1 extends MovieClip
{
function p1 () {
super();
}
var activated = false;
}
Symbol 572 MovieClip [__Packages.as.assets.m1] Frame 0
class as.assets.m1 extends MovieClip
{
function m1 () {
super();
}
var activated = false;
}
Symbol 573 MovieClip [__Packages.as.assets.m2] Frame 0
class as.assets.m2 extends MovieClip
{
function m2 () {
super();
}
var activated = false;
}
Symbol 574 MovieClip [__Packages.as.assets.w1] Frame 0
class as.assets.w1 extends MovieClip
{
var attitude, firstWhore;
function w1 () {
super();
}
function setAttitude(arg) {
attitude = arg;
}
function setFirstWhore(arg) {
firstWhore = true;
}
var activated = false;
}
Symbol 575 MovieClip [__Packages.as.assets.w2] Frame 0
class as.assets.w2 extends MovieClip
{
var attitude, firstWhore;
function w2 () {
super();
}
function setAttitude(arg) {
attitude = arg;
}
function setFirstWhore(arg) {
firstWhore = true;
}
var activated = false;
}
Symbol 576 MovieClip [__Packages.as.assets.w4] Frame 0
class as.assets.w4 extends MovieClip
{
var attitude, firstWhore;
function w4 () {
super();
}
function setAttitude(arg) {
attitude = arg;
}
function setFirstWhore(arg) {
firstWhore = true;
}
var activated = false;
}
Symbol 577 MovieClip [__Packages.as.assets.w3] Frame 0
class as.assets.w3 extends MovieClip
{
var attitude, firstWhore;
function w3 () {
super();
}
function setAttitude(arg) {
attitude = arg;
}
function setFirstWhore(arg) {
firstWhore = true;
}
var activated = false;
}
Symbol 578 MovieClip [__Packages.as.assets.pol1] Frame 0
class as.assets.pol1 extends MovieClip
{
function pol1 () {
super();
}
var activated = false;
}
Symbol 579 MovieClip [__Packages.as.main.model] Frame 0
class as.main.model extends as.main.control
{
var conductor, target, renderEng, renderMC, jackShadow1, jack, jackShadow2, lamps, lighting, itemList, itemShadowList, prepLevel, scanForLightSources, scanForPeople, level, maintainCamera, createPerson, bloodParticles, bloodShadParticles, unregisterShadow, bloodCurtain, endLevel1Curtain, resetLevel;
function model (main, render) {
super();
conductor = main;
target = conductor.getTarget();
renderEng = render;
renderMC = getRenderMC();
jack.shadow = (jackShadow1 = renderMC.attachMovie("jackShadow", "jack1Shadow", renderMC.getNextHighestDepth()));
jack.shadow2 = (jackShadow2 = renderMC.attachMovie("jackShadow", "jack2Shadow", renderMC.getNextHighestDepth()));
lamps = renderMC.attachMovie("lamps", "lampsMC", renderMC.getNextHighestDepth());
lighting = renderMC.attachMovie("lighting", "lightingMC", renderMC.getNextHighestDepth());
}
function init() {
jack = conductor.getJack();
itemList = new Array(9);
itemShadowList = new Array();
prepLevel(conductor.getLevel());
scanForLightSources();
scanForPeople();
}
function reset() {
prepLevel(conductor.getLevel());
scanForLightSources();
scanForPeople();
level.vector.setX(0);
level.vector.setY(0);
level.pt.setX(0);
level.pt.setY(0);
}
function moveByRound(moveObj) {
handleJack(moveObj);
maintainCamera(jack);
handleItems(itemList);
handleShadows(itemShadowList);
handleBlood();
}
function handleItems(list) {
var _local1 = 1;
while (_local1 < list.length) {
if (typeof(list[_local1]) == "movieclip") {
list[_local1].run();
}
_local1++;
}
}
function handleShadows(list) {
var _local2 = 1;
while (_local2 < list.length) {
if ((list[_local2] == null) && (Math.random() > 0.99)) {
list[_local2] = createPerson("person1", _local2);
} else if (typeof(list[_local2]) == "movieclip") {
handleShadow(list[_local2]);
}
_local2++;
}
}
function handleJack(moveObj) {
var _local4 = refineJacksInput(moveObj.x, moveObj.y);
jack.updateVector(_local4.x, _local4.y, moveObj.d, moveObj.m, moveObj.defend);
jack.run();
var _local2 = 1;
while (_local2 < itemList.length) {
if (typeof(itemList[_local2]) == "movieclip") {
if (jack.detectTarget(itemList[_local2])) {
if (jack.isStabbing(itemList[_local2])) {
itemList[_local2].harm(jack, jack.stabStyle);
jack.spent = true;
}
break;
}
}
_local2++;
}
}
function handleBlood() {
var _local2 = 0;
while (_local2 < bloodParticles.length) {
if (typeof(bloodParticles[_local2]) == "movieclip") {
bloodParticles[_local2].timer--;
if (bloodParticles[_local2].timer <= (-(100 - (_local2 * 2)))) {
bloodParticles[_local2].removeMovieClip();
delete bloodParticles[_local2];
bloodParticles[_local2] = null;
bloodShadParticles[_local2].removeMovieClip();
delete bloodShadParticles[_local2];
bloodShadParticles[_local2] = null;
} else if (bloodParticles[_local2].timer <= 0) {
bloodParticles[_local2]._visible = true;
if (bloodParticles[_local2].vector.getY() != 0) {
if (bloodParticles[_local2].t <= 0) {
bloodParticles[_local2].oldPoint = bloodParticles[_local2].pt;
bloodParticles[_local2].t = 10;
} else {
bloodParticles[_local2].t--;
}
bloodParticles[_local2].vector.setX(bloodParticles[_local2].vector.getX() * 0.88);
bloodParticles[_local2].vector.setY(bloodParticles[_local2].vector.getY() + bloodParticles[_local2].grav);
}
if (bloodParticles[_local2].pt.getY() > bloodParticles[_local2].splatRng) {
if (bloodParticles[_local2].vector.getY() != 0) {
bloodParticles[_local2].inner.play();
bloodParticles[_local2].pt.setY(bloodParticles[_local2].splatRng);
bloodParticles[_local2].vector.setX(0);
bloodParticles[_local2].vector.setY(0);
bloodParticles[_local2]._rotation = 0;
}
} else if (bloodParticles[_local2].pt.getY() != bloodParticles[_local2].splatRng) {
bloodParticles[_local2].pt.moveByVec(bloodParticles[_local2].vector);
var _local6 = bloodParticles[_local2].oldPoint;
var _local7 = bloodParticles[_local2].pt;
var _local5 = bloodParticles[_local2].vector.getX();
var _local4 = bloodParticles[_local2].vector.getY();
var _local3 = Math.atan2(_local4, _local5) * 57.2957795130823;
if ((_local3 != 0) && (_local3 != null)) {
bloodParticles[_local2]._rotation = _local3 - 90;
}
}
bloodShadParticles[_local2]._x = bloodParticles[_local2].pt.getX();
bloodShadParticles[_local2]._y = bloodParticles[_local2].splatRng + 9;
}
}
_local2++;
}
}
function getBlood() {
return(bloodParticles);
}
function getBloodShadows() {
return(bloodShadParticles);
}
function getLighting() {
return(lighting);
}
function getLamps() {
return(lamps);
}
function getItemList() {
return(itemList);
}
function getItemShadowList() {
return(itemShadowList);
}
function destroyByID(id) {
itemList[id].shadow.removeMovieClip();
itemList[id].shadow2.removeMovieClip();
unregisterShadow(itemList[id].shadow);
itemList[id].removeMovieClip();
delete itemList[id];
itemList[id] = null;
}
function getRenderMC() {
return(renderEng.getRenderMC());
}
function handleShadow(o) {
}
function sacForHyde() {
var _local2 = renderMC.attachMovie("sac", "sac", renderMC.getNextHighestDepth());
return(_local2);
}
function orphanForBallon() {
var _local2 = renderMC.attachMovie("orphanMC", "orphan", renderMC.getNextHighestDepth());
return(_local2);
}
function getJackShadow() {
return({a:jackShadow1, b:jackShadow2});
}
function dieSequence() {
if (renderMC.bloodCurtain == null) {
bloodCurtain = renderMC.attachMovie("bloodCurtain", "bloodCurtain_MC", renderMC.getNextHighestDepth());
bloodCurtain.againButt.me = this;
conductor.healthMeter._visible = false;
conductor.ScoreBoard._visible = false;
conductor.playSound("jackDies");
bloodCurtain.againButt.onRelease = function () {
this.me.conductor.reLoadLevel(null, null, this._parent);
};
bloodCurtain._x = 270;
bloodCurtain._y = 150;
}
}
function endSequence(lvl) {
switch (lvl) {
case 1 :
if (renderMC.endLevel1Curtain_MC == null) {
conductor.healthMeter._visible = false;
conductor.ScoreBoard._visible = false;
endLevel1Curtain = renderMC.attachMovie("endLevel1Curtain", "endLevel1Curtain_MC", renderMC.getNextHighestDepth());
endLevel1Curtain.inner.againButt.me = this;
endLevel1Curtain.inner.againButt.onRelease = function () {
this.me.conductor.reLoadLevel("content/level2.swf", 2, this._parent._parent);
};
}
break;
case 2 :
if (renderMC.endLevel2Curtain_MC == null) {
conductor.healthMeter._visible = false;
conductor.ScoreBoard._visible = false;
endLevel1Curtain = renderMC.attachMovie("endLevel2Curtain", "endLevel2Curtain_MC", renderMC.getNextHighestDepth());
endLevel1Curtain.inner.againButt.me = this;
endLevel1Curtain.inner.againButt.onRelease = function () {
this.me.conductor.reLoadLevel("content/level3.swf", 3, this._parent._parent);
};
}
break;
case 3 :
if (renderMC.endLevel3Curtain_MC != null) {
break;
}
conductor.healthMeter._visible = false;
conductor.ScoreBoard._visible = false;
endLevel1Curtain = renderMC.attachMovie("endLevel3Curtain", "endLevel3Curtain_MC", renderMC.getNextHighestDepth());
endLevel1Curtain.inner.againButt.me = this;
trace("this.conductor.totalHoe: " + conductor.totalHoe);
endLevel1Curtain.inner.whoreCount = conductor.totalHoe + conductor.hoeScore;
endLevel1Curtain.inner.score = conductor.score;
endLevel1Curtain.inner.total = conductor.score * endLevel1Curtain.inner.whoreCount;
endLevel1Curtain.inner.againButt.onRelease = function () {
trace("go go");
this._parent._parent.play();
this.me.conductor.score = 0;
this.me.conductor.lastLevelScore = 0;
this.me.conductor.init("content/level1.swf", 1, this._parent._parent);
};
}
}
function endLevel(arg) {
if (arg == 1) {
endSequence(1);
}
if (arg == 2) {
endSequence(2);
}
if (arg == 3) {
endSequence(3);
}
}
function deleteAssets() {
var _local2 = 1;
while (_local2 < itemList.length) {
itemList[_local2].selfErase();
itemList[_local2] = null;
_local2++;
}
bloodCurtain.removeMovieClip();
trace("deleting: ");
trace("deleting: " + jackShadow1);
trace("deleting: " + jackShadow2);
trace("deleting: " + lighting);
jackShadow1.removeMovieClip();
jackShadow2.removeMovieClip();
lighting.removeMovieClip();
lamps.removeMovieClip();
resetLevel();
}
function refineJacksInput(rot_x, rot_y) {
var _local3 = as.main.control.keyThrust;
var _local5 = 0;
var _local4 = 0;
var _local2 = 0;
var _local1 = 0;
switch (rot_x) {
case 3 :
_local5 = 2;
_local4 = 2;
_local2 = _local3 * 1;
break;
case -3 :
_local5 = 4;
_local4 = 4;
_local2 = (-_local3) * 1;
break;
case 0 :
_local2 = 0;
}
switch (rot_y) {
case 1 :
_local1 = _local3 * -1;
break;
case -1 :
_local1 = (-_local3) * -1;
break;
case 0 :
_local1 = 0;
break;
}
var _local6 = {x:_local2, y:_local1};
return(_local6);
}
}
Symbol 580 MovieClip [__Packages.as.main.renderEngine] Frame 0
class as.main.renderEngine
{
var conductor, target, renderMC, jack, level, itemList, mdl, itemShadowList, lamps, lighting;
function renderEngine (main, tar) {
conductor = main;
target = tar;
renderMC = target.createEmptyMovieClip("renderMC1", 2000);
}
function init() {
target = conductor.getTarget();
jack = conductor.getJack();
level = conductor.getLevel();
}
function render() {
itemList = mdl.getItemList();
itemShadowList = mdl.getItemShadowList();
var _local2 = mdl.getBlood();
var _local3 = mdl.getBloodShadows();
sortDepth(_local2, _local3);
renderJack();
renderLevel();
renderItems(itemList);
renderShadows(itemShadowList);
renderBlood(_local2, _local3);
if (renderMC.introTicker < 200) {
if (renderMC._alpha == 0) {
renderMC._alpha = 100;
}
renderMC.introTicker++;
if (renderMC.introTicker > 80) {
renderMC._alpha = 100;
blurX = blurX - 1;
blurY = blurY - blurVec;
blurVec = blurVec + 1;
var _local4 = new flash.filters.BlurFilter(blurX, blurY, quality);
var _local5 = new Array();
_local5.push(_local4);
}
}
}
function renderItems(list) {
var _local1 = 0;
while (_local1 < list.length) {
if (typeof(list[_local1]) == "movieclip") {
list[_local1].render();
}
_local1++;
}
}
function renderBlood(list) {
var _local1 = 0;
while (_local1 < list.length) {
if (typeof(list[_local1]) == "movieclip") {
list[_local1]._x = list[_local1].pt.getX();
list[_local1]._y = list[_local1].pt.getY();
}
_local1++;
}
}
function renderShadows(list) {
var _local4 = mdl.getLights();
var _local2 = 0;
while (_local2 < list.length) {
if (typeof(_local4[0]) == "movieclip") {
var _local8 = (list[_local2].s._x = list[_local2].mc.pt.getX());
var _local6 = (list[_local2].s._y = list[_local2].mc.pt.getY());
list[_local2].s1.inner.gotoAndStop(list[_local2].mc.inner._currentframe);
skewShadow(list[_local2].s, _local4[0]);
list[_local2].s1._xscale = list[_local2].mc._xscale - 8;
} else {
list[_local2].s1._alpha = 0;
}
if (typeof(_local4[1]) == "movieclip") {
var _local7 = (list[_local2].s2._x = list[_local2].mc.pt.getX());
var _local5 = (list[_local2].s2._y = list[_local2].mc.pt.getY());
list[_local2].s2.inner.gotoAndStop(list[_local2].mc.inner._currentframe);
skewShadow(list[_local2].s2, _local4[1]);
list[_local2].s2._xscale = list[_local2].mc._xscale - 8;
} else {
list[_local2].s2._alpha = 0;
}
_local2++;
}
var _local9 = mdl.getJackShadow();
_local9.a._x = jack.pt.getX();
_local9.a._y = jack.pt.getY();
_local9.a.inner.gotoAndStop(jack.tint.inner._currentframe);
_local9.a.inner._xscale = jack._xscale;
skewShadow(_local9.a, _local4[0]);
_local9.b._x = jack.pt.getX();
_local9.b._y = jack.pt.getY();
_local9.b.inner.gotoAndStop(jack.tint.inner._currentframe);
_local9.b.inner._xscale = jack._xscale;
skewShadow(_local9.b, _local4[1]);
}
function skewShadow(shad, lgt) {
var _local4 = l2l.localToLocal(lgt.inner, target);
var _local5 = xDistance({x:shad._x, y:shad._y}, {x:_local4.x, y:_local4.y});
var _local7 = xDistance({x:shad._y, y:shad._y}, {x:_local4.y, y:_local4.y});
var _local3 = new flash.geom.Matrix();
_local3.identity();
_local3 = shad.inner.transform.matrix;
_local3.scale(1, 1);
_local3.c = _local5 / 480;
shad.inner.transform.matrix = _local3;
var _local6 = Math.sqrt(Math.pow(_local5, 2));
shad._alpha = 80 - _local6;
shad._yscale = 150 - (_local7 * 0.3);
}
function renderJack() {
jack.render();
}
function renderLevel() {
lamps = mdl.getLamps();
lamps._x = level.pt.getX();
lighting = mdl.getLighting();
lighting._x = level.pt.getX();
level._x = level.pt.getX();
level.Paralax1._x = level.Paralax1.startX - (level.pt.getX() / 10);
level.Paralax2._x = level.pt.getX() / 40;
level.Paralax3._x = (-level.pt.getX()) / 10;
}
function sortDepth(blood, bloodShadows) {
var _local3 = new Array();
_local3.push({mc:jack, y:jack._y});
_local3.push({mc:lighting, y:350});
_local3.push({mc:lamps, y:300});
var _local4 = 0;
while (_local4 < itemList.length) {
_local3.push({mc:itemList[_local4], y:itemList[_local4]._y});
_local4++;
}
_local4 = 0;
while (_local4 < blood.length) {
if (typeof(blood[_local4]) == "movieclip") {
_local3.push({mc:blood[_local4], y:bloodShadows[_local4]._y});
_local3.push({mc:bloodShadows[_local4], y:bloodShadows[_local4]._y - 9});
}
_local4++;
}
_local3.sortOn("y");
var _local2 = 0;
_local4 = 0;
while (_local4 < _local3.length) {
if (_local3[_local4].mc._name == "jack") {
mdl.jackShadow1.swapDepths(_local2);
_local2++;
mdl.jackShadow2.swapDepths(_local2);
_local2++;
} else {
_local3[_local4].mc.shadow.swapDepths(_local2);
_local2++;
_local3[_local4].mc.shadow2.swapDepths(_local2);
_local2++;
}
_local3[_local4].mc.swapDepths(_local2);
_local2++;
_local4++;
}
}
function getNearestLight(X, Y) {
var _local3 = mdl.getLights();
var _local5 = _local3[0]._x;
var _local6 = null;
var _local2 = 0;
while (_local2 < _local3.length) {
var _local4 = normalisedXDistance({x:X, y:Y}, {x:_local3[_local2]._x, y:_local3[_local2]._y});
if (_local4 < _local5) {
_local5 = _local4;
_local6 = _local3[_local2];
}
_local2++;
}
var _local9 = xDistance({x:X, y:Y}, {x:_local6._x, y:_local6._y});
return({mc:_local6, dist:_local9});
}
function normalisedXDistance(a, b) {
return(Math.sqrt(Math.pow(a.x - b.x, 2)));
}
function xDistance(a, b) {
return(a.x - b.x);
}
function distance(a, b) {
return(Math.sqrt(Math.pow(a.x - b.x, 2) + Math.pow(a.y - b.y, 2)));
}
function getRenderMC() {
return(renderMC);
}
function setModel(m) {
mdl = m;
}
var blurX = 20;
var blurY = 90;
var blurVec = 0;
var quality = 2;
static var l2l = new com.geoffpell.math.geometry.localToLocalClass();
}
Symbol 581 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local2 = arguments.callee.target;
var _local3 = arguments.callee.func;
return(_local3.apply(_local2, arguments));
};
_local2.target = obj;
_local2.func = func;
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 538 Button
on (release) {
gotoAndStop (58);
}
Symbol 550 Button
on (release) {
getURL ("http://www.addictinggames.com", _blank);
}