Frame 1
function lp() {
var _local3 = this.getBytesLoaded();
var _local2 = this.getBytesTotal();
if (_local3 == _local2) {
clearInterval(id);
play();
} else {
this.preloaderClip.mask_clip._xscale = (100 / _local2) * _local3;
}
}
stop();
var id = setInterval(this, "lp", 50);
Frame 3
var my_cm = new ContextMenu();
my_cm.hideBuiltInItems();
this.menu = my_cm;
Frame 10
stop();
this.startGame.onRelease = function () {
this._parent.play();
};
this.cn_btn.onRelease = function () {
getURL ("http://www.cartoonnetwork.co.uk/", "_blank");
};
Frame 20
stop();
this.playGame.onRelease = function () {
var _local2 = new Date().getTime();
loadMovieNum ("tracker.swf?" + _local2, 10000);
this._parent.play();
};
Frame 30
com.playerthree.ff.Game.reset();
stop();
this.game.init();
Frame 40
stopAllSounds();
this.final_score.score_text.text = com.playerthree.ff.Game.SCORE;
stop();
this.playGame.onRelease = function () {
gotoAndStop ("start");
};
this.thing_end.gotoAndStop(258);
Frame 50
stopAllSounds();
this.final_score.score_text.text = com.playerthree.ff.Game.SCORE;
stop();
this.playGame.onRelease = function () {
gotoAndStop ("start");
};
Symbol 383 MovieClip [__Packages.com.playerthree.ff.Main] Frame 0
class com.playerthree.ff.Main
{
static var _instance;
var nDrop, ax, char_mc, offScreenBmp, screenBmp, behind_char_mc, charDepth, mc, e_mc, score_mc, top_mc, boss_health_mc, bg_mc, foreground_mc, health_mc, bmpScr, power_mc, bgScroll, scoreNum, sPower, fNum, hurtTime, collTime, phaseInc, levelMode, x, y, xmov, ymov, frame, shakeTime, e_i, tx, ty, ay, ox, oy, drag_offset, phaseNum, enemyWaveNum, coll_y, healthNum, shakeDelay, isSw, endingTruck, isSwipe, isSmashing, isJumping, isPunching, isBlocking, isCombo, isPlaying, spawnTime, comboTime, outStr, charBmp, enBmp, gameRec, pt, projMgr, isAll, isTrucking, isAttack, isEnd, activeTank, currTruck, collisionBmp, isPowered, strengthNum, save_x, save_y, shakeIntID, projNum, phaseInterval, cRec, cPt, levelProgress, ppx, ppy, outText, isProj;
function Main () {
}
function performCombo() {
}
function get Drop() {
return(nDrop);
}
function stomp() {
com.playerthree.sound.PlaySound.playEvent("stomp");
}
static function getInstance() {
if (_instance == undefined) {
_instance = new com.playerthree.ff.Main();
}
return(_instance);
}
function goLoop() {
if (ax < 5) {
char_mc.gotoAndPlay("walk");
} else {
char_mc.gotoAndPlay("run");
}
}
function talkBack() {
}
function setScreens(offScreenBmp, screenBmp) {
this.offScreenBmp = offScreenBmp;
this.screenBmp = screenBmp;
}
function setMovieClip(mc) {
behind_char_mc = mc.createEmptyMovieClip("behind_char_mc", charDepth - 10);
this.mc = mc.createEmptyMovieClip("layer2_mc", com.playerthree.ff.Game.__get__Depth());
e_mc = mc.createEmptyMovieClip("enemy_container_mc", com.playerthree.ff.Game.__get__Foreground());
e_mc.blendMode = "layer";
}
function setTopBottom(mc, mc2, mc3) {
score_mc = mc;
top_mc = mc2;
boss_health_mc = mc3;
}
function setChar(mc, depth) {
char_mc = mc;
charDepth = depth;
}
function setBackground(mc) {
bg_mc = mc;
}
function setForeground(mc) {
foreground_mc = mc;
}
function setHealthBar(mc) {
health_mc = mc;
}
function setBmpScr(bmpScr) {
this.bmpScr = bmpScr;
}
function setPowerBar(mc) {
power_mc = mc;
}
function setScroller(bgScroll) {
this.bgScroll = bgScroll;
}
function setScore(n) {
scoreNum = scoreNum + n;
}
function init() {
sPower = (fNum = (hurtTime = (collTime = (phaseInc = (scoreNum = (levelMode = (x = (y = (xmov = (ymov = (frame = (shakeTime = (e_i = 0)))))))))))));
tx = (ty = (ax = (ay = (ox = (oy = (drag_offset = 0))))));
phaseNum = 0;
enemyWaveNum = ENEMY_WAVE;
coll_y = 0;
healthNum = HEALTH_INIT;
health_mc.healthClip._xscale = healthNum;
shakeDelay = SHAKE_DELAY;
isSw = (endingTruck = (isSwipe = (isSmashing = (isJumping = (isPunching = (isBlocking = (isCombo = (isPlaying = false))))))));
spawnTime = SPAWN_INIT_TIME;
comboTime = COMBO_FX_TIME;
dummyArr = [];
enemyArr = [];
outStr = "";
comboFuncArr.push(com.playerthree.ff.Combo.Smash);
comboFuncArr.push(com.playerthree.ff.Combo.EarthQuake);
comboFuncArr.push(com.playerthree.ff.Combo.PowerPunch);
var _local2 = 600;
var _local3 = 400;
charBmp = new flash.display.BitmapData(_local2, _local3, true, 0);
enBmp = new flash.display.BitmapData(_local2, _local3, true, 0);
gameRec = new flash.geom.Rectangle(0, 0, _local2, _local3);
pt = new flash.geom.Point(0, 0);
projMgr = com.playerthree.ff.ProjManager.getInstance();
projMgr.init([], DECAY);
com.playerthree.sound.PlaySound.playEvent("beat1");
isAll = (isTrucking = (isAttack = (isEnd = false)));
activeTank = null;
currTruck = null;
nDrop = null;
collisionBmp = null;
}
function update() {
var _local2 = getTimer();
ai();
keys();
if (collision()) {
react(true);
}
if (collision2()) {
react(false);
}
return(render());
}
function ai() {
var _local2 = mc._xmouse;
var _local3 = mc._ymouse;
spawnEnemy();
}
function keys() {
var _local2 = gc();
if (levelMode > 1) {
if (char_mc._x < (com.playerthree.ff.Game.CHAR_START_POS_X + 210)) {
xmov++;
}
} else if (char_mc._x < com.playerthree.ff.Game.CHAR_START_POS_X) {
xmov++;
} else if (char_mc._x > com.playerthree.ff.Game.CHAR_START_POS_X) {
xmov--;
}
if (levelMode < 2) {
ax = ax + 1.5;
} else {
ax = ax + 2.5;
}
var _local3 = DRAG;
var _local4 = DECAY;
ax = ax * _local4;
ay = ay * _local4;
if (ty != 0) {
ty = ty * _local4;
if (abs(ty) < 5) {
ty = 0;
}
}
var _local7 = tx;
var _local6 = ty;
tx = tx + (((_local3 * tx) - (_local3 * ox)) + ax);
ty = ty + (((_local3 * ty) - (_local3 * oy)) + ay);
ox = _local7;
oy = _local6;
if (_local2 != 0) {
if (!kHeld) {
kHeld = true;
isPlaying = true;
if (_local2 & (((BACK | RIGHT) | UP) | DOWN)) {
stopAttack();
isAttack = true;
}
if (isPowered) {
if (_local2 & SPACE) {
stopAttack();
isAttack = true;
char_mc.gotoAndPlay("smash");
strengthNum = 12;
projMgr.shockwave();
sPower = 0;
}
}
if (_local2 & BACK) {
strengthNum = 0;
var _local5;
if (ax < 5) {
_local5 = "walkblock";
} else {
_local5 = "runblock";
}
char_mc.gotoAndPlay(_local5);
}
if (_local2 & RIGHT) {
strengthNum = 2;
com.playerthree.sound.PlaySound.playEvent("swipe");
char_mc.gotoAndPlay("swipe");
}
if (_local2 & UP) {
strengthNum = 4;
char_mc.gotoAndPlay("jump");
}
if (_local2 & DOWN) {
strengthNum = 1;
char_mc.gotoAndPlay("punch");
}
if (_local2 & 128) {
projMgr.pulseStart();
}
}
} else if (kHeld) {
kHeld = (isPlaying = false);
}
if (char_mc._currentframe == 50) {
shake(10, true);
}
if (char_mc._currentframe == 123) {
shake(8);
}
if (char_mc._currentframe == 79) {
shake(4);
}
}
function attack() {
isAttack = true;
}
function stopAttack() {
isAttack = false;
isPunching = (isSwipe = (isSmashing = (isJumping = (isBlocking = false))));
}
function shake(n, isSmash) {
if (isSmash) {
isAll = true;
}
save_x = x;
save_y = y;
if (shakeIntID != null) {
clearInterval(shakeIntID);
}
shakeIntID = setInterval(this, "shakeScreen", 10, n);
}
function shakeScreen(n) {
if (shakeTime < 20) {
shakeTime++;
if (shakeTime == 2) {
ay = ay + n;
}
if (shakeTime == 12) {
ay = ay + (n / 2);
}
} else {
shakeTime = 0;
shakeDelay = SHAKE_DELAY;
clearInterval(shakeIntID);
}
}
function addEnemies(n) {
var _local2;
isSw = !isSw;
switch (n) {
case 0 :
_local2 = 50;
if (!isSw) {
newShipDummy();
projNum = projMgr.createProj(e_mc, 1);
projMgr.pulseStart();
} else {
newTank();
}
break;
case 1 :
_local2 = 30;
if (!isSw) {
newTank();
} else {
newBuggy();
}
break;
case 2 :
_local2 = 120;
newTruck();
newBuggy();
break;
case 3 :
_local2 = 50;
if (!isSw) {
newTank();
} else {
newShip();
}
break;
case 4 :
_local2 = 40;
if (!isSw) {
newShipDummy();
projNum = projMgr.createProj(e_mc, 2);
projMgr.pulseStart();
} else {
newBuggy();
}
break;
case 5 :
_local2 = 110;
var _local3 = newTruck();
if (!isSw) {
newShipDummy();
projNum = projMgr.createProj(e_mc, 1);
projMgr.pulseStart();
} else {
newBuggy();
}
break;
case 6 :
_local2 = 50;
if (!isSw) {
newShipDummy();
projNum = projMgr.createProj(e_mc, 2);
projMgr.pulseStart();
} else {
newBuggy();
newShipDummy();
projNum = projMgr.createProj(e_mc, 2);
projMgr.pulseStart();
}
break;
case 7 :
_local2 = 45;
if (!isSw) {
newShip();
} else {
newBuggy();
newShipDummy();
projNum = projMgr.createProj(e_mc, 2);
projMgr.pulseStart();
}
break;
case 8 :
_local2 = 30;
newTruck();
newShipDummy();
projNum = projMgr.createProj(e_mc, 1);
projMgr.pulseStart();
break;
case 9 :
_local2 = 30;
if (!isSw) {
newTank();
newShipDummy();
projNum = projMgr.createProj(e_mc, 2);
projMgr.pulseStart();
} else {
newShip();
newShipDummy();
projNum = projMgr.createProj(e_mc, 1);
projMgr.pulseStart();
}
break;
case 10 :
_local2 = 20;
if (!isSw) {
newTank();
newShipDummy();
projNum = projMgr.createProj(e_mc, 1);
projMgr.pulseStart();
} else {
newBuggy();
newShipDummy();
projNum = projMgr.createProj(e_mc, 2);
projMgr.pulseStart();
}
break;
case 11 :
_local2 = 60;
_local3 = newTruck();
newDropShip();
newShipDummy();
projNum = projMgr.createProj(e_mc, 1);
projMgr.pulseStart();
newBuggy();
}
return(_local2);
}
function spawnEnemy() {
var _local2 = 20;
if (spawnTime > 0) {
spawnTime--;
} else {
var _local3 = 3;
var _local4 = (_local3 * phaseNum) + levelMode;
_local2 = addEnemies(_local4);
spawnTime = random(30) + _local2;
}
}
function getEnemyClip(mc) {
e_i++;
return(mc.attachMovie("enemy", ("enemy" + e_i) + "_mc", com.playerthree.ff.Game.__get__Depth()));
}
function newDropShip() {
if (nDrop != null) {
return(false);
}
nDrop = new com.playerthree.ff.DropShip(getEnemyClip(e_mc));
com.playerthree.sound.PlaySound.playEvent("aircraft");
return(true);
}
function newTruck() {
if (isTrucking) {
return(false);
}
var _local2 = getEnemyClip(behind_char_mc);
currTruck = new com.playerthree.ff.Truck(_local2);
enemyArr.push(currTruck);
isTrucking = true;
if (phaseNum > 0) {
boss_health_mc._x = boss_health_mc._x + boss_health_mc._width;
}
return(true);
}
function newShipDummy(n) {
var _local2 = new com.playerthree.ff.ShipDummy(getEnemyClip(behind_char_mc), n);
enemyArr.push(_local2);
}
function newShip() {
var _local2 = getEnemyClip(e_mc);
var _local3 = new com.playerthree.ff.Ship(_local2);
enemyArr.push(_local3);
return(true);
}
function newBuggy() {
var _local3 = getEnemyClip(behind_char_mc);
var _local2 = new com.playerthree.ff.Buggy(_local3);
enemyArr.push(_local2);
return(true);
}
function newTank() {
if (dummyArr.length == 0) {
if (activeTank == null) {
var _local4 = new com.playerthree.ff.TankDummy(getEnemyClip(behind_char_mc), 50);
dummyArr.push(_local4);
var _local3 = new com.playerthree.ff.TankDummy(getEnemyClip(behind_char_mc), 200);
dummyArr.push(_local3);
var _local2 = new com.playerthree.ff.Tank(getEnemyClip(behind_char_mc));
activeTank = _local2;
enemyArr.push(_local2);
return(true);
}
return(false);
}
return(false);
}
function endTruck() {
endingTruck = true;
setScore(5000);
currTruck.isActive = false;
currTruck.anim_mc.play();
if (currTruck.mc.doom._visible == true) {
currTruck.mc.doom._visible = false;
}
var _local2;
var _local3 = currTruck.y;
switch (phaseNum) {
case 0 :
_local2 = "sue";
_local3 = _local3 + 100;
break;
case 1 :
_local2 = "john";
_local3 = _local3 + 60;
break;
case 2 :
_local2 = "reed";
_local3 = _local3 + 20;
break;
case 3 :
_local2 = "doom";
_local3 = _local3 - 60;
break;
default :
_local2 = "empty";
}
var _local5 = _local2 + "_release";
var _local4 = e_mc.attachMovie(_local5, _local5 + "_mc", com.playerthree.ff.Game.__get__Depth());
_local4._x = currTruck.x;
_local4._y = _local3;
if (phaseInterval != null) {
clearInterval(phaseInterval);
}
phaseInterval = setInterval(this, "phaseWait", 50);
com.playerthree.sound.PlaySound.playEvent("truckstop");
com.playerthree.sound.PlaySound.playEvent("stopbeat2");
com.playerthree.sound.PlaySound.playEvent("beat1");
}
function phaseWait() {
if (phaseInc < 20) {
if (phaseInc == 17) {
com.playerthree.sound.PlaySound.playEvent("bang");
}
if (phaseInc == 10) {
com.playerthree.sound.PlaySound.playEvent("bang");
}
phaseInc++;
} else {
phaseInc = 0;
com.playerthree.sound.PlaySound.playEvent("stopaircraft");
phaseNum++;
var _local3 = ((phaseNum < 3) ? (phaseNum + 1) : 3);
projMgr.NUM_PROJ = _local3;
currTruck.kill();
currTruck = null;
endingTruck = (isTrucking = false);
var _local2;
switch (phaseNum) {
case 1 :
_local2 = "sue";
break;
case 2 :
_local2 = "john";
break;
case 3 :
_local2 = "reed";
break;
case 4 :
_local2 = "doom";
}
top_mc[_local2].gotoAndPlay(2);
levelMode = 0;
boss_health_mc._visible = false;
clearInterval(phaseInterval);
if (phaseNum == 4) {
isEnd = true;
}
}
}
function react(isProj) {
collTime = 10;
if (!isProj) {
var _local11 = reactArr.length;
while (_local11-- , _local11 > -1) {
var _local7 = reactArr[_local11];
var _local2 = enemyArr[_local7];
if (_local2.typeNum == 3) {
xmov = xmov - 50;
}
if (((isPunching || (isJumping)) || (isSmashing)) || (isBlocking)) {
if (isBlocking) {
strengthNum = 0;
} else {
setScore(250);
}
if (!_local2.hurt(strengthNum)) {
com.playerthree.sound.PlaySound.playEvent("smash");
if (_local2.typeNum == 3) {
if (!endingTruck) {
endTruck();
}
} else {
powerBoost(isBlocking);
if (_local2.typeNum != 2) {
var _local4 = com.playerthree.ff.Game.__get__Depth();
var _local10 = "explosion" + _local4;
e_mc.attachMovie("explosion", _local10, _local4, {_x:_local2.x + 50, _y:_local2.y});
_local2.kill();
setScore(1000);
} else if (_local2.delayKill()) {
var _local4 = com.playerthree.ff.Game.__get__Depth();
var _local10 = "explosion" + _local4;
e_mc.attachMovie("explosion", _local10, _local4, {_x:_local2.x + 50, _y:_local2.y, _xscale:80, _yscale:80});
_local2.anim_mc.play();
_local2.xmov = 1;
}
}
}
} else if (isSwipe && (_local2.typeNum == 3)) {
if (!_local2.hurt(strengthNum)) {
if (!endingTruck) {
endTruck();
}
}
} else if (isSwipe && (_local2.typeNum == 4)) {
com.playerthree.sound.PlaySound.playEvent("shiphit");
projNum = projMgr.createProj(e_mc, 3);
projMgr.pulseStart();
if (!_local2.hurt(strengthNum)) {
var _local4 = com.playerthree.ff.Game.__get__Depth();
var _local10 = "explosion" + _local4;
e_mc.attachMovie("explosion", _local10, _local4, {_x:_local2.x + 50, _y:_local2.y, _xscale:60, _yscale:60});
_local2.kill();
setScore(750);
com.playerthree.sound.PlaySound.playEvent("bang2");
}
} else if (_local2.isActive) {
if (healthNum > 0) {
healthNum = healthNum - 10;
hurtTime = HURT_TIME;
com.playerthree.sound.PlaySound.playEvent("grunt");
}
_local2.isActive = false;
}
}
} else {
var _local11 = pReactArr.length;
while (_local11-- , _local11 > -1) {
var _local7 = pReactArr[_local11];
var _local8 = projMgr.__get__Arr();
var _local3 = _local8[_local7];
_local3.hurt();
var _local9 = (((((isPunching || (isSwipe)) || (isJumping)) || (isSmashing)) || (isBlocking)) ? true : false);
if (_local9) {
var _local5;
if (_local3.Type < 3) {
_local5 = (isBlocking ? 0 : 500);
powerBoost(isBlocking);
} else {
_local5 = 1250;
healthBoost();
}
setScore(_local5);
} else if (_local3.Type < 3) {
if (healthNum > 0) {
hurtTime = HURT_TIME;
healthNum = healthNum - 5;
com.playerthree.sound.PlaySound.playEvent("grunt");
}
}
if (_local3.Type < 3) {
explodomatic(_local3);
} else {
var _local6 = com.playerthree.ff.Game.__get__Foreground();
var _local13 = e_mc.attachMovie("power_exp", ("pow_" + _local6) + "_mc", _local6, {_x:_local3.x, _y:_local3.y});
}
}
}
}
function explodomatic(p) {
var _local2 = com.playerthree.ff.Game.__get__Foreground();
com.playerthree.sound.PlaySound.playEvent("bang2");
var _local5 = e_mc.attachMovie("explosion", ("pow_" + _local2) + "_mc", _local2, {_x:p.x, _y:p.y, _xscale:50, _yscale:50});
}
function powerBoost(b) {
var _local3;
_local3 = (b ? 5 : 10);
var _local2 = sPower + _local3;
if (_local2 >= 100) {
sPower = 100;
} else {
sPower = _local2;
}
}
function healthBoost() {
var _local3 = 10;
var _local2 = healthNum + _local3;
com.playerthree.sound.PlaySound.playEvent("boost");
if (_local2 >= 100) {
healthNum = 100;
} else {
healthNum = _local2;
}
}
function collision() {
var _local12;
var _local11;
var _local16;
var _local15;
_local12 = char_mc._x;
_local11 = char_mc._y;
_local16 = char_mc._x + char_mc._width;
_local15 = char_mc._y + char_mc._height;
var _local19 = false;
var _local17 = new Array();
var _local18 = projMgr.__get__Arr();
var _local13 = _local18.length;
if (projMgr.sNum > 0) {
return(false);
}
while (_local13-- , _local13 > -1) {
var _local4;
var _local3;
var _local6;
var _local5;
var _local2 = _local18[_local13];
_local4 = _local2.x;
_local3 = _local2.y;
_local6 = _local2.x + _local2.w;
_local5 = _local2.y + _local2.h;
if ((((_local5 < _local11) || (_local15 < _local3)) || (_local6 < _local12)) || (_local16 < _local4)) {
} else {
var _local10;
var _local8;
var _local9;
var _local7;
if (_local12 < _local4) {
_local10 = _local4;
_local8 = _local16;
} else {
_local10 = _local12;
_local8 = _local6;
}
if (_local11 < _local3) {
_local9 = _local3;
_local7 = _local15;
} else {
_local9 = _local11;
_local7 = _local5;
}
var _local14 = pixelCollision(_local8 - _local10, _local7 - _local9, char_mc, _local2.__get__Clip(), _local2.__get__Clip());
if (_local14 != null) {
_local19 = true;
_local17.push(_local13);
}
}
}
pReactArr = _local17;
return(_local19);
}
function collision2() {
if (collTime > 0) {
collTime--;
return(false);
}
var _local13;
var _local12;
var _local16;
var _local15;
_local13 = char_mc._x;
_local12 = char_mc._y;
_local16 = char_mc._x + char_mc._width;
_local15 = char_mc._y + char_mc._height;
var _local21 = false;
var _local20 = new Array();
var _local14 = enemyArr.length;
while (_local14-- , _local14 > -1) {
var _local4;
var _local3;
var _local8;
var _local7;
var _local2 = enemyArr[_local14];
if (!_local2.isHit) {
_local4 = _local2.x;
_local3 = _local2.y;
_local8 = _local2.x + _local2.w;
_local7 = _local2.y + _local2.h;
if ((((_local7 < _local12) || (_local15 < _local3)) || (_local8 < _local13)) || (_local16 < _local4)) {
} else {
var _local5;
var _local10;
var _local11;
var _local9;
if (_local13 < _local4) {
_local5 = _local4;
_local10 = _local16;
} else {
_local5 = _local13;
_local10 = _local8;
}
if (_local12 < _local3) {
_local11 = _local3;
_local9 = _local15;
} else {
_local11 = _local12;
_local9 = _local7;
}
var _local6 = pixelCollision(_local10 - _local5, _local9 - _local11, char_mc, _local2.hit_mc, _local2.mc);
if (_local6 != null) {
_local21 = true;
var _local17 = e_mc.attachMovie("pow", ("pow_" + _local5) + "_mc", com.playerthree.ff.Game.__get__Foreground(), {_x:_local6.x, _y:_local6.y});
_local20.push(_local14);
}
}
}
}
reactArr = _local20;
return(_local21);
}
function pixelCollision(w, h, mc1, mc2, mc3) {
var _local4 = 0;
var _local2 = new flash.display.BitmapData(500, 348, true, 16777215);
var _local6 = mc1.transform.matrix;
_local2.draw(mc1, _local6, new flash.geom.ColorTransform(1, 1, 1, 1, 255, -255, -255, _local4));
var _local5 = mc3.transform.matrix;
_local2.draw(mc2, _local5, new flash.geom.ColorTransform(1, 1, 1, 1, 255, 255, 255, _local4), "difference");
var _local3 = _local2.getColorBoundsRect(4294967295, 4278255615);
if (_local3.width == 0) {
return(null);
}
saveImg(_local2);
return(_local3);
}
function saveCollision(r, p) {
cRec = r;
cPt = p;
}
function saveImg(img) {
collisionBmp = img;
}
function render() {
levelProgress = (tx / 1000) >> 0;
if (levelProgress > 10) {
if (enemyWaveNum < 1) {
enemyWaveNum = ENEMY_WAVE + phaseNum;
levelMode++;
if (levelMode == 2) {
com.playerthree.sound.PlaySound.playEvent("stopbeat1");
com.playerthree.sound.PlaySound.playEvent("beat2");
com.playerthree.sound.PlaySound.playEvent("truck");
}
}
}
isPowered = ((sPower == 100) ? true : false);
var _local15;
if (!isAttack) {
if (ax < 5) {
var _local19 = ax;
var _local18 = -(ax < 0);
if (_local18 == 0) {
_local18 = 1;
}
frame = frame + sqrt(abs(_local19) / 2);
_local15 = int(frame % 40) + 1;
char_mc.gotoAndStop(_local15);
if (int(_local19) == 0) {
char_mc.gotoAndStop(1);
}
} else {
var _local19 = ax;
var _local18 = -(ax < 0);
if (_local18 == 0) {
_local18 = 1;
}
frame = frame + sqrt(abs(_local19) / 2);
_local15 = int(frame % 22) + 155;
char_mc.gotoAndStop(_local15);
if (int(_local19) == 0) {
char_mc.gotoAndStop(154);
}
}
}
if (_local15 != undefined) {
fNum++;
if (!(fNum % 12)) {
com.playerthree.sound.PlaySound.playEvent("stomp");
}
}
var _local28 = "render -\n";
var _local13;
var _local22;
var _local12;
var _local14;
_local13 = tx;
_local22 = ty;
e_mc._y = ty;
_local14 = _local22;
if (0 < (_local13 - MIN_XSCROLL)) {
_local12 = _local13 - MIN_XSCROLL;
_local13 = MIN_XSCROLL;
if (MAX_XSCROLL <= _local12) {
_local12 = MAX_XSCROLL;
drag_offset = 102;
_local13 = tx - MAX_XSCROLL;
}
} else {
_local12 = 0;
}
_local12 = int(_local12);
_local14 = int(_local14);
ppx = _local12;
ppy = _local14;
char_mc._y = ty + com.playerthree.ff.Game.CHAR_START_POS_Y;
drag_offset = ax;
char_mc._x = (_local13 + 1024) / 3;
char_mc._x = char_mc._x + xmov;
scrollBackground(_local12, _local14);
foreground_mc._x = (-_local12) * 2;
foreground_mc._y = _local14 * 2;
bgScroll.update(int(-_local12), int(ty));
bgScroll.render(offScreenBmp);
outText.text = outStr;
if (currTruck != null) {
if (boss_health_mc.go._currentframe == 1) {
boss_health_mc.go.gotoAndPlay(2);
}
boss_health_mc._visible = true;
var _local24 = (100 / com.playerthree.ff.Truck.BOSS_HEALTH) * currTruck.health;
boss_health_mc.mask_clip._xscale = 100 - _local24;
currTruck.update(offScreenBmp);
currTruck.render();
}
var _local6 = enemyArr.length;
while (_local6-- , _local6 > -1) {
var _local2 = enemyArr[_local6];
if (!_local2.isDead) {
if (isAll) {
if (!_local2.hurt(6)) {
com.playerthree.sound.PlaySound.playEvent("smash");
if (_local2.typeNum == 3) {
if (!endingTruck) {
endTruck();
}
} else {
powerBoost(isBlocking);
if (_local2.typeNum != 2) {
var _local4 = com.playerthree.ff.Game.__get__Depth();
var _local7 = "explosion" + _local4;
e_mc.attachMovie("explosion", _local7, _local4, {_x:_local2.x + 50, _y:_local2.y});
_local2.kill();
setScore(1000);
} else if (_local2.delayKill()) {
var _local4 = com.playerthree.ff.Game.__get__Depth();
var _local7 = "explosion" + _local4;
e_mc.attachMovie("explosion", _local7, _local4, {_x:_local2.x + 50, _y:_local2.y, _xscale:80, _yscale:80});
_local2.anim_mc.play();
_local2.xmov = 1;
}
}
}
}
_local2.update(offScreenBmp);
_local2.render();
} else {
if (_local2.typeNum == 1) {
activeTank = null;
}
if (!isTrucking) {
enemyWaveNum--;
}
enemyArr.splice(_local6, 1);
}
}
isAll = false;
var _local5 = dummyArr.length;
while (_local5-- , _local5 > -1) {
var _local3 = dummyArr[_local5];
if (!_local3.isDead) {
_local3.update(offScreenBmp);
_local3.render();
} else {
dummyArr.splice(_local5, 1);
}
}
isProj = projMgr.update(offScreenBmp);
projMgr.render();
health_mc.mask_clip._xscale = healthNum;
power_mc.mask_clip._xscale = sPower;
if (sPower == 100) {
if (power_mc.health_flash._currentframe == 1) {
power_mc.health_flash.gotoAndPlay("loop");
}
} else if (power_mc.health_flash._currentframe != 1) {
power_mc.health_flash.gotoAndStop(1);
}
var _local27 = char_mc.transform.matrix;
if (hurtTime > 0) {
hurtTime--;
var _local20;
var _local26;
var _local21;
var _local16;
_local16 = 1;
_local21 = _local16;
_local26 = _local21;
_local20 = _local26;
if (!(hurtTime % 2)) {
_local16 = 0.5;
}
if (hurtTime == 0) {
_local16 = 1;
}
var _local25 = new flash.geom.ColorTransform(_local20, _local26, _local21, _local16, 0, 0, 0, 0);
var _local23 = new flash.geom.Transform(char_mc);
_local23.colorTransform = _local25;
}
if (collisionBmp != undefined) {
offScreenBmp.copyPixels(collisionBmp, collisionBmp.rectangle, pt);
if (coll_y < 255) {
var _local17 = 1;
if (coll_y > 5) {
_local17 = 0.9;
}
coll_y++;
collisionBmp.colorTransform(collisionBmp.rectangle, new flash.geom.ColorTransform(1, 1, 1, _local17, 0, 0, 0, 0));
} else {
coll_y = 0;
}
}
screenBmp.copyPixels(offScreenBmp, gameRec, pt);
score_mc.score_text.text = scoreNum.toString();
if (healthNum < 1) {
endGame(false);
return(false);
}
if (isEnd) {
endGame(true);
return(false);
}
return(true);
}
function endGame(isSuccess) {
if (!isSuccess) {
com.playerthree.ff.Game.SCORE = scoreNum;
com.playerthree.ff.Game.SUCCESS = false;
} else {
com.playerthree.ff.Game.SUCCESS = true;
com.playerthree.ff.Game.SCORE = scoreNum + 5000;
}
}
function gc() {
var _local2 = 0;
if (kD(37) || (kD(65))) {
_local2 = _local2 + 1;
}
if (kD(39) || (kD(68))) {
_local2 = _local2 + 2;
}
if (kD(38) || (kD(87))) {
_local2 = _local2 + 4;
}
if (kD(40) || (kD(83))) {
_local2 = _local2 + 8;
}
if (kD(32)) {
_local2 = _local2 + 32;
}
if (kD(17)) {
_local2 = _local2 + 128;
}
return(_local2);
}
function scrollBackground(mx, my) {
bg_mc._x = mx / 16;
bg_mc._y = my / 16;
}
static var abs = Math.abs;
static var sqrt = Math.sqrt;
static var ENEMY_WAVE = 10;
static var HURT_TIME = 24;
static var MAX_YSCROLL = 512;
static var MIN_YSCROLL = 128;
static var MIN_XSCROLL = -1024;
static var MAX_XSCROLL = 1000000;
static var COMBO_FX_TIME = 30;
static var DRAG = 0.8;
static var DECAY = 0.75;
static var DOWN_RIGHT = 42;
static var DOWN = 8;
static var UP = 4;
static var RIGHT = 2;
static var BACK = 1;
static var SPACE = 32;
static var SHAKE_DELAY = 18;
static var SPAWN_INIT_TIME = 100;
static var HEALTH_INIT = 100;
var kD = Key.isDown;
static var COMBO_TIME = 8;
var kHeld = false;
var spaceHeld = false;
var comboFuncArr = new Array();
var comboRefArr = [[1, 2, 2], [1, 1, 1], [2, 2, 2, 2], [1, 2, 1]];
var comboArr = new Array();
var enemyArr = new Array();
var dummyArr = new Array();
var reactArr = new Array();
var pReactArr = new Array();
var inc = 0;
}
Symbol 384 MovieClip [__Packages.com.playerthree.ff.Scroller] Frame 0
class com.playerthree.ff.Scroller
{
var tileScroll, mapArr, tileSheet, bS, rc, pt, gBound, rows, cols, r, px, py, tx, ty;
function Scroller (w, h, mapArr, tileSheet, bitShift) {
tileScroll = new flash.display.BitmapData(w, h, true, 0);
this.mapArr = mapArr;
this.tileSheet = tileSheet;
bS = bitShift;
rc = new flash.geom.Rectangle(0, 0, 1 << bS, 1 << bS);
pt = new flash.geom.Point();
gBound = new flash.geom.Rectangle(0, 0, w, h);
rows = (w >> bS) + 2;
cols = (h >> bS) + 1;
r = (1 << bS) - 1;
px = (py = (tx = (ty = 0)));
}
function update(ax, ay) {
px = ax;
py = ay;
}
function get TileScroll() {
return(tileScroll);
}
function render(screenBmp) {
var _local4;
var _local2;
var _local3;
var _local9;
var _local8;
var _local7;
var _local11;
var _local6;
var _local5;
_local9 = px & r;
_local8 = py & r;
_local7 = px >> bS;
_local11 = py >> bS;
_local4 = 0;
while (_local4 < rows) {
_local6 = _local11 + _local4;
_local2 = 0;
while (_local2 < cols) {
_local5 = _local7 + _local2;
_local3 = mapArr[_local6][_local5 % 16] - 1;
rc.x = (_local3 % 16) << bS;
rc.y = int(_local3 / 16) << bS;
pt.x = ((_local2 << bS) - _local9) - 16;
pt.y = ((_local4 << bS) - _local8) - 16;
screenBmp.copyPixels(tileSheet, rc, pt);
_local2++;
}
_local4++;
}
}
}
Symbol 385 MovieClip [__Packages.com.playerthree.ff.Background] Frame 0
class com.playerthree.ff.Background
{
var screenRec, bgSource, bgSky, bgCity, b3d_mc, b3d_offset_x, cRec, bgWidth, bgWidthOff, gRec, sky_x, city_x, rc, pt, pt2, y_offset1, y_offset2, y_offset3, y_cityOffset, mah, xInc, skyOffset, offset1, offset2, offset3, cityOffset, xOff, ox, x, x2, lasty, y, ground3_x;
function Background (w, h, bgSky, bgCity, bgSource, b3d_mc) {
init();
screenRec = new flash.geom.Rectangle(0, 0, w, h);
this.bgSource = bgSource;
this.bgSky = bgSky;
this.bgCity = bgCity;
this.b3d_mc = b3d_mc;
b3d_offset_x = 2000;
cRec = new flash.geom.Rectangle(0, 0, bgCity.width, bgCity.height);
bgWidth = bgSource.width;
bgWidthOff = -bgWidth;
gRec = new flash.geom.Rectangle(0, 0, bgWidth, bgSource.height);
sky_x = (city_x = 0);
rc = new flash.geom.Rectangle(0, 0, bgSky.width, h);
pt = new flash.geom.Point(0, 0);
pt2 = new flash.geom.Point(0, 0);
}
function init() {
y_offset1 = 336;
y_offset2 = 308;
y_offset3 = 300;
y_cityOffset = 124;
mah = -1274;
xInc = 0;
skyOffset = 64;
offset1 = 3;
offset2 = 6;
offset3 = 10;
cityOffset = 48;
}
function update(x, y) {
if (isFirst) {
isFirst = false;
xOff = x;
ox = x;
}
ox = this.x;
this.x = x;
x2 = ox - x;
lasty = this.y;
this.y = y;
}
function render(screenBmp) {
var _local5 = "";
screenBmp.fillRect(screenRec, 0);
var _local8;
_local8 = x2 / offset1;
ground3_x = (((ground3_x + _local8) < bgWidth) ? (ground3_x + _local8) : 0);
var _local9;
_local9 = x2 / cityOffset;
city_x = (((city_x + _local9) < bgCity.width) ? (city_x + _local9) : 0);
var _local7;
_local7 = x2 / skyOffset;
sky_x = (((sky_x + _local7) < bgSky.width) ? (sky_x + _local7) : 0);
var _local6 = new flash.geom.Point(-sky_x, 50);
screenBmp.copyPixels(bgSky, rc, _local6);
_local5 = _local5 + ((" sky pt.x [ " + int(_local6.x)) + "]\n ");
_local6 = new flash.geom.Point((-sky_x) + bgSky.width, 50);
_local5 = _local5 + ((" sky pt.x2 [ " + int(_local6.x)) + "]\n");
screenBmp.copyPixels(bgSky, rc, _local6);
var _local3 = new flash.geom.Point(-city_x, y + y_cityOffset);
screenBmp.copyPixels(bgCity, cRec, _local3);
_local5 = _local5 + ((" city pt.x [ " + int(_local3.x)) + " ]\n ");
_local3.x = (-city_x) + bgCity.width;
screenBmp.copyPixels(bgCity, cRec, _local3);
_local5 = _local5 + (("city2 pt.x [ " + int(_local3.x)) + " ]\n");
var _local10 = new flash.geom.Point(-ground3_x, y + y_offset1);
screenBmp.copyPixels(bgSource, gRec, _local10);
_local10 = new flash.geom.Point((-ground3_x) + bgWidth, y + y_offset1);
screenBmp.copyPixels(bgSource, gRec, _local10);
_root.output.text = _local5;
}
var isFirst = true;
var firstNoise = true;
}
Symbol 386 MovieClip [__Packages.com.playerthree.ff.BitmapScore] Frame 0
class com.playerthree.ff.BitmapScore
{
var w, cw, h, s, rc, pt, bRc, col, bData, scoreArr;
function BitmapScore (bmpData) {
w = bmpData.width;
cw = w / CHARS;
h = bmpData.height;
s = new flash.display.BitmapData(w, h, true, 0);
rc = new flash.geom.Rectangle(0, 0, cw, h);
pt = new flash.geom.Point(0, 0);
bRc = new flash.geom.Rectangle(0, 0, w, h);
col = 10;
bData = bmpData;
drawScore(0);
}
function setScore(s) {
SCORE = SCORE + (s * MULTI);
}
function setAbsScore(s) {
SCORE = s;
}
static function toggleMulti() {
if (MULTI == 1) {
MULTI++;
} else {
MULTI = 1;
}
}
function resetScore() {
SCORE = 0;
}
function getScore() {
var _local2;
scoreArr = splitScore();
_local2 = scoreArr.length;
drawScore(_local2, scoreArr);
}
function getNumericScore() {
var _local1;
_local1 = SCORE;
return(_local1);
}
static function splitScore() {
var _local1;
_local1 = formatScore();
var _local2 = _local1.split("");
return(_local2);
}
static function formatScore() {
var _local5 = SCORE.toString();
var _local2 = "";
var _local4 = _local5.split("");
var _local1 = 3;
var _local3 = _local4.length;
_local3--;
while (-1 < _local3) {
if (_local1 > 0) {
_local1--;
} else {
_local1 = 2;
_local2 = _local2 + ",";
}
_local2 = _local2 + _local4[_local3];
}
return(_local2);
}
function drawScore(i, sArr) {
col = i;
s.fillRect(bRc, 0);
while ((--col) > -1) {
var _local3;
var _local2;
_local3 = sArr[(-col) + (i - 1)];
if (isNaN(Number(_local3))) {
_local2 = 10;
} else {
_local2 = Number(_local3);
}
rc.x = _local2 * cw;
pt.x = col * cw;
s.copyPixels(bData, rc, pt);
}
}
function get sc() {
return(s);
}
static var SCORE = 0;
static var CHARS = 11;
static var MULTI = 1;
}
Symbol 387 MovieClip [__Packages.com.playerthree.ff.ProjManager] Frame 0
class com.playerthree.ff.ProjManager
{
static var _instance;
var pArr, sNum, pNum, tm, projNum, NUM_PROJ, d, pulseTimer, pulseInc;
function ProjManager () {
}
static function getInstance() {
if (_instance == undefined) {
_instance = new com.playerthree.ff.ProjManager();
}
return(_instance);
}
function get Arr() {
return(pArr);
}
function shock(p) {
p.ax = -2;
p.ay = 1.5;
}
function shockwave() {
if (sNum > 0) {
return(false);
}
pNum = 0;
sNum = S_NUM;
return(true);
}
function pulseStart() {
if (pNum > 0) {
return(false);
}
pNum = P_NUM;
return(true);
}
function pulse(p) {
var _local8;
var _local7;
var _local5 = 200;
var _local6 = Math.PI;
if (p.Type == 2) {
tm = (getTimer() / 10) % 360;
var _local4;
var _local3;
_local4 = Math.sin(tm * 0.12) * 3;
_local3 = Math.cos(tm * 0.1) * 2;
p.x = p.x + _local4;
p.y = p.y + _local3;
} else {
p.ax = (com.playerthree.ff.Main.getInstance().phaseNum + 4) * -0.7;
p.ay = 0.2;
}
}
function createProj(mc, typeNum) {
var _local7 = typeNum;
projNum = NUM_PROJ;
if (pArr.length < 8) {
while ((--projNum) > -1) {
proj_i++;
if (_local7 != 3) {
com.playerthree.sound.PlaySound.playEvent("missile");
var _local2 = random(50) + 50;
var _local5 = mc.attachMovie("proj", ("proj" + proj_i) + "_mc", com.playerthree.ff.Game.__get__Depth(), {_xscale:_local2, _yscale:_local2});
var _local6 = 610 + random(80);
var _local4 = random(40) + 180;
} else {
var _local5 = mc.attachMovie("proj", ("proj" + proj_i) + "_mc", com.playerthree.ff.Game.__get__Depth());
var _local6 = 610 + random(80);
var _local4 = random(10) + 190;
}
var _local3 = new com.playerthree.ff.Projectile(_local6, _local4, _local5, _local7);
_local3.init();
pArr.push(_local3);
}
} else {
trace(" cant add projectiles ");
}
return(pArr.length);
}
function init(arr, d) {
if (arr != undefined) {
isActive = true;
this.d = d;
pArr = arr;
pNum = 0;
NUM_PROJ = 1;
pulseTimer = (pulseInc = 0);
} else {
trace(" err: no projectile array ");
}
}
function update(screenBmp) {
timer++;
if (!isActive) {
return(false);
}
var _local3 = pArr.length;
if (_local3 == 0) {
if ((sNum > 0) || (pNum > 0)) {
pNum = (sNum = 0);
}
}
while (_local3-- , _local3 > -1) {
var _local2 = pArr[_local3];
if (!_local2.isDead) {
if (pNum > 0) {
pNum--;
pulse(_local2);
}
if (sNum > 0) {
sNum--;
shock(_local2);
}
if (_local2.__get__Type() < 1) {
_local2.ax = (com.playerthree.ff.Main.getInstance().phaseNum + 4) * -0.7;
_local2.ay = 0.2;
}
if (_local2.y > 280) {
trace(" kill proj ");
_local2.hurt();
com.playerthree.ff.Main.getInstance().explodomatic(_local2);
}
var _local5 = _local2.x;
var _local4 = _local2.y;
_local2.x = _local2.x + (((d * _local2.x) - (d * _local2.ox)) + _local2.ax);
_local2.y = _local2.y + (((d * _local2.y) - (d * _local2.oy)) + _local2.ay);
_local2.ox = _local5;
_local2.oy = _local4;
_local2.update(screenBmp);
} else {
pArr.splice(_local3, 1);
}
}
return(true);
}
function render() {
var _local4 = false;
if (sNum > 0) {
_local4 = true;
}
var _local3 = pArr.length;
while (_local3-- , _local3 > -1) {
var _local2 = pArr[_local3];
_local2.render(_local4);
}
}
static var P_NUM = 100;
static var S_NUM = 40;
var timer = 0;
static var proj_i = 0;
var isActive = false;
}
Symbol 388 MovieClip [__Packages.com.playerthree.ff.Projectile] Frame 0
class com.playerthree.ff.Projectile
{
var x, ox, y, oy, typeNum, mc, bmp, w, h, pt, rc, health, isDead, ax, ay;
function Projectile (x, y, mc, typeNum) {
this.x = (ox = x);
this.y = (oy = y);
this.typeNum = typeNum;
this.mc = mc;
this.mc.gotoAndStop(typeNum + 1);
bmp = flash.display.BitmapData.loadBitmap("miss");
w = mc._width;
h = mc._height;
pt = new flash.geom.Point(x, y);
rc = new flash.geom.Rectangle(0, 0, 100, 100);
health = 0;
isDead = false;
}
function get Clip() {
return(mc);
}
function get Type() {
return(typeNum);
}
function init() {
ax = (ay = 0);
var _local2 = (com.playerthree.ff.Main.getInstance().phaseNum + 4) * -1;
ax = Math.random() * _local2;
if (typeNum == 3) {
ax = -2;
}
}
function hurt() {
if ((--health) < 0) {
kill();
}
}
function update(screenBmp) {
pt.x = x;
pt.y = y;
if (x < -200) {
kill();
}
}
function kill() {
mc.removeMovieClip();
isDead = true;
}
function render(isRot) {
if (isRot) {
var _local2 = Math.atan2(y, x);
mc._rotation = (_local2 * 180) / Math.PI;
}
mc._x = x;
mc._y = y;
}
}
Symbol 389 MovieClip [__Packages.com.playerthree.sound.PlaySound] Frame 0
class com.playerthree.sound.PlaySound
{
static var MC;
function PlaySound () {
}
static function toggleSound() {
if (!IS_MUTE) {
IS_MUTE = true;
stopSound();
} else {
IS_MUTE = false;
playEvent("song");
}
return(IS_MUTE);
}
static function setMC(clip) {
MC = clip;
}
static function playEvent(sStr) {
if (!IS_MUTE) {
MC.gotoAndPlay(sStr);
}
}
static function playStream() {
}
static function stopSound() {
stopAllSounds();
}
static var SOUNDINC = 0;
static var IS_MUTE = false;
}
Symbol 390 MovieClip [__Packages.com.playerthree.ff.Game] Frame 0
class com.playerthree.ff.Game extends MovieClip
{
static var SUCCESS;
var isFirst, inPlay, root_mc, endTime, endFrame, thing_mc, attachMovie, screenWidth, screenHeight, b3d_mc, bgScroll, m, screenBmp, offScreenBmp, screen_mc, layer0_mc, createEmptyMovieClip, layer1_mc, layer2_mc, layer3_mc, isEnter, tickInterval, bmpScr, endInterval, fpsText, createTextField, ms, fps;
function Game () {
super();
isFirst = true;
inPlay = false;
root_mc = this;
}
static function reset() {
SCORE = 0;
SUCCESS = false;
}
static function get Depth() {
return(DEPTH++);
}
static function get Foreground() {
return(FOREGROUND++);
}
function init() {
initSound();
endTime = 0;
endFrame = 0;
var _local4 = Foreground;
thing_mc = attachMovie("thing", "thing_mc", _local4, {_xscale:CHAR_SCALE, _yscale:CHAR_SCALE, _y:CHAR_START_POS_Y, _x:CHAR_START_POS_X});
thing_mc.blendMode = "layer";
screenWidth = 600;
screenHeight = 1400;
b3d_mc = attachMovie("building_3d", "buidling_3d_mc", Depth, {_x:400, _y:100});
bgScroll = new com.playerthree.ff.Background(screenWidth, screenHeight, flash.display.BitmapData.loadBitmap("manhattan"), flash.display.BitmapData.loadBitmap("city"), flash.display.BitmapData.loadBitmap("ground"), b3d_mc);
inPlay = true;
m = com.playerthree.ff.Main.getInstance();
m.setChar(thing_mc, _local4);
m.setMovieClip(this);
screenBmp = new flash.display.BitmapData(screenWidth, screenHeight, false, 0);
offScreenBmp = new flash.display.BitmapData(screenWidth, screenHeight, false, 0);
screen_mc = root_mc.createEmptyMovieClip("screen_mc", Depth);
screen_mc.attachBitmap(screenBmp, 0);
m.setScreens(offScreenBmp, screenBmp);
m.setScroller(bgScroll);
layer0_mc = createEmptyMovieClip("layer0_mc", Depth);
layer1_mc = createEmptyMovieClip("layer1_mc", Depth);
layer2_mc = createEmptyMovieClip("layer2_mc", Foreground);
var _local2 = 20;
while (_local2-- , _local2 > -1) {
var _local3 = 10000 * _local2;
layer2_mc.attachMovie("foreground_test", ("building" + _local2) + "_mc", Foreground, {_x:_local3});
}
layer3_mc = createEmptyMovieClip("layer3_mc", Foreground);
var _local7 = layer3_mc.attachMovie("top_bar", "top_bar_mc", Foreground);
var _local5 = layer3_mc.attachMovie("score_box", "score_box_mc", Foreground, {_y:348});
var _local9 = layer3_mc.attachMovie("health_bar", "health_bar_mc", Foreground, {_y:366, _x:87});
var _local6 = layer3_mc.attachMovie("health_bar", "health2_bar_mc", Foreground, {_y:367, _x:444});
var _local8 = layer3_mc.attachMovie("boss_health", "boss_health_clip", Foreground, {_x:284, _y:52, _visible:false});
m.setHealthBar(_local9);
m.setPowerBar(_local6);
m.setForeground(layer2_mc);
m.setTopBottom(_local5, _local7, _local8);
m.init();
isEnter = true;
onEnterFrame();
}
function initSound() {
var _local2 = attachMovie("sound", "sound_mc", Depth);
com.playerthree.sound.PlaySound.setMC(_local2);
}
function start() {
if (tickInterval != null) {
clearInterval(tickInterval);
}
tickInterval = setInterval(this, "tick", 24);
}
function tick() {
if (isFirst) {
isFirst = false;
}
var _local2 = getTimer();
if (inPlay) {
m.update();
}
calcFps();
bmpScr.getScore();
}
function onEnterFrame() {
if (isEnter) {
if (isFirst) {
isFirst = false;
}
var _local2 = getTimer();
if (inPlay) {
inPlay = m.update();
} else {
endGameInterval();
}
bmpScr.getScore();
}
}
function endGameInterval() {
isEnter = false;
if (endInterval != null) {
clearInterval(endInterval);
}
endInterval = setInterval(this, "ending", 100);
}
function ending() {
if (!SUCCESS) {
if (endTime < 30) {
if (endFrame < 15) {
endFrame++;
}
endTime++;
thing_mc.gotoAndStop(endFrame + 244);
} else {
clearInterval(endInterval);
endTime = 0;
endFrame = 0;
root_mc._parent.gotoAndStop("gameover");
}
} else if (endTime < 30) {
endTime++;
if (endFrame < 13) {
endFrame++;
}
thing_mc.gotoAndStop(endFrame + 260);
var _local2 = m.__get__Drop();
_local2.anim_mc.gotoAndStop(endTime + 145);
} else {
clearInterval(endInterval);
endTime = 0;
endFrame = 0;
root_mc._parent.gotoAndPlay("won");
}
}
function initFps() {
fpsText = createTextField("fps_txt", Foreground, 0, 0, 100, 100);
ms = getTimer();
fps = 0;
}
function calcFps() {
if ((getTimer() - 1000) > ms) {
ms = getTimer();
fpsText.text = (fps >> 0).toString();
fps = 0;
} else {
fps++;
}
}
function initBitmapScore() {
var _local3 = new com.playerthree.ff.BitmapScore(flash.display.BitmapData.loadBitmap("numbers_sheet"));
var _local2 = createEmptyMovieClip("scoreClip", Foreground);
_local2._x = 376;
_local2._y = 346;
_local2.attachBitmap(_local3.__get__sc(), Foreground);
_local2._xscale = (_local2._yscale = 50);
return(_local3);
}
static var DEPTH = 10;
static var FOREGROUND = 100000;
static var CHAR_SCALE = 45;
static var CHAR_START_POS_X = 60;
static var CHAR_START_POS_Y = 220;
static var SCORE = 0;
}
Symbol 391 MovieClip [__Packages.com.playerthree.ff.Enemy] Frame 0
class com.playerthree.ff.Enemy
{
var typeNum, typeStr, mc, anim_mc, hit_mc, x, y, hitTimer, isHit, isActive, delayTime, w, h, idStr, xmov, health, isDead, pt, rc;
function Enemy (mc, typeNum) {
id++;
this.typeNum = typeNum;
switch (typeNum) {
case 0 :
typeStr = "";
break;
case 1 :
typeStr = "tank" + id;
break;
case 2 :
typeStr = "tankDummy" + id;
break;
case 3 :
typeStr = "";
break;
case 4 :
typeStr = "";
break;
default :
typeStr = "def";
}
this.mc = mc;
getClip(typeNum);
anim_mc = mc.anim;
if (typeNum == 3) {
if (com.playerthree.ff.Main.getInstance().phaseNum != 3) {
mc.doom._visible = false;
mc.captive.gotoAndStop(com.playerthree.ff.Main.getInstance().phaseNum + 1);
if (mc.captive.arrow._currentframe == 1) {
mc.captive.arrow.gotoAndPlay(2);
}
} else {
mc.captive._visible = false;
}
}
hit_mc = mc.hitarea;
hit_mc._visible = false;
if (typeNum != 6) {
x = 620;
}
y = random(100) + 120;
this.mc._x = x;
this.mc._y = y;
hitTimer = HIT_TIMER;
isHit = false;
isActive = true;
delayTime = 0;
w = hit_mc._width;
h = hit_mc._height;
idStr = "enemy_" + id;
xmov = 10;
health = 10;
isDead = false;
pt = new flash.geom.Point(x, y);
rc = new flash.geom.Rectangle(0, 0, 40, 40);
}
function getClip(n) {
switch (n) {
case 1 :
mc.gotoAndStop(4);
break;
case 2 :
mc.gotoAndStop(6);
break;
case 3 :
mc.gotoAndStop(5);
break;
case 4 :
mc.gotoAndStop(7);
break;
case 6 :
mc.gotoAndStop(9);
}
}
function delayKill() {
if (delayTime > 0) {
return(false);
}
delayTime = DELAY_TIME;
return(true);
}
function kill() {
isDead = true;
mc.removeMovieClip();
}
function hurt(num) {
health = health - num;
if (health > 0) {
if (typeNum != 3) {
if (typeNum == 4) {
anim_mc.gotoAndPlay(53);
}
anim_mc.play();
} else {
com.playerthree.sound.PlaySound.playEvent("hit");
}
isHit = true;
return(true);
}
anim_mc.play();
return(false);
}
function update(screenBmp) {
if (delayTime > 0) {
delayTime--;
if (delayTime == 1) {
kill();
}
}
if (isHit) {
if (hitTimer > 0) {
hitTimer--;
if (hitTimer == (HIT_TIMER - 1)) {
isActive = true;
xmov = xmov * -1;
}
} else {
hitTimer = HIT_TIMER;
xmov = xmov * -1;
isHit = false;
}
}
if (typeNum == 3) {
if (mc.captive.arrow._currentframe == 1) {
mc.captive.arrow.gotoAndPlay(2);
}
}
x = x - xmov;
pt.x = x;
pt.y = y;
if (x < -200) {
kill();
}
}
function copyBmp(ebmp) {
pt.x = x;
pt.y = y;
}
function render() {
mc._x = x;
mc._y = y;
}
static var HIT_TIMER = 20;
static var DELAY_TIME = 22;
static var id = 0;
}
Symbol 392 MovieClip [__Packages.com.playerthree.ff.DropShip] Frame 0
class com.playerthree.ff.DropShip extends com.playerthree.ff.Enemy
{
var y, health, xmov, x;
function DropShip (mc) {
super(mc, type);
trace(" new DropShip ");
y = 20;
health = 2;
mc._y = y;
xmov = 0;
x = 320;
mc._x = x;
}
static var type = 6;
}
Symbol 393 MovieClip [__Packages.com.playerthree.ff.Truck] Frame 0
class com.playerthree.ff.Truck extends com.playerthree.ff.Enemy
{
var y, truckLife, truckTime, health, truckInterval, xmov;
function Truck (mc) {
super(mc, type);
trace(" new Truck ");
y = 180;
truckLife = 100;
truckTime = 0;
health = BOSS_HEALTH;
startMove();
}
function startMove() {
if (truckInterval != undefined) {
clearInterval(truckInterval);
}
truckInterval = setInterval(this, "move", 25);
}
function move() {
truckTime++;
if (truckTime < 100) {
xmov = 1;
} else if (truckTime < 200) {
xmov = -0.1;
} else if (truckTime < 300) {
xmov = 0.1;
} else {
truckTime = 100;
}
}
function stopTruck() {
trace(" STOP TRUCK ");
if (truckInterval != undefined) {
clearInterval(truckInterval);
}
}
static var type = 3;
static var BOSS_HEALTH = 18;
}
Symbol 394 MovieClip [__Packages.com.playerthree.ff.Tank] Frame 0
class com.playerthree.ff.Tank extends com.playerthree.ff.Enemy
{
var y, health, x;
function Tank (mc) {
super(mc, type);
y = 222;
health = 3;
mc._y = y;
x = 720;
}
static var type = 1;
}
Symbol 395 MovieClip [__Packages.com.playerthree.ff.Combo] Frame 0
class com.playerthree.ff.Combo
{
function Combo () {
}
static function Smash() {
trace("Smash");
}
static function EarthQuake() {
trace("EarthQuake");
}
static function PowerPunch() {
trace("PowerPunch");
}
}
Symbol 396 MovieClip [__Packages.com.playerthree.ff.ShipDummy] Frame 0
class com.playerthree.ff.ShipDummy extends com.playerthree.ff.Enemy
{
var y, health, x;
function ShipDummy (mc, n) {
super(mc, type);
y = 60;
health = 0;
mc._y = y;
if (n < 1) {
mc.gotoAndStop(1);
} else {
mc.gotoAndStop(8);
}
x = 620;
}
static var type = 5;
}
Symbol 397 MovieClip [__Packages.com.playerthree.ff.Ship] Frame 0
class com.playerthree.ff.Ship extends com.playerthree.ff.Enemy
{
var y, health, x;
function Ship (mc) {
super(mc, type);
y = 160;
health = 3;
mc._y = y;
x = 620;
}
static var type = 4;
}
Symbol 398 MovieClip [__Packages.com.playerthree.ff.Buggy] Frame 0
class com.playerthree.ff.Buggy extends com.playerthree.ff.Enemy
{
var y, health, x, xmov;
function Buggy (mc) {
super(mc, type);
y = 272;
health = 0;
mc._y = y;
x = 720;
xmov = 15;
}
static var type = 2;
}
Symbol 399 MovieClip [__Packages.com.playerthree.ff.TankDummy] Frame 0
class com.playerthree.ff.TankDummy extends com.playerthree.ff.Enemy
{
var xmov, x, y;
function TankDummy (mc, scale) {
super(mc, type);
if (scale > 100) {
mc.gotoAndStop(2);
xmov = xmov * 0.9;
x = 660;
} else {
mc.gotoAndStop(3);
xmov = xmov * 0.8;
x = 600;
}
var _local5 = (((scale / 100) > 1) ? 1 : -1);
y = 222;
mc._y = y;
}
static var type = 2;
}
Symbol 12 MovieClip Frame 40
stop();
Symbol 13 MovieClip Frame 60
stop();
Symbol 28 MovieClip Frame 1
stop();
Symbol 58 MovieClip Frame 44
gotoAndPlay ("loopingpoint");
Symbol 59 MovieClip Frame 1
stop();
Symbol 70 MovieClip Frame 1
stop();
Symbol 70 MovieClip Frame 42
gotoAndPlay (2);
Symbol 81 MovieClip Frame 1
stop();
Symbol 81 MovieClip Frame 23
stop();
Symbol 92 MovieClip [mini_drop] Frame 52
stop();
Symbol 92 MovieClip [mini_drop] Frame 104
stop();
Symbol 95 MovieClip Frame 145
gotoAndPlay ("loop");
Symbol 96 MovieClip [enemy] Frame 1
stop();
Symbol 138 MovieClip [thing] Frame 40
gotoAndPlay ("walk");
Symbol 138 MovieClip [thing] Frame 41
com.playerthree.ff.Main.getInstance().attack();
Symbol 138 MovieClip [thing] Frame 48
com.playerthree.ff.Main.getInstance().isSmashing = true;
Symbol 138 MovieClip [thing] Frame 50
com.playerthree.sound.PlaySound.playEvent("punch");
Symbol 138 MovieClip [thing] Frame 71
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().isSmashing = false;
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 72
com.playerthree.ff.Main.getInstance().attack();
Symbol 138 MovieClip [thing] Frame 76
com.playerthree.ff.Main.getInstance().isPunching = true;
Symbol 138 MovieClip [thing] Frame 78
com.playerthree.sound.PlaySound.playEvent("punch");
Symbol 138 MovieClip [thing] Frame 102
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().isPunching = false;
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 103
com.playerthree.ff.Main.getInstance().attack();
Symbol 138 MovieClip [thing] Frame 119
com.playerthree.ff.Main.getInstance().attack();
com.playerthree.ff.Main.getInstance().isJumping = true;
Symbol 138 MovieClip [thing] Frame 121
com.playerthree.sound.PlaySound.playEvent("punch");
Symbol 138 MovieClip [thing] Frame 132
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().isJumping = false;
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 133
com.playerthree.ff.Main.getInstance().attack();
com.playerthree.ff.Main.getInstance().isBlocking = true;
Symbol 138 MovieClip [thing] Frame 153
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 176
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 177
com.playerthree.ff.Main.getInstance().attack();
com.playerthree.ff.Main.getInstance().isBlocking = true;
Symbol 138 MovieClip [thing] Frame 199
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().isBlocking = false;
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 200
com.playerthree.ff.Main.getInstance().attack();
com.playerthree.ff.Main.getInstance().isBlocking = true;
Symbol 138 MovieClip [thing] Frame 201
Symbol 138 MovieClip [thing] Frame 239
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().isBlocking = false;
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 244
com.playerthree.ff.Main.getInstance().attack();
Symbol 138 MovieClip [thing] Frame 260
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 138 MovieClip [thing] Frame 261
com.playerthree.ff.Main.getInstance().attack();
com.playerthree.ff.Main.getInstance().isSwipe = true;
Symbol 138 MovieClip [thing] Frame 273
com.playerthree.ff.Main.getInstance().isSwipe = false;
Symbol 138 MovieClip [thing] Frame 277
com.playerthree.ff.Main.getInstance().stopAttack();
com.playerthree.ff.Main.getInstance().goLoop();
Symbol 154 MovieClip Frame 1
stop();
Symbol 154 MovieClip Frame 25
gotoAndPlay ("loop");
Symbol 160 MovieClip [pow] Frame 12
this.removeMovieClip();
Symbol 178 MovieClip [proj] Frame 1
stop();
Symbol 188 MovieClip Frame 1
stop();
Symbol 188 MovieClip Frame 20
stop();
Symbol 189 MovieClip Frame 1
stop();
Symbol 189 MovieClip Frame 20
stop();
Symbol 190 MovieClip Frame 1
stop();
Symbol 190 MovieClip Frame 20
stop();
Symbol 193 MovieClip Frame 1
stop();
Symbol 193 MovieClip Frame 20
stop();
Symbol 202 MovieClip [sue_release] Frame 71
stop();
Symbol 219 MovieClip [explosion] Frame 17
this.removeMovieClip();
Symbol 226 MovieClip [reed_release] Frame 71
this.removeMovieClip();
Symbol 233 MovieClip [john_release] Frame 71
this.removeMovieClip();
Symbol 257 MovieClip [sound] Frame 1
stop();
Symbol 257 MovieClip [sound] Frame 24
stop();
Symbol 257 MovieClip [sound] Frame 59
stop();
Symbol 257 MovieClip [sound] Frame 76
stop();
Symbol 257 MovieClip [sound] Frame 97
stop();
Symbol 257 MovieClip [sound] Frame 108
stop();
Symbol 257 MovieClip [sound] Frame 119
stop();
Symbol 257 MovieClip [sound] Frame 127
stop();
Symbol 257 MovieClip [sound] Frame 157
stop();
Symbol 257 MovieClip [sound] Frame 192
stop();
Symbol 257 MovieClip [sound] Frame 261
stop();
Symbol 257 MovieClip [sound] Frame 310
stop();
Symbol 257 MovieClip [sound] Frame 328
stop();
Symbol 257 MovieClip [sound] Frame 336
stop();
Symbol 257 MovieClip [sound] Frame 352
stop();
Symbol 257 MovieClip [sound] Frame 362
stop();
Symbol 257 MovieClip [sound] Frame 365
stop();
Symbol 257 MovieClip [sound] Frame 391
stop();
Symbol 257 MovieClip [sound] Frame 428
stop();
Symbol 257 MovieClip [sound] Frame 454
stop();
Symbol 272 MovieClip [explosion2] Frame 26
this.removeMovieClip();
Symbol 283 MovieClip [doom_release] Frame 61
stop();
Symbol 291 MovieClip [power_exp] Frame 9
this.removeMovieClip();
Symbol 304 MovieClip Frame 50
stop();
Symbol 365 MovieClip [game] Frame 1
#initclip 18
Object.registerClass("game", com.playerthree.ff.Game);
#endinitclip