Frame 2
function startLoop() {
if ((!loopStarted) and (_root.BtnMute._currentframe <= 2)) {
MusicPack[0].stop();
MusicPack[0].start();
SoundPack[0].start(0.08, 9999);
loopStarted = true;
}
}
function stopLoop() {
if (loopStarted) {
MusicPack[0].stop();
loopStarted = false;
}
}
var SoundPack = new Array();
Music0 = new Sound();
Music0.attachSound("SFX-Diesel");
SoundPack.push(Music0);
var MusicPack = new Array();
Music0 = new Sound();
Music0.attachSound("Track01");
Music0.onSoundComplete = function () {
MusicPack[1].start();
};
MusicPack.push(Music0);
Music0 = new Sound();
Music0.attachSound("Track02");
Music0.onSoundComplete = function () {
MusicPack[0].start();
};
MusicPack.push(Music0);
var loopStarted = false;
_root.gotoAndStop("Init");
Frame 5
fscommand ("allowscale", "false");
fscommand ("showmenu", "false");
var WheelSize = 40;
var BodySize = 50;
var SpringSize = 50;
var StrutySize = 60;
var energy = 100;
var Gravity = 0.8;
var counter = 0;
var shake = 0;
var maxTankCount = 2;
var globalY = int(Road._y);
var Time = 0;
var Objs = int((Math.random() * 7) + 6);
var cObjs = 3;
var Score = 0;
var scoreJeep = 1500;
var scoreTank = 3000;
var scorePeople = 1000;
var scoreBuilding = 4000;
var scoreDebris = 50;
var speed = 0;
var impactSpeed = 5;
var saddam = false;
var saddamDead = false;
var saddamRange = -20000;
var moneyJeep = 1500;
var moneyTank = 3000;
var moneyPeople = 1000;
var moneyBuilding = 4000;
var moneyDebris = 50;
var isMute = false;
var maxLevel = 6;
var level = 1;
var isPaused = false;
var char = new Object({wheel:1, body:1, engine:3, health:100, money:0});
var upgradeEngine = [0, 50000, 150000];
var upgradeBody = [0, 50000, 150000];
var upgradeWheel = [0, 50000, 150000];
stopLoop();
var goMC = _root.createEmptyMovieClip("gameOverMC_", 64);
goMC.removeMovieClip();
var goMC = _root.createEmptyMovieClip("gameOverMC_", 65);
goMC.removeMovieClip();
this.gotoAndStop("MainMenu");
Frame 10
intro.onRelease = function () {
_root.gotoAndStop("MainMenu");
};
MusicPack[0].stop();
MusicPack[0].start(0, 999999);
stop();
Frame 15
fscommand ("allowscale", "false");
fscommand ("showmenu", "false");
MusicPack[1].stop();
MusicPack[1].start(6.8, 999999);
MusicPack[1].setVolume(100);
stop();
Frame 20
Instruction.btnStart.onRelease = function () {
_root.gotoAndStop("MainGame");
};
Frame 25
function setText() {
if (_root.char.engine < 3) {
Upgrade.enginePrice.text = "$ " + upgradeEngine[_root.char.engine];
} else {
Upgrade.enginePrice.text = "Maxed Out";
}
if (_root.char.body < 3) {
Upgrade.bodyPrice.text = "$ " + upgradeBody[_root.char.body];
} else {
Upgrade.bodyPrice.text = "Maxed Out";
}
if (_root.char.wheel < 3) {
Upgrade.wheelPrice.text = "$ " + upgradeWheel[_root.char.wheel];
} else {
Upgrade.wheelPrice.text = "Maxed Out";
}
}
Upgrade.Money.text = char.money;
setText();
Upgrade.bodyUpgrades.gotoAndStop(_root.char.body);
Upgrade.wheelUpgrades.gotoAndStop(_root.char.wheel);
Upgrade.engineUpgrades.gotoAndStop(_root.char.engine);
Upgrade.btnUpgrade1.onRelease = function () {
if ((_root.char.engine < 3) and (char.money >= upgradeEngine[_root.char.engine])) {
char.money = char.money - upgradeEngine[_root.char.engine];
_root.char.engine++;
}
Upgrade.engineUpgrades.gotoAndStop(_root.char.engine);
Upgrade.Money.text = char.money;
setText();
};
Upgrade.btnUpgrade2.onRelease = function () {
if ((_root.char.body < 3) and (char.money >= upgradeBody[_root.char.body])) {
char.money = char.money - upgradeBody[_root.char.body];
_root.char.body++;
}
Upgrade.bodyUpgrades.gotoAndStop(_root.char.body);
Upgrade.Money.text = char.money;
setText();
};
Upgrade.btnUpgrade3.onRelease = function () {
if ((_root.char.wheel < 3) and (char.money >= upgradeWheel[_root.char.wheel])) {
char.money = char.money - upgradeWheel[_root.char.wheel];
_root.char.wheel++;
}
Upgrade.wheelUpgrades.gotoAndStop(_root.char.wheel);
Upgrade.Money.text = char.money;
setText();
};
Upgrade.BtnBack.onRelease = function () {
_root.gotoAndStop("MainGame");
_root.level++;
Time = 18000;
saddam = false;
saddamDead = false;
saddamRange = -20000 + (_root.level * 2500);
char.health = 100;
};
stop();
Frame 30
function addDebris(xx, yy, n) {
_root.shake = 10;
var _local4 = 0;
while (_local4 < n) {
_root.Score = _root.Score + int(_root.scoreDebris * Math.random());
var _local3 = _root.Trotoar.attachMovie("Debris", "Debris" + _root.counter, _root.Trotoar.getNextHighestDepth());
_root.counter++;
_local3.gotoAndStop(int(Math.random() * _local3._totalframes) + 1);
_local3._x = xx;
_local3._y = yy;
_local3.dx = (Math.random() * 21) - 10;
_local3.dy = (-Math.random()) * 20;
_local3.dr = Math.random() * 30;
_local3._delay = 100;
_local3.onEnterFrame = function () {
if (!_root.isPaused) {
if (this._y < _root.globalY) {
this._x = this._x + this.dx;
this._y = this._y + this.dy;
this.dy = this.dy + 0.5;
this._rotation = this._rotation + this.dr;
} else {
this._alpha = this._delay--;
}
if ((this._delay--) <= 0) {
this.removeMovieClip();
}
}
};
_local4++;
}
}
function hitBuilding() {
if ((_root.SoundPack[1].position == 0) or (_root.SoundPack[1].position >= (_root.SoundPack[1].duration / 2))) {
_root.SoundPack[1].start();
}
}
function hitTank() {
if ((_root.SoundPack[2].position == 0) or (_root.SoundPack[2].position >= (_root.SoundPack[2].duration / 2))) {
_root.SoundPack[2].start();
}
}
function getDamage() {
var _local1 = char.wheel;
return(int(_local1));
}
function bulletDamage() {
var _local1 = 5 - char.body;
return(_local1);
}
function down() {
if (typeof(_root.gameOverMC) != "movieclip") {
var _local3 = _root.createEmptyMovieClip("gameOverMC", 65);
_local3._delay = 50;
_local3.beginFill(0, 100);
_local3.lineStyle(5, 0, 100);
_local3.moveTo(0, 0);
_local3.lineTo(640, 0);
_local3.lineTo(640, 480);
_local3.lineTo(0, 480);
_local3.endFill();
_local3._alpha = 0;
var _local5 = _local3.createTextField("my_txt", 1, 0, 100, 640, 100);
_local5.multiline = true;
_local5.wordWrap = true;
var _local4 = new TextFormat();
_local4.color = 16777215 /* 0xFFFFFF */;
_local4.font = "Font 1";
_local5.embedFonts = true;
_local5.selectable = false;
_local4.align = "center";
_local4.size = 36;
_local4.bold = true;
_local4.italic = true;
_local5.text = "Failed!";
_local5.setTextFormat(_local4);
_local3.onEnterFrame = function () {
_root.gameOverMC_.removeMovieClip();
this._alpha = 100 - (this._delay * 2);
if (_root.BtnMute._currentframe <= 2) {
MusicPack[0].setVolume(this._delay * 2);
}
if ((this._delay--) <= 0) {
gotoAndStop ("GameOver");
gotoAndStop ("MainGame");
}
};
}
}
function finish() {
if (typeof(_root.gameOverMC_) != "movieclip") {
var _local3 = _root.createEmptyMovieClip("gameOverMC_", 64);
if (level >= 11) {
_local3._delay = 150;
} else {
_local3._delay = 30;
}
_local3.onEnterFrame = function () {
if ((this._delay--) <= 0) {
this.removeMovieClip();
if (typeof(_root.gameOverMC) != "movieclip") {
var _local3 = _root.createEmptyMovieClip("gameOverMC", 65);
_local3._delay = 50;
_local3.beginFill(0, 100);
_local3.lineStyle(5, 0, 100);
_local3.moveTo(0, 0);
_local3.lineTo(640, 0);
_local3.lineTo(640, 480);
_local3.lineTo(0, 480);
_local3.endFill();
_local3._alpha = 0;
var _local5 = _local3.createTextField("my_txt", 1, 0, 100, 640, 100);
_local5.multiline = true;
_local5.wordWrap = true;
var _local4 = new TextFormat();
_local4.color = 16777215 /* 0xFFFFFF */;
_local4.font = "Font 1";
_local5.embedFonts = true;
_local5.selectable = false;
_local4.align = "center";
_local4.size = 36;
_local4.bold = true;
_local4.italic = true;
if (level < maxLevel) {
_local5.text = "Next Level!";
} else {
_local5.text = "Finish";
}
_local5.setTextFormat(_local4);
_local3.onEnterFrame = function () {
this._alpha = 100 - (this._delay * 2);
if (_root.BtnMute._currentframe <= 2) {
MusicPack[0].setVolume(this._delay * 2);
}
if ((this._delay--) <= 0) {
level++;
this.removeMovieClip();
if (level <= maxLevel) {
gotoAndStop ("GameOver");
gotoAndStop ("MainGame");
} else {
gotoAndStop ("TheEnd");
}
}
};
}
}
};
}
}
function timeCounter() {
if (!_root.isPaused) {
var _local2 = int(((_root.Time++) / 30) / 60);
var _local3 = int((_root.Time / 30) % 60);
if (_local2 < 10) {
_local2 = "0" + _local2;
}
if (_local3 < 10) {
_local3 = "0" + _local3;
}
_root.Panel.time.text = (_local2 + ":") + _local3;
_root.Panel.point.text = level;
_root.Panel.speed.text = int(speed * 2.5);
}
}
fscommand ("allowscale", "false");
fscommand ("showmenu", "false");
startLoop();
maxLevel = Trotoar._totalframes;
var globalY = int(Road._y);
_root.healthBar.gotoAndStop(100);
if (_root.isMute) {
BtnMute.gotoAndStop(3);
} else {
BtnMute.gotoAndStop(1);
}
Trotoar.gotoAndStop(level);
var goMC = _root.createEmptyMovieClip("gameOverMC", 65);
goMC._alpha = 100;
goMC._delay = 100;
goMC.beginFill(0, 100);
goMC.lineStyle(5, 0, 100);
goMC.moveTo(0, 0);
goMC.lineTo(640, 0);
goMC.lineTo(640, 480);
goMC.lineTo(0, 480);
goMC.endFill();
goMC.onEnterFrame = function () {
if (_root.BtnMute._currentframe <= 2) {
MusicPack[0].setVolume(100 - this._delay);
}
this._delay = this._delay - 5;
this._alpha = Math.abs(this._delay);
if (this._delay <= 0) {
this.removeMovieClip();
CarExample.main(controller);
}
};
MusicPack[2].stop();
MusicPack[2].start(0, 99999999);
BtnMenu.onRelease = function () {
PanelBackMenu._visible = true;
};
PanelBackMenu.BtnYes.onRelease = function () {
delete controller.onEnterFrame;
_root.gotoAndStop("Init");
};
PanelBackMenu.BtnNo.onRelease = function () {
PanelBackMenu._visible = false;
};
BtnRestart.onRelease = function () {
gotoAndStop ("GameOver");
gotoAndStop ("MainGame");
};
stop();
Instance of Symbol 262 MovieClip "timeController" in Frame 30
onClipEvent (enterFrame) {
_root.timeCounter();
}
Instance of Symbol 611 MovieClip "BtnMute" in Frame 30
on (rollOver) {
this.nextFrame();
}
on (rollOut) {
this.prevFrame();
}
on (release) {
if (this._currentframe <= 2) {
this.gotoAndStop(this._currentframe + 2);
_root.MusicPack[0].setVolume(0);
_root.isMute = true;
} else {
this.gotoAndStop(this._currentframe - 2);
_root.MusicPack[0].setVolume(100);
_root.isMute = false;
}
}
Instance of Symbol 614 MovieClip "BtnPause" in Frame 30
on (rollOver) {
this.nextFrame();
}
on (rollOut) {
this.prevFrame();
}
on (release) {
if (this._currentframe <= 2) {
this.gotoAndStop(this._currentframe + 2);
} else {
this.gotoAndStop(this._currentframe - 2);
}
}
Instance of Symbol 630 MovieClip "PanelBackMenu" in Frame 30
onClipEvent (load) {
this._visible = false;
}
Instance of Symbol 634 MovieClip "GameOver" in Frame 30
onClipEvent (load) {
this._visible = false;
}
Instance of Symbol 637 MovieClip "Pause" in Frame 30
onClipEvent (load) {
this._visible = false;
}
Frame 40
MusicPack[0].setVolume(100);
Instance of Symbol 26 MovieClip in Symbol 27 MovieClip Frame 1
onClipEvent (load) {
this._visible = false;
}
Symbol 70 MovieClip Frame 20
stop();
Symbol 79 Button
on (release) {
getURL ("http://jarkey.net", "_blank");
}
Symbol 80 Button
on (release) {
getURL ("http://jarkey.net/playgames/enigmatica_game.htm", "_blank");
}
Symbol 81 Button
on (release) {
getURL ("http://jarkey.net/playgames/bloons-player-pack-1_game.htm", "_blank");
}
Symbol 82 Button
on (release) {
getURL ("http://jarkey.net/playgames/hover-tanks-2_game.htm", "_blank");
}
Symbol 83 Button
on (release) {
getURL ("http://jarkey.net/playgames/super-doggy_game.htm", "_blank");
}
Symbol 84 Button
on (release) {
getURL ("http://jarkey.net/playgames/death-point_game.htm", "_blank");
}
Symbol 85 Button
on (release) {
getURL ("http://jarkey.net/playgames/goal-shoot_game.htm", "_blank");
}
Symbol 86 MovieClip Frame 1
stop();
MochiAd.showPreloaderAd({id:"44fbb44f73051745", res:"640x480"});
Symbol 720 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("1.5");
}
static function showPreloaderAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local27);
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = function (width, height) {
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local25 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local25);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local24 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local24);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb) {
cb = parseInt(cb);
var _local4 = this._callbacks[cb];
if (!_local4) {
return(undefined);
}
delete this._callbacks[cb];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local7 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local7._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local7.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local7._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
if (_local7._url.indexOf("http") != 0) {
options.no_page = true;
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local9 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local9;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local9);
_local6.lc = _local5;
_local4.lc = _local9;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
return(_local4);
}
}
Symbol 721 MovieClip [__Packages.CarExample] Frame 0
class CarExample
{
var engine, wheelA, wheelB, p1, ang, angDefault, KeyOld;
function CarExample () {
engine = new org.cove.flade.DynamicsEngine();
engine.setDamping(1);
engine.setGravity(0, 0.5);
engine.setSurfaceBounce(0.1);
engine.setSurfaceFriction(0.1);
engine.addSurface(new org.cove.flade.surfaces.RectangleTile(0, _root.globalY + 30, 999999999999999, 60));
for (var _local18 in _root.Trotoar) {
var _local3 = _root.Trotoar[_local18];
var _local4 = 1;
var _local8 = [];
while (typeof(_local3["dot" + _local4]) == "movieclip") {
var _local6 = {x:_local3["dot" + _local4]._x, y:_local3["dot" + _local4]._y};
_local3.localToGlobal(_local6);
_local6 = {x:(0 + _local6.x) - _root.perimeter._x, y:_local6.y};
_local8.push(_local6);
_local4++;
}
_local4 = 1;
while (_local4 < _local8.length) {
var _local7 = new org.cove.flade.surfaces.LineSurface(_local8[_local4 - 1].x, _local8[_local4 - 1].y, _local8[_local4].x, _local8[_local4].y);
if (_local3._name == "Finish") {
_local7.onContact = function () {
this.setActiveState(false);
_root.finish();
};
}
if (_local3._name.substr(0, 5) == "Water") {
_local7.onContact = function () {
_root.down();
};
}
_local7.clip = _local3;
if (_local3._name.substr(0, 12) == "DownAnimated") {
_local7.onContact = function () {
this.p1.y++;
this.p2.y++;
this.p3.y++;
this.p4.y++;
this.collNormal.y++;
this.sideNormal.y++;
this.clip._y++;
};
}
if (_local3._name.substr(0, 16) == "DownAnimatedSlow") {
_local7.onContact = function () {
var _local2 = 0.4;
this.p1.y = this.p1.y + _local2;
this.p2.y = this.p2.y + _local2;
this.p3.y = this.p3.y + _local2;
this.p4.y = this.p4.y + _local2;
this.collNormal.y = this.collNormal.y + _local2;
this.sideNormal.y = this.sideNormal.y + _local2;
this.clip._y = this.clip._y + _local2;
};
}
engine.addSurface(_local7);
_local4++;
}
_local4 = 1;
while (typeof(_local3["rec" + _local4]) == "movieclip") {
var _local10 = (_local3[("rec" + _local4) + "b"]._x - _local3["rec" + _local4]._x) * 2;
var _local9 = (_local3[("rec" + _local4) + "b"]._y - _local3["rec" + _local4]._y) * 2;
_local10 = _local3["rec" + _local4]._width;
_local9 = _local3["rec" + _local4]._height;
var _local6 = {x:_local3["rec" + _local4]._x, y:_local3["rec" + _local4]._y};
_local3.localToGlobal(_local6);
_local6 = {x:(0 + _local6.x) - _root.perimeter._x, y:_local6.y};
var _local12 = new org.cove.flade.surfaces.RectangleTile(_local6.x, _local6.y, _local10, _local9);
engine.addSurface(_local12);
_local4++;
}
_local4 = 1;
while (typeof(_local3["cir" + _local4]) == "movieclip") {
var _local10 = _local3[("cir" + _local4) + "b"]._x - _local3["cir" + _local4]._x;
var _local9 = _local3[("cir" + _local4) + "b"]._y - _local3["cir" + _local4]._y;
var _local11 = Math.sqrt((_local10 * _local10) + (_local9 * _local9));
_local11 = _local3["cir" + _local4]._width / 2;
var _local6 = {x:_local3["cir" + _local4]._x, y:_local3["cir" + _local4]._y};
_local3.localToGlobal(_local6);
_local6 = {x:(0 + _local6.x) - _root.perimeter._x, y:_local6.y};
var _local12 = new org.cove.flade.surfaces.CircleTile(_local6.x, _local6.y, _local11);
engine.addSurface(_local12);
_local4++;
}
}
var _local21 = 70;
var _local27 = 180;
var _local22 = _local27 - _local21;
var _local16 = _local21 + (_local22 / 2);
var _local15 = 300;
wheelA = new org.cove.flade.primitives.Wheel(_local21, _local15, _root.WheelSize, 1);
engine.addPrimitive(wheelA);
wheelB = new org.cove.flade.primitives.Wheel(_local27, _local15, _root.WheelSize, 2);
engine.addPrimitive(wheelB);
var _local17 = new org.cove.flade.composites.SpringBox(_local16, _local15, _local22, 15, engine);
var _local33 = new org.cove.flade.constraints.SpringConstraint(wheelA, _local17.p3);
engine.addConstraint(_local33);
var _local32 = new org.cove.flade.constraints.SpringConstraint(wheelB, _local17.p2);
engine.addConstraint(_local32);
var _local29 = new org.cove.flade.constraints.SpringConstraint(wheelA, _local17.p0);
engine.addConstraint(_local29);
var _local28 = new org.cove.flade.constraints.SpringConstraint(wheelB, _local17.p1);
engine.addConstraint(_local28);
p1 = new org.cove.flade.primitives.CircleParticle(_local16, _local15 - 50, 2, 2);
engine.addPrimitive(p1);
var _local31 = new org.cove.flade.constraints.SpringConstraint(wheelA, p1);
engine.addConstraint(_local31);
var _local30 = new org.cove.flade.constraints.SpringConstraint(wheelB, p1);
engine.addConstraint(_local30);
ang = new org.cove.flade.constraints.AngularConstraint(wheelA, p1, wheelB);
engine.addConstraint(ang);
angDefault = ang.targetTheta;
var _local20 = new org.cove.flade.primitives.RectangleParticle(_local16, _local15 - 20, 1, 1);
engine.addPrimitive(_local20);
var _local26 = new org.cove.flade.constraints.SpringConstraint(p1, _local20);
_local26.setRestLength(7);
engine.addConstraint(_local26);
var _local19 = new org.cove.flade.primitives.RectangleParticle(_local16, _local15 - 10, 1, 1);
engine.addPrimitive(_local19);
var _local25 = new org.cove.flade.constraints.SpringConstraint(_local20, _local19);
_local25.setRestLength(7);
engine.addConstraint(_local25);
var _local23 = new org.cove.flade.primitives.RectangleParticle(_local16, _local15 - 5, 7, 7);
engine.addPrimitive(_local23);
var _local24 = new org.cove.flade.constraints.SpringConstraint(_local19, _local23);
_local24.setRestLength(7);
engine.addConstraint(_local24);
}
function run() {
var _local8 = 1 + _root.char.engine;
var _local21 = _root.globalY;
_root.speed = Math.abs(wheelA.curr.x - wheelA.prev.x);
var _local20 = false;
if (Key.isDown(Key.getCode()) and (Key.getCode() != KeyOld)) {
KeyOld = Key.getCode();
_local20 = true;
} else if (!Key.isDown(KeyOld)) {
KeyOld = 0;
}
if (Key.isDown(40) and (_root.char.health > 0)) {
wheelA.rp.vs = -_local8;
wheelB.rp.vs = -_local8;
wheelB.rp.setMaxTorque(_local8);
} else if (Key.isDown(38) and (_root.char.health > 0)) {
wheelA.rp.vs = _local8;
wheelB.rp.vs = _local8;
_root.rightIdle = 300;
wheelB.rp.setMaxTorque(_local8);
} else {
wheelA.rp.vs = 0;
wheelB.rp.vs = 0;
}
var _local13 = wheelB.curr.x - wheelA.curr.x;
var _local12 = wheelB.curr.y - wheelA.curr.y;
var _local19 = Math.sqrt((_local13 * _local13) + (_local12 * _local12));
var _local15 = Math.acos(_local12 / _local19);
if (_local13 < 0) {
var _local18 = ((_local15 * 180) / Math.PI) + 90;
} else {
var _local18 = (((-_local15) * 180) / Math.PI) + 90;
}
if (Key.isDown(37) and (_root.char.health > 0)) {
_local13 = Math.sin((_local18 * Math.PI) / 180);
if (isNaN(_local13)) {
_local13 = 1;
}
_local12 = Math.cos((_local18 * Math.PI) / 180);
if (isNaN(_local12)) {
_local12 = 1;
}
_local13 = _local13 * Math.abs(wheelA.rp.vs);
_local12 = _local12 * Math.abs(wheelA.rp.vs);
wheelA.curr.x = wheelA.curr.x - _local13;
wheelA.curr.y = wheelA.curr.y + _local12;
wheelB.curr.x = wheelB.curr.x + _local13;
wheelB.curr.y = wheelB.curr.y - _local12;
}
if (Key.isDown(39) and (_root.char.health > 0)) {
_local13 = Math.sin((_local18 * Math.PI) / 180);
if (isNaN(_local13)) {
_local13 = 1;
}
_local12 = Math.cos((_local18 * Math.PI) / 180);
if (isNaN(_local12)) {
_local12 = 1;
}
_local13 = _local13 * Math.abs(wheelA.rp.vs);
_local12 = _local12 * Math.abs(wheelA.rp.vs);
wheelA.curr.x = wheelA.curr.x + _local13;
wheelA.curr.y = wheelA.curr.y - _local12;
wheelB.curr.x = wheelB.curr.x - _local13;
wheelB.curr.y = wheelB.curr.y + _local12;
}
if (((_root.rightIdle--) <= 0) or (_root.char.health <= 0)) {
_root.Arrow.gotoAndPlay(2);
_root.rightIdle = 150;
}
var _local5 = engine.primitives[6].curr.x - engine.primitives[6].prev.x;
var _local3 = _root.People;
var _local16 = _root.Trotoar;
for (var _local11 in _local3) {
var _local4 = _local3[_local11];
_local4.body.stop();
}
var _local9 = _root.Road;
var _local7 = _root.Tree;
_root.perimeter._x = int(330 - engine.primitives[6].curr.x);
_local5 = _root.perimeter._oldx - _root.perimeter._x;
if (isNaN(_local5)) {
_local5 = 0;
}
_root.perimeter._oldx = _root.perimeter._x;
_local9._x = _local9._x - _local5;
_local7._x = _local7._x - _local5;
_local16._x = _local16._x - _local5;
if (_local9._x > 0) {
_local9._x = -1270;
}
if (_local9._x < -1271) {
_local9._x = -1;
}
_local7._x = _local7._x - (_local5 * 1.25);
if (_local7._x > 0) {
_local7._x = -1270;
}
if (_local7._x < -1271) {
_local7._x = -1;
}
var _local6 = 242 - p1.curr.y;
_root.perimeter._y = _local6;
_local9._y = 428 + _local6;
_local7._y = 281.65 + _local6;
_local16._y = _local6;
_root.bgMove._x = _root.bgMove._x - (_local5 * 0.2);
_root.bgMove._y = 263.3 + (_local6 * 0.5);
engine.timeStep();
var _local4 = _root.container.attachMovie("BodyCar" + _root.char.body, "BodyCar", 0);
_local4._x = p1.curr.x + _root.perimeter._x;
_local4._y = (p1.curr.y - 20) + _local6;
_local4._rotation = _root.sudut + 10;
_local4._xscale = (_local4._yscale = _root.BodySize);
_local4 = _root.container.attachMovie("Wheel" + _root.char.wheel, "wheelA", 2);
_local4._x = wheelA.curr.x + _root.perimeter._x;
_local4._y = wheelA.curr.y + _local6;
_local13 = wheelA.rp.curr.x;
_local12 = wheelA.rp.curr.y;
var _local17 = Math.sqrt((_local13 * _local13) + (_local12 * _local12));
_local4._width = (_local4._height = _local17 * 2);
_local15 = Math.acos(_local12 / _local17);
if (_local13 < 0) {
var _local18 = ((_local15 * 180) / Math.PI) + 0;
} else {
var _local18 = ((-_local15) * 180) / Math.PI;
}
_local4._rotation = _local18;
var _local10 = _root.container.attachMovie(("Wheel" + _root.char.wheel) + "b", "wheelAb", 1);
_local10._x = _local4._x;
_local10._y = _local4._y;
_local10._xscale = _local4._xscale;
_local10._yscale = _local4._yscale;
_local10._rotation = _local4._rotation;
_local4 = _root.container.attachMovie("Wheel" + _root.char.wheel, "wheelB", 4);
_local4._x = wheelB.curr.x + _root.perimeter._x;
_local4._y = wheelB.curr.y + _local6;
_local13 = wheelB.rp.curr.x;
_local12 = wheelB.rp.curr.y;
_local17 = Math.sqrt((_local13 * _local13) + (_local12 * _local12));
_local4._width = (_local4._height = _local17 * 2);
_local15 = Math.acos(_local12 / _local17);
if (_local13 < 0) {
var _local18 = ((_local15 * 180) / Math.PI) + 0;
} else {
var _local18 = ((-_local15) * 180) / Math.PI;
}
_local4._rotation = _local18;
_local10 = _root.container.attachMovie(("Wheel" + _root.char.wheel) + "b", "wheelAb", 3);
_local10._x = _local4._x;
_local10._y = _local4._y;
_local10._xscale = _local4._xscale;
_local10._yscale = _local4._yscale;
_local10._rotation = _local4._rotation;
_root.healthBar.gotoAndStop(_root.char.health);
if (((_root.Time <= 0) or (_root.char.health <= 0)) and (!_root.GameOver._visible)) {
_root.char.health = -1;
_root.addDebris(int(wheelA.curr.x + 210), 388, 20);
_root.addDebris(int(wheelB.curr.x + 210), 388, 20);
wheelA.curr.y = 8888;
wheelB.curr.y = 8888;
_root.GameOver._visible = true;
_root.GameOver._alpha = 0;
var _local14 = _root.createEmptyMovieClip("gameOverMC", 65);
_local14._delay = 60;
_root.GameOver._visible = true;
_local14.onEnterFrame = function () {
this._delay = this._delay - 0.5;
_root.GameOver._alpha = 60 - int(this._delay);
if (this._delay <= 0) {
this.removeMovieClip();
}
};
_root.GameOver.onRelease = function () {
this._visible = false;
_root.gotoAndStop("Init");
delete this.onRelease;
};
}
if ((_root.shake--) > 0) {
_root._x = (Math.random() * _root.shake) - (_root.shake / 2);
_root._y = (Math.random() * _root.shake) - (_root.shake / 2);
} else {
_root._x = (_root._y = 0);
}
}
function order(a, b) {
var _local2 = a._name;
var _local1 = b._name;
if (_local2 < _local1) {
return(-1);
}
if (_local2 > _local1) {
return(1);
}
return(0);
}
static function main(mc) {
var c = new CarExample();
mc.onEnterFrame = function () {
var _local3 = false;
if (Key.isDown(Key.getCode()) and (Key.getCode() != this.KeyOld)) {
this.KeyOld = Key.getCode();
_local3 = true;
} else if (!Key.isDown(this.KeyOld)) {
this.KeyOld = 0;
}
if (Key.isDown(80) and _local3) {
if (_root.BtnPause._currentframe <= 2) {
_root.BtnPause.gotoAndStop(3);
} else {
_root.BtnPause.gotoAndStop(1);
}
}
if (_root.BtnPause._currentframe <= 2) {
_root.isPaused = false;
} else {
_root.isPaused = true;
}
_root.Pause._visible = _root.isPaused;
if (!_root.isPaused) {
c.run();
}
};
}
}
Symbol 722 MovieClip [__Packages.org.cove.flade.DynamicsEngine] Frame 0
class org.cove.flade.DynamicsEngine
{
var primitives, surfaces, constraints, gravity, coeffRest, coeffFric, coeffDamp;
function DynamicsEngine () {
primitives = new Array();
surfaces = new Array();
constraints = new Array();
gravity = new org.cove.flade.util.Vector(0, 1);
coeffRest = 1.5;
coeffFric = 0.01;
coeffDamp = 0.99;
}
function addPrimitive(p) {
primitives.push(p);
}
function addSurface(s) {
surfaces.push(s);
}
function addConstraint(c) {
constraints.push(c);
}
function paintSurfaces() {
var _local2 = 0;
while (_local2 < surfaces.length) {
surfaces[_local2].paint();
_local2++;
}
}
function paintPrimitives() {
var _local2 = 0;
while (_local2 < primitives.length) {
primitives[_local2].paint();
_local2++;
}
}
function paintConstraints() {
var _local2 = 0;
while (_local2 < constraints.length) {
constraints[_local2].paint();
_local2++;
}
}
function timeStep() {
verlet();
satisfyConstraints();
checkCollisions();
}
function setSurfaceBounce(kfr) {
coeffRest = 1 + kfr;
}
function setSurfaceFriction(f) {
coeffFric = f;
}
function setDamping(d) {
coeffDamp = d;
}
function setGravity(gx, gy) {
gravity.x = gx;
gravity.y = gy;
}
function verlet() {
var _local2 = 0;
while (_local2 < primitives.length) {
primitives[_local2].verlet(this);
_local2++;
}
}
function satisfyConstraints() {
var _local2 = 0;
while (_local2 < constraints.length) {
constraints[_local2].resolve();
_local2++;
}
}
function checkCollisions() {
var _local4 = 0;
while (_local4 < surfaces.length) {
var _local3 = surfaces[_local4];
if (_local3.getActiveState()) {
var _local2 = 0;
while (_local2 < primitives.length) {
primitives[_local2].checkCollision(_local3, this);
_local2++;
}
}
_local4++;
}
}
}
Symbol 723 MovieClip [__Packages.org.cove.flade.util.Vector] Frame 0
class org.cove.flade.util.Vector
{
var x, y;
function Vector (px, py) {
x = px;
y = py;
}
function setTo(px, py) {
x = px;
y = py;
}
function copy(v) {
x = v.x;
y = v.y;
}
function dot(v) {
return((x * v.x) + (y * v.y));
}
function cross(v) {
return((x * v.y) - (y * v.x));
}
function plus(v) {
x = x + v.x;
y = y + v.y;
return(this);
}
function plusNew(v) {
return(new org.cove.flade.util.Vector(x + v.x, y + v.y));
}
function minus(v) {
x = x - v.x;
y = y - v.y;
return(this);
}
function minusNew(v) {
return(new org.cove.flade.util.Vector(x - v.x, y - v.y));
}
function mult(s) {
x = x * s;
y = y * s;
return(this);
}
function multNew(s) {
return(new org.cove.flade.util.Vector(x * s, y * s));
}
function distance(v) {
var _local3 = x - v.x;
var _local2 = y - v.y;
return(Math.sqrt((_local3 * _local3) + (_local2 * _local2)));
}
function normalize() {
var _local2 = Math.sqrt((x * x) + (y * y));
x = x / _local2;
y = y / _local2;
return(this);
}
function magnitude() {
return(Math.sqrt((x * x) + (y * y)));
}
function project(b) {
var _local5 = dot(b);
var _local4 = (b.x * b.x) + (b.y * b.y);
var _local3 = new org.cove.flade.util.Vector(0, 0);
_local3.x = (_local5 / _local4) * b.x;
_local3.y = (_local5 / _local4) * b.y;
return(_local3);
}
}
Symbol 724 MovieClip [__Packages.org.cove.flade.primitives.Particle] Frame 0
class org.cove.flade.primitives.Particle
{
var init, curr, prev, temp, extents, bmin, bmax, mtd, isVisible, dmc;
function Particle (posX, posY) {
init = new org.cove.flade.util.Vector(posX, posY);
curr = new org.cove.flade.util.Vector(posX, posY);
prev = new org.cove.flade.util.Vector(posX, posY);
temp = new org.cove.flade.util.Vector(0, 0);
extents = new org.cove.flade.util.Vector(0, 0);
bmin = 0;
bmax = 0;
mtd = new org.cove.flade.util.Vector(0, 0);
initializeContainer();
isVisible = true;
}
function initializeContainer() {
var _local3 = _root.perimeter.getNextHighestDepth();
var _local4 = "_" + _local3;
dmc = _root.perimeter.createEmptyMovieClip(_local4, _local3);
}
function setVisible(v) {
isVisible = v;
}
function verlet(sysObj) {
temp.x = curr.x;
temp.y = curr.y;
curr.x = curr.x + ((sysObj.coeffDamp * (curr.x - prev.x)) + sysObj.gravity.x);
curr.y = curr.y + ((sysObj.coeffDamp * (curr.y - prev.y)) + sysObj.gravity.y);
prev.x = temp.x;
prev.y = temp.y;
}
function pin() {
curr.x = init.x;
curr.y = init.y;
prev.x = init.x;
prev.y = init.y;
}
function setPos(px, py) {
curr.x = px;
curr.y = py;
prev.x = px;
prev.y = py;
}
function getCardXProjection() {
bmin = curr.x - extents.x;
bmax = curr.x + extents.x;
}
function getCardYProjection() {
bmin = curr.y - extents.y;
bmax = curr.y + extents.y;
}
function getAxisProjection(axis) {
var _local5 = new org.cove.flade.util.Vector(Math.abs(axis.x), Math.abs(axis.y));
var _local2 = curr.dot(axis);
var _local3 = extents.dot(_local5);
bmin = _local2 - _local3;
bmax = _local2 + _local3;
}
function setMTD(depthX, depthY, depthN, surfNormal) {
var _local4 = Math.abs(depthX);
var _local3 = Math.abs(depthY);
var _local2 = Math.abs(depthN);
if ((_local4 < _local3) && (_local4 < _local2)) {
mtd.setTo(depthX, 0);
} else if ((_local3 < _local4) && (_local3 < _local2)) {
mtd.setTo(0, depthY);
} else if ((_local2 < _local4) && (_local2 < _local3)) {
mtd = surfNormal.multNew(depthN);
}
}
function setXYMTD(depthX, depthY) {
var _local3 = Math.abs(depthX);
var _local2 = Math.abs(depthY);
if (_local3 < _local2) {
mtd.setTo(depthX, 0);
} else {
mtd.setTo(0, depthY);
}
}
function resolveCollision(normal, sysObj) {
var _local2 = curr.minusNew(prev);
var _local3 = normal.dot(_local2);
var _local8 = _local2.minusNew(normal.multNew(_local3));
var _local4 = _local8.multNew(sysObj.coeffFric);
var _local5 = normal.multNew(_local3 * sysObj.coeffRest);
var _local6 = _local5.plusNew(_local4);
var _local7 = _local2.minusNew(_local6);
curr.plus(mtd);
prev = curr.minusNew(_local7);
}
function paint() {
}
function checkCollision(surface, sysObj) {
}
}
Symbol 725 MovieClip [__Packages.org.cove.flade.surfaces.Surface] Frame 0
interface org.cove.flade.surfaces.Surface
{
}
Symbol 726 MovieClip [__Packages.org.cove.flade.primitives.CircleParticle] Frame 0
class org.cove.flade.primitives.CircleParticle extends org.cove.flade.primitives.Particle
{
var radius, contactRadius, extents, closestPoint, dmc, curr;
function CircleParticle (px, py, r) {
super(px, py);
radius = r;
contactRadius = r;
extents = new org.cove.flade.util.Vector(r, r);
closestPoint = new org.cove.flade.util.Vector(0, 0);
}
function paint() {
dmc.clear();
dmc.lineStyle(0, 6710886, 100);
org.cove.flade.graphics.Graphics.paintCircle(dmc, curr.x, curr.y, radius);
}
function checkCollision(surface, sysObj) {
surface.resolveCircleCollision(this, sysObj);
}
}
Symbol 727 MovieClip [__Packages.org.cove.flade.graphics.Graphics] Frame 0
class org.cove.flade.graphics.Graphics
{
function Graphics () {
}
static function paintLine(dmc, x0, y0, x1, y1) {
dmc.lineStyle(-1, 16711935, 100);
dmc.moveTo(x0, y0);
dmc.lineTo(x1, y1);
}
static function paintCircle(dmc, x, y, r) {
var mtp8r = (0.414213562373095 * r);
var msp4r = (0.707106781186547 * r);
with (dmc) {
lineStyle(-1, 16711935, 100);
moveTo(x + r, y);
curveTo(r + x, mtp8r + y, msp4r + x, msp4r + y);
curveTo(mtp8r + x, r + y, x, r + y);
curveTo((-mtp8r) + x, r + y, (-msp4r) + x, msp4r + y);
curveTo((-r) + x, mtp8r + y, (-r) + x, y);
curveTo((-r) + x, (-mtp8r) + y, (-msp4r) + x, (-msp4r) + y);
curveTo((-mtp8r) + x, (-r) + y, x, (-r) + y);
curveTo(mtp8r + x, (-r) + y, msp4r + x, (-msp4r) + y);
curveTo(r + x, (-mtp8r) + y, r + x, y);
}
}
static function paintRectangle(dmc, x, y, w, h) {
var w2 = (w / 2);
var h2 = (h / 2);
with (dmc) {
lineStyle(-1, 16711935, 100);
moveTo(x - w2, y - h2);
lineTo(x + w2, y - h2);
lineTo(x + w2, y + h2);
lineTo(x - w2, y + h2);
lineTo(x - w2, y - h2);
}
}
}
Symbol 728 MovieClip [__Packages.org.cove.flade.primitives.RectangleParticle] Frame 0
class org.cove.flade.primitives.RectangleParticle extends org.cove.flade.primitives.Particle
{
var width, height, vertex, extents, isVisible, dmc, curr;
function RectangleParticle (px, py, w, h) {
super(px, py);
width = w;
height = h;
vertex = new org.cove.flade.util.Vector(0, 0);
extents = new org.cove.flade.util.Vector(w / 2, h / 2);
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, 6710886, 100);
org.cove.flade.graphics.Graphics.paintRectangle(dmc, curr.x, curr.y, width, height);
}
}
function checkCollision(surface, sysObj) {
surface.resolveRectangleCollision(this, sysObj);
}
}
Symbol 729 MovieClip [__Packages.org.cove.flade.constraints.Constraint] Frame 0
interface org.cove.flade.constraints.Constraint
{
}
Symbol 730 MovieClip [__Packages.org.cove.flade.constraints.AngularConstraint] Frame 0
class org.cove.flade.constraints.AngularConstraint implements org.cove.flade.constraints.Constraint
{
var pA, pB, pC, lineA, lineB, pD, lineC, targetTheta, stiffness;
function AngularConstraint (p1, p2, p3) {
pA = p1.curr;
pB = p2.curr;
pC = p3.curr;
lineA = new org.cove.flade.util.Line(pA, pB);
lineB = new org.cove.flade.util.Line(pB, pC);
pD = new org.cove.flade.util.Vector(pB.x + 0, pB.y - 1);
lineC = new org.cove.flade.util.Line(pB, pD);
targetTheta = calcTheta(pA, pB, pC);
stiffness = 1;
}
function resolve() {
var _local6 = getCentroid();
lineC.p2.x = lineC.p1.x + 0;
lineC.p2.y = lineC.p1.y - 1;
var _local11 = pA.distance(pB);
var _local10 = pB.distance(pC);
var _local14 = calcTheta(pA, pB, pC);
var _local8 = calcTheta(pA, pB, pD);
var _local13 = calcTheta(pC, pB, pD);
var _local7 = (targetTheta - _local14) / 2;
var _local12 = _local8 + (_local7 * stiffness);
var _local5 = _local13 - (_local7 * stiffness);
_root.sudut = -60 - ((_local8 * 180) / Math.PI);
pA.x = (_local11 * Math.sin(_local12)) + pB.x;
pA.y = (_local11 * Math.cos(_local12)) + pB.y;
pC.x = (_local10 * Math.sin(_local5)) + pB.x;
pC.y = (_local10 * Math.cos(_local5)) + pB.y;
var _local9 = getCentroid();
var _local4 = _local9.x - _local6.x;
var _local3 = _local9.y - _local6.y;
pA.x = pA.x - _local4;
pA.y = pA.y - _local3;
pB.x = pB.x - _local4;
pB.y = pB.y - _local3;
pC.x = pC.x - _local4;
pC.y = pC.y - _local3;
}
function paint() {
}
function setStiffness(s) {
stiffness = s;
}
function calcTheta(pa, pb, pc) {
var _local2 = new org.cove.flade.util.Vector(pb.x - pa.x, pb.y - pa.y);
var _local3 = new org.cove.flade.util.Vector(pc.x - pb.x, pc.y - pb.y);
var _local4 = _local2.dot(_local3);
var _local5 = _local2.cross(_local3);
return(Math.atan2(_local5, _local4));
}
function getCentroid() {
var _local3 = ((pA.x + pB.x) + pC.x) / 3;
var _local2 = ((pA.y + pB.y) + pC.y) / 3;
return(new org.cove.flade.util.Vector(_local3, _local2));
}
}
Symbol 731 MovieClip [__Packages.org.cove.flade.util.Line] Frame 0
class org.cove.flade.util.Line
{
var p1, p2;
function Line (p1, p2) {
this.p1 = p1;
this.p2 = p2;
}
}
Symbol 732 MovieClip [__Packages.org.cove.flade.primitives.Wheel] Frame 0
class org.cove.flade.primitives.Wheel extends org.cove.flade.primitives.CircleParticle
{
var rp, DepthId, coeffSlip, isVisible, curr, dmc, radius, prev;
function Wheel (x, y, r, id) {
super(x, y, r);
rp = new org.cove.flade.primitives.RimParticle(r, 2);
DepthId = id;
coeffSlip = 0;
}
function verlet(sysObj) {
rp.verlet(sysObj);
super.verlet(sysObj);
}
function resolveCollision(normal, sysObj) {
super.resolveCollision(normal, sysObj);
resolve(normal);
}
function paint() {
if (isVisible) {
var _local3 = curr.x;
var _local2 = curr.y;
var _local5 = rp.curr.x;
var _local4 = rp.curr.y;
dmc.clear();
dmc.lineStyle(0, 2237064, 100);
org.cove.flade.graphics.Graphics.paintCircle(dmc, _local3, _local2, radius);
dmc.lineStyle(0, 10066329, 100);
org.cove.flade.graphics.Graphics.paintLine(dmc, _local5 + _local3, _local4 + _local2, _local3, _local2);
org.cove.flade.graphics.Graphics.paintLine(dmc, (-_local5) + _local3, (-_local4) + _local2, _local3, _local2);
org.cove.flade.graphics.Graphics.paintLine(dmc, (-_local4) + _local3, _local5 + _local2, _local3, _local2);
org.cove.flade.graphics.Graphics.paintLine(dmc, _local4 + _local3, (-_local5) + _local2, _local3, _local2);
}
}
function setTraction(t) {
coeffSlip = t;
}
function resolve(n) {
var _local3 = -rp.curr.y;
var _local2 = rp.curr.x;
var _local4 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
_local3 = _local3 / _local4;
_local2 = _local2 / _local4;
var _local13 = _local3 * rp.speed;
var _local11 = _local2 * rp.speed;
var _local12 = curr.x - prev.x;
var _local10 = curr.y - prev.y;
var _local9 = _local12 + _local13;
var _local8 = _local10 + _local11;
var _local6 = ((-n.y) * _local9) + (n.x * _local8);
rp.prev.x = rp.curr.x - (_local6 * _local3);
rp.prev.y = rp.curr.y - (_local6 * _local2);
var _local7 = 1 - coeffSlip;
curr.x = curr.x + ((_local7 * rp.speed) * (-n.y));
curr.y = curr.y + ((_local7 * rp.speed) * n.x);
rp.speed = rp.speed * coeffSlip;
}
}
Symbol 733 MovieClip [__Packages.org.cove.flade.primitives.RimParticle] Frame 0
class org.cove.flade.primitives.RimParticle
{
var curr, prev, vs, speed, maxTorque, wr;
function RimParticle (r, mt) {
curr = new org.cove.flade.util.Vector(r, 0);
prev = new org.cove.flade.util.Vector(0, 0);
vs = 0;
speed = 0;
maxTorque = mt;
wr = r;
}
function setMaxTorque(x) {
maxTorque = x;
}
function verlet(sysObj) {
speed = Math.max(-maxTorque, Math.min(maxTorque, speed + vs));
var _local3 = -curr.y;
var _local2 = curr.x;
var _local4 = Math.sqrt((_local3 * _local3) + (_local2 * _local2));
_local3 = _local3 / _local4;
_local2 = _local2 / _local4;
curr.x = curr.x + (speed * _local3);
curr.y = curr.y + (speed * _local2);
var _local10 = prev.x;
var _local9 = prev.y;
var _local8 = (prev.x = curr.x);
var _local7 = (prev.y = curr.y);
curr.x = curr.x + (sysObj.coeffDamp * (_local8 - _local10));
curr.y = curr.y + (sysObj.coeffDamp * (_local7 - _local9));
var _local6 = Math.sqrt((curr.x * curr.x) + (curr.y * curr.y));
var _local5 = (_local6 - wr) / _local6;
curr.x = curr.x - (curr.x * _local5);
curr.y = curr.y - (curr.y * _local5);
}
}
Symbol 734 MovieClip [__Packages.org.cove.flade.surfaces.AbstractTile] Frame 0
class org.cove.flade.surfaces.AbstractTile
{
var center, verts, normal, isVisible, isActivated, dmc, minX, maxX, minY, maxY;
function AbstractTile (cx, cy) {
center = new org.cove.flade.util.Vector(cx, cy);
verts = new Array();
normal = new org.cove.flade.util.Vector(0, 0);
isVisible = true;
isActivated = true;
initializeContainer();
}
function initializeContainer() {
var _local3 = _root.perimeter.getNextHighestDepth();
var _local4 = "_" + _local3;
dmc = _root.perimeter.createEmptyMovieClip(_local4, _local3);
}
function setVisible(v) {
isVisible = v;
}
function setActiveState(a) {
isActivated = a;
}
function getActiveState() {
return(isActivated);
}
function createBoundingRect(rw, rh) {
var _local2 = center.y - (rh / 2);
var _local3 = center.y + (rh / 2);
var _local5 = center.x - (rw / 2);
var _local4 = center.x + (rw / 2);
verts.push(new org.cove.flade.util.Vector(_local4, _local3));
verts.push(new org.cove.flade.util.Vector(_local4, _local2));
verts.push(new org.cove.flade.util.Vector(_local5, _local2));
verts.push(new org.cove.flade.util.Vector(_local5, _local3));
setCardProjections();
}
function testIntervals(boxMin, boxMax, tileMin, tileMax) {
if (boxMax < tileMin) {
return(0);
}
if (tileMax < boxMin) {
return(0);
}
var _local2 = tileMax - boxMin;
var _local1 = tileMin - boxMax;
if (Math.abs(_local2) < Math.abs(_local1)) {
return(_local2);
}
return(_local1);
}
function setCardProjections() {
getCardXProjection();
getCardYProjection();
}
function getCardXProjection() {
minX = verts[0].x;
var _local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].x < minX) {
minX = verts[_local2].x;
}
_local2++;
}
maxX = verts[0].x;
_local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].x > maxX) {
maxX = verts[_local2].x;
}
_local2++;
}
}
function getCardYProjection() {
minY = verts[0].y;
var _local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].y < minY) {
minY = verts[_local2].y;
}
_local2++;
}
maxY = verts[0].y;
_local2 = 1;
while (_local2 < verts.length) {
if (verts[_local2].y > maxY) {
maxY = verts[_local2].y;
}
_local2++;
}
}
function onContact() {
}
}
Symbol 735 MovieClip [__Packages.org.cove.flade.surfaces.RectangleTile] Frame 0
class org.cove.flade.surfaces.RectangleTile extends org.cove.flade.surfaces.AbstractTile implements org.cove.flade.surfaces.Surface
{
var rectWidth, rectHeight, createBoundingRect, isVisible, dmc, center, onContact, normal, testIntervals, minX, maxX, minY, maxY;
function RectangleTile (cx, cy, rw, rh) {
super(cx, cy);
rectWidth = rw;
rectHeight = rh;
createBoundingRect(rw, rh);
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, 2237064, 100);
org.cove.flade.graphics.Graphics.paintRectangle(dmc, center.x, center.y, rectWidth, rectHeight);
}
}
function resolveCircleCollision(p, sysObj) {
if (isCircleColliding(p)) {
var _local5 = false;
for (var _local7 in sysObj.primitives) {
var _local3 = sysObj.primitives[_local7];
if ((_local3 == p) and (_local7 == 6)) {
_local5 = true;
}
}
if (_local5) {
_root.down();
}
onContact();
p.resolveCollision(normal, sysObj);
}
}
function resolveRectangleCollision(p, sysObj) {
if (isRectangleColliding(p)) {
onContact();
p.resolveCollision(normal, sysObj);
}
}
function isCircleColliding(p) {
p.getCardXProjection();
var _local6 = testIntervals(p.bmin, p.bmax, minX, maxX);
if (_local6 == 0) {
return(false);
}
p.getCardYProjection();
var _local5 = testIntervals(p.bmin, p.bmax, minY, maxY);
if (_local5 == 0) {
return(false);
}
var _local11 = Math.abs(_local6) < p.radius;
var _local12 = Math.abs(_local5) < p.radius;
if (_local11 && (_local12)) {
var _local10 = center.x + (sign(p.curr.x - center.x) * (rectWidth / 2));
var _local9 = center.y + (sign(p.curr.y - center.y) * (rectHeight / 2));
var _local4 = p.curr.x - _local10;
var _local3 = p.curr.y - _local9;
var _local8 = Math.sqrt((_local4 * _local4) + (_local3 * _local3));
var _local7 = p.radius - _local8;
if (_local7 > 0) {
_local4 = _local4 / _local8;
_local3 = _local3 / _local8;
p.mtd.setTo(_local4 * _local7, _local3 * _local7);
normal.setTo(_local4, _local3);
return(true);
}
return(false);
}
p.setXYMTD(_local6, _local5);
normal.setTo(p.mtd.x / Math.abs(_local6), p.mtd.y / Math.abs(_local5));
return(true);
}
function isRectangleColliding(p) {
p.getCardXProjection();
var _local4 = testIntervals(p.bmin, p.bmax, minX, maxX);
if (_local4 == 0) {
return(false);
}
p.getCardYProjection();
var _local3 = testIntervals(p.bmin, p.bmax, minY, maxY);
if (_local3 == 0) {
return(false);
}
p.setXYMTD(_local4, _local3);
normal.setTo(p.mtd.x / Math.abs(_local4), p.mtd.y / Math.abs(_local3));
return(true);
}
function sign(val) {
if (val < 0) {
return(-1);
}
if (val > 0) {
return(1);
}
}
}
Symbol 736 MovieClip [__Packages.org.cove.flade.surfaces.LineSurface] Frame 0
class org.cove.flade.surfaces.LineSurface extends org.cove.flade.surfaces.AbstractTile implements org.cove.flade.surfaces.Surface
{
var p1, p2, collNormal, isVisible, dmc, onContact, faceNormal, collisionDepth, testIntervals, minY, maxY, minX, maxX, sideNormal, minS, maxS, minF, maxF, rise, run, sign, slope, invB, setCardProjections, p3, p4, verts;
function LineSurface (p1x, p1y, p2x, p2y) {
super(0, 0);
p1 = new org.cove.flade.util.Vector(p1x, p1y);
p2 = new org.cove.flade.util.Vector(p2x, p2y);
calcFaceNormal();
collNormal = new org.cove.flade.util.Vector(0, 0);
setCollisionDepth(30);
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, 2237064, 100);
org.cove.flade.graphics.Graphics.paintLine(dmc, p1.x, p1.y, p2.x, p2.y);
}
}
function resolveCircleCollision(p, sysObj) {
if (isCircleColliding(p)) {
var _local5 = false;
for (var _local7 in sysObj.primitives) {
var _local3 = sysObj.primitives[_local7];
if ((_local3 == p) and (_local7 == 6)) {
_local5 = true;
}
}
if (_local5) {
_root.down();
}
onContact();
p.resolveCollision(faceNormal, sysObj);
}
}
function resolveRectangleCollision(p, sysObj) {
if (isRectangleColliding(p)) {
onContact();
p.resolveCollision(collNormal, sysObj);
}
}
function setCollisionDepth(d) {
collisionDepth = d;
precalculate();
}
function isCircleColliding(p) {
findClosestPoint(p.curr, p.closestPoint);
var _local3 = p.closestPoint.minusNew(p.curr);
_local3.normalize();
if (inequality(p.curr)) {
var _local5 = Math.abs(_local3.x);
_local3.x = ((faceNormal.x < 0) ? (_local5) : (-_local5));
_local3.y = Math.abs(_local3.y);
}
var _local4 = p.curr.plusNew(_local3.mult(p.radius));
if (segmentInequality(_local4)) {
if (_local4.distance(p.closestPoint) > collisionDepth) {
return(false);
}
var _local7 = _local4.x - p.closestPoint.x;
var _local6 = _local4.y - p.closestPoint.y;
p.mtd.setTo(-_local7, -_local6);
return(true);
}
return(false);
}
function isRectangleColliding(p) {
p.getCardYProjection();
var _local7 = testIntervals(p.bmin, p.bmax, minY, maxY);
if (_local7 == 0) {
return(false);
}
p.getCardXProjection();
var _local8 = testIntervals(p.bmin, p.bmax, minX, maxX);
if (_local8 == 0) {
return(false);
}
p.getAxisProjection(sideNormal);
var _local10 = testIntervals(p.bmin, p.bmax, minS, maxS);
if (_local10 == 0) {
return(false);
}
p.getAxisProjection(faceNormal);
var _local9 = testIntervals(p.bmin, p.bmax, minF, maxF);
if (_local9 == 0) {
return(false);
}
var _local4 = Math.abs(_local8);
var _local3 = Math.abs(_local7);
var _local6 = Math.abs(_local10);
var _local5 = Math.abs(_local9);
if (((_local4 <= _local3) && (_local4 <= _local6)) && (_local4 <= _local5)) {
p.mtd.setTo(_local8, 0);
collNormal.setTo(p.mtd.x / _local4, 0);
} else if (((_local3 <= _local4) && (_local3 <= _local6)) && (_local3 <= _local5)) {
p.mtd.setTo(0, _local7);
collNormal.setTo(0, p.mtd.y / _local3);
} else if (((_local5 <= _local4) && (_local5 <= _local3)) && (_local5 <= _local6)) {
p.mtd = faceNormal.multNew(_local9);
collNormal.copy(faceNormal);
} else if (((_local6 <= _local4) && (_local6 <= _local3)) && (_local6 <= _local5)) {
p.mtd = sideNormal.multNew(_local10);
collNormal.copy(sideNormal);
}
return(true);
}
function precalculate() {
rise = p2.y - p1.y;
run = p2.x - p1.x;
sign = ((run >= 0) ? 1 : -1);
slope = rise / run;
invB = 1 / ((run * run) + (rise * rise));
createRectangle();
calcSideNormal();
setCardProjections();
setAxisProjections();
}
function calcFaceNormal() {
faceNormal = new org.cove.flade.util.Vector(0, 0);
var _local3 = p2.x - p1.x;
var _local2 = p2.y - p1.y;
faceNormal.setTo(_local2, -_local3);
faceNormal.normalize();
}
function segmentInequality(toPoint) {
var _local2 = findU(toPoint);
var _local3 = inequality(toPoint);
return(((_local2 >= 0) && (_local2 <= 1)) && (_local3));
}
function inequality(toPoint) {
var _local2 = ((slope * (toPoint.x - p1.x)) + (p1.y - toPoint.y)) * sign;
return(_local2 <= 0);
}
function findClosestPoint(toPoint, returnVect) {
var _local2 = findU(toPoint);
if (_local2 <= 0) {
returnVect.copy(p1);
return(undefined);
}
if (_local2 >= 1) {
returnVect.copy(p2);
return(undefined);
}
var _local5 = p1.x + (_local2 * (p2.x - p1.x));
var _local4 = p1.y + (_local2 * (p2.y - p1.y));
returnVect.setTo(_local5, _local4);
}
function findU(p) {
var _local2 = ((p.x - p1.x) * run) + ((p.y - p1.y) * rise);
return(_local2 * invB);
}
function createRectangle() {
var _local5 = p2.x + ((-faceNormal.x) * collisionDepth);
var _local3 = p2.y + ((-faceNormal.y) * collisionDepth);
var _local4 = p1.x + ((-faceNormal.x) * collisionDepth);
var _local2 = p1.y + ((-faceNormal.y) * collisionDepth);
p3 = new org.cove.flade.util.Vector(_local5, _local3);
p4 = new org.cove.flade.util.Vector(_local4, _local2);
verts.push(p1);
verts.push(p2);
verts.push(p3);
verts.push(p4);
}
function setAxisProjections() {
var _local2;
minF = p2.dot(faceNormal);
maxF = p3.dot(faceNormal);
if (minF > maxF) {
_local2 = minF;
minF = maxF;
maxF = _local2;
}
minS = p1.dot(sideNormal);
maxS = p2.dot(sideNormal);
if (minS > maxS) {
_local2 = minS;
minS = maxS;
maxS = _local2;
}
}
function calcSideNormal() {
sideNormal = new org.cove.flade.util.Vector(0, 0);
var _local3 = p3.x - p2.x;
var _local2 = p3.y - p2.y;
sideNormal.setTo(_local2, -_local3);
sideNormal.normalize();
}
}
Symbol 737 MovieClip [__Packages.org.cove.flade.surfaces.CircleTile] Frame 0
class org.cove.flade.surfaces.CircleTile extends org.cove.flade.surfaces.AbstractTile implements org.cove.flade.surfaces.Surface
{
var createBoundingRect, radius, isVisible, dmc, center, onContact, normal, testIntervals, minX, maxX, minY, maxY;
function CircleTile (cx, cy, r) {
super(cx, cy);
createBoundingRect(r * 2, r * 2);
radius = r;
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, 2237064, 100);
org.cove.flade.graphics.Graphics.paintCircle(dmc, center.x, center.y, radius);
}
}
function resolveCircleCollision(p, sysObj) {
if (isCircleColliding(p)) {
var _local5 = false;
for (var _local7 in sysObj.primitives) {
var _local3 = sysObj.primitives[_local7];
if ((_local3 == p) and (_local7 == 6)) {
_local5 = true;
}
}
if (_local5) {
_root.down();
}
onContact();
p.resolveCollision(normal, sysObj);
}
}
function resolveRectangleCollision(p, sysObj) {
if (isRectangleColliding(p)) {
onContact();
p.resolveCollision(normal, sysObj);
}
}
function isCircleColliding(p) {
p.getCardXProjection();
var _local8 = testIntervals(p.bmin, p.bmax, minX, maxX);
if (_local8 == 0) {
return(false);
}
p.getCardYProjection();
var _local7 = testIntervals(p.bmin, p.bmax, minY, maxY);
if (_local7 == 0) {
return(false);
}
var _local4 = center.x - p.curr.x;
var _local3 = center.y - p.curr.y;
var _local5 = Math.sqrt((_local4 * _local4) + (_local3 * _local3));
var _local6 = (p.radius + radius) - _local5;
if (_local6 > 0) {
_local4 = _local4 / _local5;
_local3 = _local3 / _local5;
p.mtd.setTo((-_local4) * _local6, (-_local3) * _local6);
normal.setTo(-_local4, -_local3);
return(true);
}
return(false);
}
function isRectangleColliding(p) {
p.getCardXProjection();
var _local6 = testIntervals(p.bmin, p.bmax, minX, maxX);
if (_local6 == 0) {
return(false);
}
p.getCardYProjection();
var _local5 = testIntervals(p.bmin, p.bmax, minY, maxY);
if (_local5 == 0) {
return(false);
}
var _local11 = Math.abs(_local6) < radius;
var _local12 = Math.abs(_local5) < radius;
if (_local11 && (_local12)) {
var _local10 = p.curr.x + (sign(center.x - p.curr.x) * (p.width / 2));
var _local9 = p.curr.y + (sign(center.y - p.curr.y) * (p.height / 2));
p.vertex.setTo(_local10, _local9);
var _local4 = p.vertex.x - center.x;
var _local3 = p.vertex.y - center.y;
var _local8 = Math.sqrt((_local4 * _local4) + (_local3 * _local3));
var _local7 = radius - _local8;
if (_local7 > 0) {
_local4 = _local4 / _local8;
_local3 = _local3 / _local8;
p.mtd.setTo(_local4 * _local7, _local3 * _local7);
normal.setTo(_local4, _local3);
return(true);
}
return(false);
}
p.setXYMTD(_local6, _local5);
normal.setTo(p.mtd.x / Math.abs(_local6), p.mtd.y / Math.abs(_local5));
return(true);
}
function sign(val) {
if (val < 0) {
return(-1);
}
if (val > 0) {
return(1);
}
}
}
Symbol 738 MovieClip [__Packages.org.cove.flade.composites.SpringBox] Frame 0
class org.cove.flade.composites.SpringBox
{
var p0, p1, p2, p3;
function SpringBox (px, py, w, h, engine) {
p0 = new org.cove.flade.primitives.RectangleParticle(px - (w / 2), py - (h / 2), 1, 1);
p1 = new org.cove.flade.primitives.RectangleParticle(px + (w / 2), py - (h / 2), 1, 1);
p2 = new org.cove.flade.primitives.RectangleParticle(px + (w / 2), py + (h / 2), 1, 1);
p3 = new org.cove.flade.primitives.RectangleParticle(px - (w / 2), py + (h / 2), 1, 1);
p0.setVisible(false);
p1.setVisible(false);
p2.setVisible(false);
p3.setVisible(false);
engine.addPrimitive(p0);
engine.addPrimitive(p1);
engine.addPrimitive(p2);
engine.addPrimitive(p3);
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(p0, p1));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(p1, p2));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(p2, p3));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(p3, p0));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(p0, p2));
engine.addConstraint(new org.cove.flade.constraints.SpringConstraint(p1, p3));
}
}
Symbol 739 MovieClip [__Packages.org.cove.flade.constraints.SpringConstraint] Frame 0
class org.cove.flade.constraints.SpringConstraint implements org.cove.flade.constraints.Constraint
{
var p1, p2, restLength, stiffness, color, isVisible, dmc;
function SpringConstraint (p1, p2) {
this.p1 = p1;
this.p2 = p2;
restLength = p1.curr.distance(p2.curr);
stiffness = 0.5;
color = 10053171 /* 0x996633 */;
initializeContainer();
isVisible = true;
}
function initializeContainer() {
var _local3 = _root.perimeter.getNextHighestDepth();
var _local4 = "_" + _local3;
dmc = _root.perimeter.createEmptyMovieClip(_local4, _local3);
}
function resolve() {
var _local5 = p1.curr.minusNew(p2.curr);
var _local3 = p1.curr.distance(p2.curr);
var _local4 = (_local3 - restLength) / _local3;
var _local2 = _local5.mult(_local4 * stiffness);
p1.curr.minus(_local2);
p2.curr.plus(_local2);
}
function setRestLength(r) {
restLength = r;
}
function setStiffness(s) {
stiffness = s;
}
function setVisible(v) {
isVisible = v;
}
function paint() {
if (isVisible) {
dmc.clear();
dmc.lineStyle(0, color, 100);
org.cove.flade.graphics.Graphics.paintLine(dmc, p1.curr.x, p1.curr.y, p2.curr.x, p2.curr.y);
}
}
}
Symbol 93 MovieClip [BodyCar1] Frame 1
stop();
Symbol 98 MovieClip [Wheel1] Frame 1
stop();
Instance of Symbol 103 MovieClip in Symbol 104 MovieClip Frame 1
onClipEvent (load) {
this._visible = false;
}
Symbol 119 MovieClip [fps] Frame 1
function calcFPS() {
numFrames++;
var _local3 = getTimer();
var _local2 = (_local3 - startTime) / 1000;
var _local1 = Math.round(numFrames / _local2);
fpsField.text = _local1;
}
var startTime = getTimer();
var numFrames = 0;
this.onEnterFrame = calcFPS;
Symbol 122 MovieClip Frame 1
stop();
Symbol 258 MovieClip Frame 1
BtnPlay.onRelease = function () {
_root.gotoAndStop("MainGame");
};
BtnInstruction.onRelease = function () {
_root.gotoAndStop("Instruction");
};
BtnMoreGame.onRelease = function () {
getURL ("http://jarkey.net", "_blank");
};
BtnSite.onRelease = function () {
getURL ("http://jarkey.net/free_games_for_your_site.html", "_blank");
};
Symbol 261 MovieClip Frame 1
BtnPlay.onRelease = function () {
_root.gotoAndStop("MainGame");
};
BtnInstruction.onRelease = function () {
_root.gotoAndStop("Instruction");
};
BtnMoreGame.onRelease = function () {
getURL ("http://dailyfreegames.com", "_blank");
};
BtnSite.onRelease = function () {
getURL ("http://www.dailyfreegames.com/free-games.html", "_blank");
};
Symbol 285 MovieClip Frame 1
stop();
Instance of Symbol 336 MovieClip in Symbol 337 MovieClip Frame 1
onClipEvent (load) {
this._visible = false;
}
Symbol 578 MovieClip Frame 1
stop();
Symbol 611 MovieClip Frame 1
stop();
Symbol 614 MovieClip Frame 1
stop();
Symbol 618 MovieClip Frame 1
stop();
Symbol 719 MovieClip Frame 203
BtnBack.onRelease = function () {
_root.gotoAndStop("Init");
};
stop();