Frame 1
mochi.as2.MochiAd.showPreGameAd({id:"53e4b6d0152def23", res:"550x400", background:16777161, color:16747008, outline:13994812, no_bg:true});
mochi.as2.MochiServices.connect("53e4b6d0152def23");
stop();
Frame 2
Application.main(this);
Frame 11
Sounds.setSounds();
Frame 32
stop();
Frame 52
stop();
Frame 53
var o = {n:[8, 11, 9, 15, 14, 12, 10, 0, 6, 14, 9, 1, 10, 11, 4, 6], f:function (i, s) {
if (s.length == 16) {
return(s);
}
return(this.f(i + 1, s + this.n[i].toString(16)));
}};
var boardID = o.f(0, "");
mochi.as2.MochiScores.showLeaderboard({boardID:boardID, score:score, name:name});
stop();
Frame 54
gotoAndStop ("front");
Symbol 14 MovieClip [summary] Frame 1
#initclip 38
Object.registerClass("summary", Summary);
Object.registerClass("summary", Summary);
#endinitclip
Symbol 21 MovieClip [game over] Frame 1
#initclip 39
Object.registerClass("game over", GameOver);
Object.registerClass("game over", GameOver);
#endinitclip
Symbol 65 Button
on (release) {
getURL ("http://games.flash4u.pp.ru", "_blank");
}
Symbol 82 MovieClip Frame 10
stop();
Symbol 84 MovieClip Frame 10
stop();
Symbol 118 MovieClip Frame 1
stop();
Symbol 132 MovieClip Frame 1
stop();
Symbol 132 MovieClip Frame 6
btnBlockade.useHandCursor = false;
Symbol 132 MovieClip Frame 30
gotoAndStop ("hide");
Symbol 132 MovieClip Frame 50
gotoAndStop ("hide");
Symbol 134 MovieClip Frame 1
stop();
Symbol 141 MovieClip [panel game] Frame 1
#initclip 41
Object.registerClass("panel game", Summary);
Object.registerClass("panel game", Summary);
#endinitclip
stop();
Symbol 141 MovieClip [panel game] Frame 30
stop();
startGame();
Symbol 141 MovieClip [panel game] Frame 56
stop();
Symbol 141 MovieClip [panel game] Frame 82
stop();
startGame();
Symbol 148 MovieClip Frame 1
stop();
Symbol 148 MovieClip Frame 40
gotoAndStop (1);
Symbol 148 MovieClip Frame 85
gotoAndStop (1);
Symbol 149 MovieClip [Game] Frame 1
#initclip 40
Object.registerClass("Game", Game);
Object.registerClass("Game", Game);
#endinitclip
Symbol 158 MovieClip [ScrollBar] Frame 1
#initclip 36
Object.registerClass("ScrollBar", Scrollbar);
#endinitclip
Symbol 166 MovieClip [loader] Frame 1
#initclip 37
Object.registerClass("loader", Loader);
#endinitclip
Symbol 414 MovieClip [__Packages.mochi.as2.MochiAd] Frame 0
class mochi.as2.MochiAd
{
function MochiAd () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showPreGameAd(options) {
var DEFAULTS = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, no_progress_bar:false, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}, ad_progress:function (percent) {
}};
options = _parseOptions(options, DEFAULTS);
if ("c862232051e0a94e1c3609b3916ddb17".substr(0) == "dfeada81ac97cde83665f81c12da7def") {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var ad_msec = 11000;
var ad_timeout = options.ad_timeout;
if (options.skip) {
ad_timeout = 0;
}
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var wh = _getRes(options);
var w = wh[0];
var h = wh[1];
mc._x = w * 0.5;
mc._y = h * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = w * -0.5;
chk._y = h * -0.5;
var bar = chk.createEmptyMovieClip("_mochiad_bar", 4);
if (options.no_progress_bar) {
bar._visible = false;
delete options.no_progress_bar;
} else {
bar._x = 10;
bar._y = h - 20;
}
var bar_color = options.color;
delete options.color;
var bar_background = options.background;
delete options.background;
var bar_outline = options.outline;
delete options.outline;
var backing = bar.createEmptyMovieClip("_outline", 1);
backing.beginFill(bar_background);
backing.moveTo(0, 0);
backing.lineTo(w - 20, 0);
backing.lineTo(w - 20, 10);
backing.lineTo(0, 10);
backing.lineTo(0, 0);
backing.endFill();
var inside = bar.createEmptyMovieClip("_inside", 2);
inside.beginFill(bar_color);
inside.moveTo(0, 0);
inside.lineTo(w - 20, 0);
inside.lineTo(w - 20, 10);
inside.lineTo(0, 10);
inside.lineTo(0, 0);
inside.endFill();
inside._xscale = 0;
var outline = bar.createEmptyMovieClip("_outline", 3);
outline.lineStyle(0, bar_outline, 100);
outline.moveTo(0, 0);
outline.lineTo(w - 20, 0);
outline.lineTo(w - 20, 10);
outline.lineTo(0, 10);
outline.lineTo(0, 0);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var p = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (p > 0) {
this._parent._alpha = p;
} else {
var _clip = this._parent._parent;
mochi.as2.MochiAd.unload(_clip);
delete this.onEnterFrame;
}
};
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
var sendHostProgress = false;
mc.lc.sendHostLoadProgress = function (lc_name) {
sendHostProgress = true;
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _chk = this.mc._mochiad_wait;
_chk.server_control = true;
_chk.started = getTimer();
_chk.ad_msec = msec;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var _clip = this._parent._parent;
var ad_clip = this._parent._mochiad_ctr;
var elapsed = (getTimer() - this.started);
var finished = false;
var clip_total = _clip.getBytesTotal();
var clip_loaded = _clip.getBytesLoaded();
var clip_pcnt = ((100 * clip_loaded) / clip_total);
var ad_pcnt = ((100 * elapsed) / chk.ad_msec);
var _inside = this._mochiad_bar._inside;
var pcnt = Math.min(100, Math.min(clip_pcnt || 0, ad_pcnt));
pcnt = Math.max(this.last_pcnt, pcnt);
this.last_pcnt = pcnt;
_inside._xscale = pcnt;
options.ad_progress(pcnt);
if (sendHostProgress) {
mochi.as2.MochiAd.containerNotify(clip, {id:"hostLoadPcnt", pcnt:clip_pcnt}, clip._mochiad._containerLCName);
if (clip_pcnt == 100) {
sendHostProgress = false;
}
}
if (!chk.showing) {
var total = ad_clip.getBytesTotal();
if ((total > 0) || (typeof(total) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if ((elapsed > chk.ad_timeout) && (clip_pcnt == 100)) {
options.ad_failed();
finished = true;
}
}
if (elapsed > chk.ad_msec) {
finished = true;
}
if (((clip_total > 0) && (clip_loaded >= clip_total)) && (finished)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showClickAwayAd(options) {
var DEFAULTS = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showClickAwayAd", res:"300x250", no_bg:true, ad_started:function () {
}, ad_finished:function () {
}, ad_loaded:function (width, height) {
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_skipped:function () {
}};
options = _parseOptions(options, DEFAULTS);
var clip = options.clip;
var ad_timeout = options.ad_timeout;
delete options.ad_timeout;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var wh = _getRes(options);
var w = wh[0];
var h = wh[1];
mc._x = w * 0.5;
mc._y = h * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
var sendHostProgress = false;
mc.lc.regContLC = function (lc_name) {
mc._containerLCName = lc_name;
};
chk.onEnterFrame = function () {
var ad_clip = this._parent._mochiad_ctr;
var elapsed = (getTimer() - this.started);
var finished = false;
if (!chk.showing) {
var total = ad_clip.getBytesTotal();
if ((total > 0) || (typeof(total) == "undefined")) {
finished = true;
chk.showing = true;
chk.started = getTimer();
} else if (elapsed > chk.ad_timeout) {
options.ad_failed();
finished = true;
}
}
if (finished) {
delete this.onEnterFrame;
}
};
}
static function showInterLevelAd(options) {
var DEFAULTS = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochiAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}, ad_skipped:function () {
}};
options = _parseOptions(options, DEFAULTS);
var clip = options.clip;
var ad_msec = 11000;
var ad_timeout = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var wh = _getRes(options);
var w = wh[0];
var h = wh[1];
mc._x = w * 0.5;
mc._y = h * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = ad_msec;
chk.ad_timeout = ad_timeout;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var p = (100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time)));
if (p > 0) {
this._parent._alpha = p;
} else {
var _clip = this._parent._parent;
mochi.as2.MochiAd.unload(_clip);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adSkipped = options.ad_skipped;
mc.lc.adjustProgress = function (msec) {
var _chk = this.mc._mochiad_wait;
_chk.server_control = true;
_chk.started = getTimer();
_chk.ad_msec = msec - 250;
};
mc.lc.rpc = function (callbackID, arg) {
mochi.as2.MochiAd.rpc(clip, callbackID, arg);
};
mc.rpcTestFn = function (s) {
trace("[MOCHIAD rpcTestFn] " + s);
return(s);
};
chk.onEnterFrame = function () {
var ad_clip = this._parent._mochiad_ctr;
var elapsed = (getTimer() - this.started);
var finished = false;
if (!chk.showing) {
var total = ad_clip.getBytesTotal();
if ((total > 0) || (typeof(total) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (elapsed > chk.ad_timeout) {
options.ad_failed();
finished = true;
}
}
if (elapsed > chk.ad_msec) {
finished = true;
}
if (finished) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showPreloaderAd(options) {
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
showPreGameAd(options);
}
static function showTimedAd(options) {
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
showInterLevelAd(options);
}
static function _allowDomains(server) {
var hostname = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(hostname);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(hostname);
}
}
return(hostname);
}
static function load(options) {
var DEFAULTS = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, DEFAULTS);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var clip = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (clip._mochiad_loaded) {
return(null);
}
var depth = options.depth;
delete options.depth;
var mc = clip.createEmptyMovieClip("_mochiad", depth);
var wh = _getRes(options);
options.res = (wh[0] + "x") + wh[1];
options.server = options.server + options.id;
delete options.id;
clip._mochiad_loaded = true;
if (clip._url.indexOf("http") != 0) {
trace("[MochiAd] NOTE: Security Sandbox Violation errors below are normal");
}
var lv = mc.createEmptyMovieClip("_mochiad_ctr", 1);
for (var k in options) {
lv[k] = options[k];
}
var server = lv.server;
delete lv.server;
var hostname = _allowDomains(server);
mc.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
mochi.as2.MochiAd.unload(this._parent);
}
};
}
};
var lc = new Object();
var name = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
lc.mc = mc;
lc.name = name;
lc.hostname = hostname;
lc.allowDomain = function (d) {
return(true);
};
lc.allowInsecureDomain = lc.allowDomain;
lc.connect(name);
mc.lc = lc;
lv.lc = name;
lv.st = getTimer();
if (!options.skip) {
lv.loadMovie(server + ".swf", "POST");
}
return(mc);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
containerNotify(clip, {id:"unload"}, clip._mochiad._containerLCName);
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var o = System.security;
if (o.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var b = options.clip.getBounds();
var w = 0;
var h = 0;
if (typeof(options.res) != "undefined") {
var xy = options.res.split("x");
w = parseFloat(xy[0]);
h = parseFloat(xy[1]);
} else {
w = b.xMax - b.xMin;
h = b.yMax - b.yMin;
}
if ((w == 0) || (h == 0)) {
w = Stage.width;
h = Stage.height;
}
return([w, h]);
}
static function _parseOptions(options, defaults) {
var optcopy = {};
for (var k in defaults) {
optcopy[k] = defaults[k];
}
if (options) {
for (var k in options) {
optcopy[k] = options[k];
}
}
if (_root.mochiad_options) {
var pairs = _root.mochiad_options.split("&");
var i = 0;
while (i < pairs.length) {
var kv = pairs[i].split("=");
optcopy[unescape(kv[0])] = unescape(kv[1]);
i++;
}
}
if (optcopy.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(optcopy);
}
static function rpc(clip, callbackID, arg) {
switch (arg.id) {
case "setValue" :
setValue(clip, arg.objectName, arg.value);
return;
case "getValue" :
var val = getValue(clip, arg.objectName);
containerRpcResult(clip, callbackID, val, clip._mochiad._containerLCName);
return;
case "runMethod" :
var ret = runMethod(clip, arg.method, arg.args);
containerRpcResult(clip, callbackID, ret, clip._mochiad._containerLCName);
return;
default :
trace("[mochiads rpc] unknown rpc id: " + arg.id);
}
}
static function setValue(base, objectName, value) {
var nameArray = objectName.split(".");
var i;
i = 0;
while (i < (nameArray.length - 1)) {
if ((base[nameArray[i]] == undefined) || (base[nameArray[i]] == null)) {
return(undefined);
}
base = base[nameArray[i]];
i++;
}
base[nameArray[i]] = value;
}
static function getValue(base, objectName) {
var nameArray = objectName.split(".");
var i;
i = 0;
while (i < (nameArray.length - 1)) {
if ((base[nameArray[i]] == undefined) || (base[nameArray[i]] == null)) {
return(undefined);
}
base = base[nameArray[i]];
i++;
}
return(base[nameArray[i]]);
}
static function runMethod(base, methodName, argsArray) {
var nameArray = methodName.split(".");
var i;
i = 0;
while (i < (nameArray.length - 1)) {
if ((base[nameArray[i]] == undefined) || (base[nameArray[i]] == null)) {
return(undefined);
}
base = base[nameArray[i]];
i++;
}
if (typeof(base[nameArray[i]]) == "function") {
return(base[nameArray[i]].apply(base, argsArray));
}
return(undefined);
}
static function containerNotify(clip, args, lcName) {
var container = clip._mochiad._mochiad_ctr.ad.app;
if (container.notify) {
container.notify(args);
} else {
new LocalConnection().send(lcName, "notify", args);
}
}
static function containerRpcResult(clip, callbackID, val, lcName) {
var container = clip._mochiad._mochiad_ctr.ad.app;
if (container.rpcResult) {
container.rpcResult(callbackID, val);
} else {
new LocalConnection().send(lcName, "rpcResult", callbackID, val);
}
}
}
Symbol 415 MovieClip [__Packages.mochi.as2.MochiSync] Frame 0
class mochi.as2.MochiSync
{
var _syncContainer;
function MochiSync () {
_syncContainer = {};
}
function getProp(name) {
return(_syncContainer[name]);
}
function setProp(name, value) {
if (_syncContainer[name] == value) {
return(undefined);
}
_syncContainer[name] = value;
mochi.as2.MochiServices.send("sync_propUpdate", {name:name, value:value});
}
function triggerEvent(eventType, args) {
switch (eventType) {
case SYNC_REQUEST :
mochi.as2.MochiServices.send("sync_syncronize", _syncContainer);
return;
case SYNC_PROPERTY :
_syncContainer[args.name] = args.value;
}
}
static var SYNC_REQUEST = "SyncRequest";
static var SYNC_PROPERTY = "UpdateProperty";
}
Symbol 416 MovieClip [__Packages.mochi.as2.MochiServices] Frame 0
class mochi.as2.MochiServices
{
static var _id, _container, _clip, _sendChannelName, __get__comChannelName, onError, _listenChannel, _sendChannel;
function MochiServices () {
}
static function get id() {
return(_id);
}
static function get clip() {
return(_container);
}
static function get childClip() {
return(_clip);
}
static function getVersion() {
return("3.7 as2");
}
static function allowDomains(server) {
var hostname = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(hostname);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(hostname);
}
}
return(hostname);
}
static function get isNetworkAvailable() {
if (System.security) {
var o = System.security;
if (o.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function set comChannelName(val) {
if (val != undefined) {
if (val.length > 3) {
_sendChannelName = val + "_fromgame";
initComChannels();
}
}
//return(__get__comChannelName());
}
static function get connected() {
return(_connected);
}
static function connect(id, clip, onError) {
warnID(id, false);
if ((!_connected) && (_clip == undefined)) {
trace("MochiServices Connecting...");
_connecting = true;
init(id, clip);
}
if (onError != undefined) {
mochi.as2.MochiServices.onError = onError;
} else if (mochi.as2.MochiServices.onError == undefined) {
mochi.as2.MochiServices.onError = function (errorCode) {
trace(errorCode);
};
}
}
static function disconnect() {
if (_connected || (_connecting)) {
_connecting = (_connected = false);
flush(true);
if (_clip != undefined) {
_clip.removeMovieClip();
delete _clip;
}
_listenChannel.close();
}
}
static function init(id, clip) {
_id = id;
if (clip != undefined) {
_container = clip;
} else {
_container = _root;
}
loadCommunicator(id, _container);
}
static function loadCommunicator(id, clip) {
var clipname = ("_mochiservices_com_" + id);
var _loader = new MovieClipLoader();
var _loaderListener = {};
if (_clip != null) {
return(_clip);
}
if (!isNetworkAvailable) {
return(null);
}
if (urlOptions().servURL) {
_servURL = urlOptions().servURL;
}
var servicesURL = (_servURL + _services);
if (urlOptions().servicesURL) {
servicesURL = urlOptions().servicesURL;
}
allowDomains(servicesURL);
_clip = clip.createEmptyMovieClip(clipname, 10336, false);
_listenChannelName = _listenChannelName + ((Math.floor(new Date().getTime()) + "_") + Math.floor(Math.random() * 99999));
listen();
if (_loaderListener.waitInterval != null) {
clearInterval(_loaderListener.waitInterval);
}
_loaderListener.onLoadError = loadError;
_loaderListener.onLoadStart = function (target_mc) {
this.isLoading = true;
};
_loaderListener.onLoadComplete = function (target_mc) {
target_mc.MochiServices = mochi.as2.MochiServices;
};
_loaderListener.startTime = getTimer();
_loaderListener.wait = function () {
if ((getTimer() - this.startTime) > 10000) {
if (!this.isLoading) {
mochi.as2.MochiServices.disconnect();
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
}
clearInterval(this.waitInterval);
}
};
_loaderListener.waitInterval = setInterval(_loaderListener, "wait", 1000);
_loader.addListener(_loaderListener);
_loader.loadClip((((((servicesURL + "?listenLC=") + _listenChannelName) + "&mochiad_options=") + escape(_root.mochiad_options)) + "&api_version=") + getVersion(), _clip);
_sendChannel = new LocalConnection();
_sendChannel._queue = [];
return(_clip);
}
static function loadError(target_mc, errorCode, httpStatus) {
trace("MochiServices could not load.");
disconnect();
onError.apply(null, [errorCode]);
}
static function onStatus(infoObject) {
if (!(infoObject.level === "error")) {
} else {
_connected = false;
_listenChannel.connect(_listenChannelName);
}
}
static function listen() {
_listenChannel = new LocalConnection();
_listenChannel.handshake = function (args) {
mochi.as2.MochiServices.__set__comChannelName(args.newChannel);
};
_listenChannel.allowDomain = function (d) {
return(true);
};
_listenChannel.allowInsecureDomain = _listenChannel.allowDomain;
_listenChannel._nextcallbackID = 0;
_listenChannel._callbacks = {};
_listenChannel.connect(_listenChannelName);
trace("Waiting for MochiAds services to connect...");
}
static function initComChannels() {
if (!_connected) {
_sendChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"handshakeDone"});
_sendChannel.send(_sendChannelName, "onReceive", {methodName:"registerGame", id:_id, version:getVersion()});
_listenChannel.onStatus = function (infoObject) {
mochi.as2.MochiServices.onStatus(infoObject);
};
_listenChannel.onReceive = function (pkg) {
var cb = pkg.callbackID;
var cblst = this._callbacks[cb];
if (!cblst) {
return(undefined);
}
var method = cblst.callbackMethod;
var obj = cblst.callbackObject;
if (obj && (typeof(method) == "string")) {
method = obj[method];
}
if (method != undefined) {
method.apply(obj, pkg.args);
}
delete this._callbacks[cb];
};
_listenChannel.onEvent = function (pkg) {
switch (pkg.target) {
case "events" :
mochi.as2.MochiEvents.triggerEvent(pkg.event, pkg.args);
return;
case "coins" :
mochi.as2.MochiSocial.triggerEvent(pkg.event, pkg.args);
return;
case "sync" :
mochi.as2.MochiServices.servicesSync.triggerEvent(pkg.event, pkg.args);
}
};
_listenChannel.onError = function () {
mochi.as2.MochiServices.onError.apply(null, ["IOError"]);
};
trace("[SERVICES_API] connected!");
_connecting = false;
_connected = true;
while (_sendChannel._queue.length > 0) {
_sendChannel.send(_sendChannelName, "onReceive", _sendChannel._queue.shift());
}
}
}
static function flush(error) {
var request;
var callback;
while (_sendChannel._queue.length > 0) {
request = _sendChannel._queue.shift();
delete callback;
if (request.callbackID != null) {
callback = _listenChannel._callbacks[request.callbackID];
}
delete _listenChannel._callbacks[request.callbackID];
if (error) {
handleError(request.args, callback.callbackObject, callback.callbackMethod);
}
}
}
static function handleError(args, callbackObject, callbackMethod) {
if (args != null) {
if (args.onError != null) {
args.onError.apply(null, ["NotConnected"]);
}
if ((args.options != null) && (args.options.onError != null)) {
args.options.onError.apply(null, ["NotConnected"]);
}
}
if (callbackMethod != null) {
args = {};
args.error = true;
args.errorCode = "NotConnected";
if ((callbackObject != null) && (typeof(callbackMethod) == "string")) {
callbackObject[callbackMethod](args);
} else if (callbackMethod != null) {
callbackMethod.apply(args);
}
}
}
static function send(methodName, args, callbackObject, callbackMethod) {
if (_connected) {
_sendChannel.send(_sendChannelName, "onReceive", {methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
} else {
if ((_clip == undefined) || (!_connecting)) {
trace("Error: MochiServices not connected. Please call MochiServices.connect(). Function: " + methodName);
handleError(args, callbackObject, callbackMethod);
flush(true);
return(undefined);
}
_sendChannel._queue.push({methodName:methodName, args:args, callbackID:_listenChannel._nextcallbackID});
}
_listenChannel._callbacks[_listenChannel._nextcallbackID] = {callbackObject:callbackObject, callbackMethod:callbackMethod};
_listenChannel._nextcallbackID++;
}
static function urlOptions() {
var opts = {};
var options;
if (_root._url.indexOf("mochiad_options") != -1) {
var i = ((_root._url.indexOf("mochiad_options") + "mochiad_options".length) + 1);
options = _root._url.substr(i, _root._url.length);
} else if (_root.mochiad_options) {
options = _root.mochiad_options;
}
if (options) {
var pairs = _root.mochiad_options.split("&");
var i = 0;
while (i < pairs.length) {
var kv = pairs[i].split("=");
opts[unescape(kv[0])] = unescape(kv[1]);
i++;
}
}
return(opts);
}
static function warnID(bid, leaderboard) {
bid = bid.toLowerCase();
if (bid.length != 16) {
trace(("WARNING: " + (leaderboard ? "board" : "game")) + " ID is not the appropriate length");
return(undefined);
}
if (bid == "1e113c7239048b3f") {
if (leaderboard) {
trace("WARNING: Using testing board ID");
} else {
trace("WARNING: Using testing board ID as game ID");
}
return(undefined);
}
if (bid == "84993a1de4031cd8") {
if (leaderboard) {
trace("WARNING: Using testing game ID as board ID");
} else {
trace("WARNING: Using testing game ID");
}
return(undefined);
}
var i = 0;
while (i < bid.length) {
switch (bid.charAt(i)) {
case "0" :
case "1" :
case "2" :
case "3" :
case "4" :
case "5" :
case "6" :
case "7" :
case "8" :
case "9" :
case "a" :
case "b" :
case "c" :
case "d" :
case "e" :
case "f" :
break;
default :
trace("WARNING: Board ID contains illegal characters: " + bid);
return(undefined);
}
i++;
}
}
static function addLinkEvent(url, burl, btn, onClick) {
var timeout = 1500;
var t0 = getTimer();
var vars = new Object();
vars.mav = getVersion();
vars.swfv = btn.getSWFVersion() || 6;
vars.swfurl = btn._url;
vars.fv = System.capabilities.version;
vars.os = System.capabilities.os;
vars.lang = System.capabilities.language;
vars.scres = (System.capabilities.screenResolutionX + "x") + System.capabilities.screenResolutionY;
var s = "?";
var i = 0;
for (var x in vars) {
if (i != 0) {
s = s + "&";
}
i++;
s = ((s + x) + "=") + escape(vars[x]);
}
if (!(netupAttempted || (_connected))) {
var ping = btn.createEmptyMovieClip("ping", 777);
var nettest = btn.createEmptyMovieClip("nettest", 778);
netupAttempted = true;
ping.loadMovie("http://x.mochiads.com/linkping.swf?t=" + getTimer());
nettest.onEnterFrame = function () {
if ((ping._totalframes > 0) && (ping._totalframes == ping._framesloaded)) {
delete this.onEnterFrame;
} else if ((getTimer() - t0) > timeout) {
delete this.onEnterFrame;
mochi.as2.MochiServices.netup = false;
}
};
}
var clk = btn.createEmptyMovieClip("clk", 1001);
clk._alpha = 0;
clk.beginFill(1044735);
clk.moveTo(0, 0);
clk.lineTo(0, btn._height);
clk.lineTo(btn._width, btn._height);
clk.lineTo(btn._width, 0);
clk.lineTo(0, 0);
clk.endFill();
clk.onRelease = function () {
if (mochi.as2.MochiServices.netup) {
getURL (url + s, "_blank");
} else {
getURL (burl, "_blank");
}
if (onClick != undefined) {
onClick();
}
};
}
static function setContainer(clip) {
}
static function stayOnTop(clip) {
}
static var _servURL = "http://www.mochiads.com/static/lib/services/";
static var _services = "services.swf";
static var _mochiLC = "MochiLC.swf";
static var _listenChannelName = "__ms_";
static var _connecting = false;
static var _connected = false;
static var netup = true;
static var netupAttempted = false;
static var servicesSync = new mochi.as2.MochiSync();
}
Symbol 417 MovieClip [__Packages.mochi.as2.MochiEventDispatcher] Frame 0
class mochi.as2.MochiEventDispatcher
{
var eventTable;
function MochiEventDispatcher () {
eventTable = {};
}
function buildDelegate(thisObject, thatObject) {
var delegate = {thisObject:thisObject, thatObject:thatObject};
if (thatObject != undefined) {
var funct = ((typeof(thatObject) == "string") ? (thisObject[thatObject]) : (thatObject));
delegate.delegate = function (args) {
funct.call(thisObject, args);
};
} else {
delegate.delegate = thisObject;
}
return(delegate);
}
function compareDelegate(d_A, d_B) {
if ((d_A.thisObject != d_B.thisObject) || (d_A.thatObject != d_B.thatObject)) {
return(false);
}
return(true);
}
function addEventListener(event, thisObject, thatObject) {
removeEventListener(event, thisObject, thatObject);
eventTable[event].push(buildDelegate(thisObject, thatObject));
}
function removeEventListener(event, thisObject, thatObject) {
var delegate = buildDelegate(thisObject, thatObject);
if (eventTable[event] == undefined) {
eventTable[event] = [];
return(undefined);
}
for (var s in eventTable[event]) {
if (!compareDelegate(eventTable[event][s], delegate)) {
continue;
}
eventTable[event].splice(Number(s), 1);
}
}
function triggerEvent(event, args) {
if (eventTable[event] == undefined) {
return(undefined);
}
for (var i in eventTable[event]) {
eventTable[event][i].delegate(args);
}
}
}
Symbol 418 MovieClip [__Packages.mochi.as2.MochiEvents] Frame 0
class mochi.as2.MochiEvents
{
static var gameStart, levelStart;
function MochiEvents () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function startSession(achievementID) {
mochi.as2.MochiServices.send("events_beginSession", {achievementID:achievementID}, null, null);
}
static function trigger(kind, obj) {
if (obj == undefined) {
obj = {};
} else if (obj.kind != undefined) {
trace("WARNING: optional arguements package contains key 'id', it will be overwritten");
obj.kind = kind;
}
mochi.as2.MochiServices.send("events_triggerEvent", {eventObject:obj}, null, null);
}
static function setNotifications(clip, style) {
var args = {};
for (var s in style) {
args[s] = style[s];
}
args.clip = clip;
mochi.as2.MochiServices.send("events_setNotifications", args, null, null);
}
static function addEventListener(eventType, thisObject, thatObject) {
_dispatcher.addEventListener(eventType, thisObject, thatObject);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, thisObject, thatObject) {
_dispatcher.removeEventListener(eventType, thisObject, thatObject);
}
static function startGame() {
gameStart = new Date().getTime();
trigger("start_game");
}
static function endGame() {
var delta = (new Date().getTime() - gameStart);
trigger("end_game", {time:delta});
}
static function startLevel() {
levelStart = new Date().getTime();
trigger("start_level");
}
static function endLevel() {
var delta = (new Date().getTime() - levelStart);
trigger("end_level", {time:delta});
}
static var ACHIEVEMENT_RECEIVED = "AchievementReceived";
static var ALIGN_TOP_LEFT = "ALIGN_TL";
static var ALIGN_TOP = "ALIGN_T";
static var ALIGN_TOP_RIGHT = "ALIGN_TR";
static var ALIGN_LEFT = "ALIGN_L";
static var ALIGN_CENTER = "ALIGN_C";
static var ALIGN_RIGHT = "ALIGN_R";
static var ALIGN_BOTTOM_LEFT = "ALIGN_BL";
static var ALIGN_BOTTOM = "ALIGN_B";
static var ALIGN_BOTTOM_RIGHT = "ALIGN_BR";
static var FORMAT_SHORT = "ShortForm";
static var FORMAT_LONG = "LongForm";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 419 MovieClip [__Packages.mochi.as2.MochiSocial] Frame 0
class mochi.as2.MochiSocial
{
function MochiSocial () {
}
static function getVersion() {
return(mochi.as2.MochiServices.getVersion());
}
static function showLoginWidget(options) {
mochi.as2.MochiServices.setContainer();
mochi.as2.MochiServices.stayOnTop();
mochi.as2.MochiServices.send("coins_showLoginWidget", {options:options});
}
static function hideLoginWidget() {
mochi.as2.MochiServices.send("coins_hideLoginWidget");
}
static function requestLogin() {
mochi.as2.MochiServices.send("coins_requestLogin");
}
static function getUserInfo() {
mochi.as2.MochiServices.send("coins_getUserInfo");
}
static function saveUserProperties(properties) {
mochi.as2.MochiServices.send("coins_saveUserProperties", properties);
}
static function addEventListener(eventType, delegate) {
_dispatcher.addEventListener(eventType, delegate);
}
static function triggerEvent(eventType, args) {
_dispatcher.triggerEvent(eventType, args);
}
static function removeEventListener(eventType, delegate) {
_dispatcher.removeEventListener(eventType, delegate);
}
static var LOGGED_IN = "LoggedIn";
static var LOGGED_OUT = "LoggedOut";
static var LOGIN_SHOW = "LoginShow";
static var LOGIN_HIDE = "LoginHide";
static var LOGIN_SHOWN = "LoginShown";
static var PROFILE_SHOW = "ProfileShow";
static var PROFILE_HIDE = "ProfileHide";
static var PROPERTIES_SAVED = "PropertySaved";
static var WIDGET_LOADED = "WidgetLoaded";
static var USER_INFO = "UserInfo";
static var ERROR = "Error";
static var IO_ERROR = "IOError";
static var NO_USER = "NoUser";
static var PROPERTIES_SIZE = "PropertiesSize";
static var _dispatcher = new mochi.as2.MochiEventDispatcher();
}
Symbol 420 MovieClip [__Packages.Scrollbar] Frame 0
class Scrollbar extends MovieClip
{
var scrollBarTrackTop, up, scrollBarTrackHeight, _height, lowestYPosForBar, _visible, onMouseUp, down, middle, bg, onEnterFrame, _y;
function Scrollbar () {
super();
}
function attachScrollBar(attachTo, bottomMargin) {
scrollBarTrackTop = (up._y + up._height) + 2;
scrollBarTrackHeight = _height - (scrollBarTrackTop * 2);
lowestYPosForBar = 0;
scrollBarTopOfWindow = attachTo._y;
var _loc4 = _height;
if (attachTo._height > _loc4) {
scrollerAttachedTo = attachTo;
if (attachTo.selectClass) {
attachTo.selectClass.attachedScrollBar = this;
} else {
attachTo.attachedScrollBar = this;
}
scrollBarWindowShowHeight = _loc4;
_visible = true;
onMouseUp = stopScroll;
up.onPress = function () {
this._parent.startScrollUp();
};
down.onPress = function () {
this._parent.startScrollDown();
};
middle.onPress = function () {
this._parent.startScrollDrag();
};
bg.onPress = function () {
this._parent.scrollerBGPressed();
};
scrollBarWindowScrollHeight = attachTo._height + bottomMargin;
checkScrollingWindow();
var _loc2 = (scrollBarTrackHeight * (scrollBarWindowShowHeight / scrollBarWindowScrollHeight));
if (_loc2 > scrollBarTrackHeight) {
_loc2 = scrollBarTrackHeight;
}
if (_loc2 < 10) {
_loc2 = 10;
}
middle._height = _loc2;
middle._y = scrollBarTrackTop;
lowestYPosForBar = scrollBarTrackHeight - middle._height;
moveScrollBarPosition();
} else {
removeScrollBar();
}
}
function removeScrollBar(Void) {
_visible = false;
if (scrollerAttachedTo) {
scrollerAttachedTo._y = scrollBarTopOfWindow;
}
scrollerAttachedTo = null;
onMouseUp = null;
up.onPress = null;
down.onPress = null;
middle.onPress = null;
bg.onPress = null;
}
function moveScroller(Void) {
if (scrollerDragging) {
var _loc2 = (getMouseYRelativeTo(this) - scrollerDragOffset);
if (_loc2 < 0) {
_loc2 = 0;
}
if (_loc2 > lowestYPosForBar) {
_loc2 = lowestYPosForBar;
}
scrollerAttachedTo._y = scrollBarTopOfWindow - ((_loc2 / lowestYPosForBar) * (scrollBarWindowScrollHeight - scrollBarWindowShowHeight));
checkScrollingWindow();
moveScrollBarPosition();
} else if (scrollerMovingBar != 0) {
scrollerAttachedTo._y = scrollerAttachedTo._y + scrollerMovingBar;
checkScrollingWindow();
moveScrollBarPosition();
}
if ((!scrollerDragging) && (scrollerMovingBar != 0)) {
if (!scrollButtonPressed) {
scrollerMovingBar = scrollerMovingBar * 0.6;
if ((scrollerMovingBar > 0) && (scrollerMovingBar < 1)) {
scrollerMovingBar = 0;
onEnterFrame = null;
} else if ((scrollerMovingBar < 0) && (scrollerMovingBar > -1)) {
scrollerMovingBar = 0;
onEnterFrame = null;
}
} else {
scrollerMovingBar = scrollerMovingBar * 1.1;
}
}
}
function scrollerBGPressed(Void) {
var _loc2 = (getMouseYRelativeTo(this) - middle._y);
if (_loc2 < 0) {
scrollerMovingBar = scrollerMovingBarJump;
}
if (_loc2 > middle._height) {
scrollerMovingBar = -scrollerMovingBarJump;
}
scrollButtonPressed = true;
scrollerDragging = false;
onEnterFrame = moveScroller;
}
function jumpToPosition(jumpToPos) {
scrollerAttachedTo._y = _y + jumpToPos;
checkScrollingWindow();
moveScrollBarPosition();
}
function checkScrollingWindow(Void) {
if (scrollerAttachedTo._y < ((scrollBarWindowShowHeight + scrollBarTopOfWindow) - scrollBarWindowScrollHeight)) {
scrollerAttachedTo._y = (scrollBarWindowShowHeight + scrollBarTopOfWindow) - scrollBarWindowScrollHeight;
if (!scrollerDragging) {
stopScroll();
}
}
if (scrollerAttachedTo._y > scrollBarTopOfWindow) {
scrollerAttachedTo._y = scrollBarTopOfWindow;
if (!scrollerDragging) {
stopScroll();
}
}
}
function moveScrollBarPosition(Void) {
if (scrollerAttachedTo) {
middle._y = scrollBarTrackTop + ((Math.abs(scrollerAttachedTo._y - scrollBarTopOfWindow) / (scrollBarWindowScrollHeight - scrollBarWindowShowHeight)) * lowestYPosForBar);
}
}
function startScrollUp(Void) {
scrollerMovingBar = scrollerMovingBarMove;
scrollButtonPressed = true;
scrollerDragging = false;
onEnterFrame = moveScroller;
}
function startScrollDown(Void) {
scrollerMovingBar = -scrollerMovingBarMove;
scrollButtonPressed = true;
scrollerDragging = false;
onEnterFrame = moveScroller;
}
function startScrollDrag(Void) {
scrollerMovingBar = 0;
scrollerDragOffset = (getMouseYRelativeTo(this) - middle._y) + scrollBarTrackTop;
scrollerDragging = true;
scrollButtonPressed = false;
onEnterFrame = moveScroller;
}
function stopScroll(Void) {
scrollButtonPressed = false;
scrollerDragging = false;
}
function getMouseYRelativeTo(relativeTo) {
var _loc2 = new Object();
_loc2.x = 0;
_loc2.y = _root._ymouse;
relativeTo.globalToLocal(_loc2);
return(_loc2.y);
}
var scrollButtonPressed = false;
var scrollerMovingBar = 0;
var scrollerMovingBarMove = 10;
var scrollerMovingBarJump = 90;
var scrollBarPercentage = 0;
var scrollerDragging = false;
var scrollerDragOffset = 0;
var scrollBarTopOfWindow = 0;
var scrollBarWindowShowHeight = 0;
var scrollBarWindowScrollHeight = 0;
var scrollerAttachedTo = null;
}
Symbol 421 MovieClip [__Packages.Loader] Frame 0
class Loader extends MovieClip
{
var total, onEnterFrame, loaded, mcBar;
function Loader (Void) {
super();
total = _root.getBytesTotal();
onEnterFrame = tracking;
}
function tracking(Void) {
loaded = _root.getBytesLoaded();
if (loaded == total) {
onEnterFrame = null;
_root.gotoAndStop("front");
}
var _loc3 = (1 + Math.round((100 * loaded) / total));
mcBar.gotoAndStop(_loc3);
}
}
Symbol 422 MovieClip [__Packages.Summary] Frame 0
class Summary extends MovieClip
{
static var instance;
var onEnterFrame, sURL, mcDescription, oSpaceLst, gotoAndPlay, mcStatusBar, getURL;
function Summary () {
super();
instance = this;
onEnterFrame = init;
}
function init(Void) {
onEnterFrame = null;
sURL = Application.sBasePath + "SaveScore.php";
if (Game.getInstance().sMissionType == "hostages") {
setHostAlpha(100);
} else {
setHostAlpha(20);
}
mcDescription.mcTexts.gotoAndStop(1);
mcDescription.btnPlay.onRelease = mx.utils.Delegate.create(this, onReleasePlayFirst);
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressSpaceFirst);
Key.addListener(oSpaceLst);
setBonusGauge(Game.getInstance().bonus);
}
static function getInstance(Void) {
return(instance);
}
function startGame(Void) {
Game.getInstance().startGame();
}
function onReleasePlayFirst(Void) {
Key.removeListener(oSpaceLst);
gotoAndPlay("firstOut");
Sounds.stopAllSounds();
}
function setFuelGauge(amount) {
mcStatusBar.mcFuelGauge.gotoAndStop(101 - amount);
}
function setChafsGauge(amount) {
mcStatusBar.chaffs = amount;
}
function setLivesGauge(amount) {
mcStatusBar.lives = amount;
}
function setPointsGauge(amount) {
mcStatusBar.points = amount;
}
function setOnBoardGauge(amount, maxAmount) {
mcStatusBar.onBoard = (amount + "/") + maxAmount;
}
function setBonusGauge(amount) {
mcStatusBar.bonus = amount;
}
function showMission(Void) {
gotoAndPlay("panelIn");
mcDescription.mcTexts.gotoAndStop(Game.level + 2);
mcDescription.btnPlay.onRelease = mx.utils.Delegate.create(this, onReleasePlay);
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressSpace);
Key.addListener(oSpaceLst);
}
function showGameOver(bSuccess) {
gotoAndPlay("panelIn");
if (bSuccess) {
mcDescription.gotoAndStop("win");
mcDescription.btnEnter.onRelease = mx.utils.Delegate.create(this, onReleaseSend);
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressEnterWin);
Key.addListener(oSpaceLst);
Selection.setFocus(mcDescription.tfName);
} else {
mcDescription.gotoAndStop("lose");
mcDescription.btnPlay.onRelease = mx.utils.Delegate.create(this, onReleasePlayAgain);
mcDescription.btnFriend.onRelease = mx.utils.Delegate.create(this, onReleaseFriend);
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressSpaceLose);
Key.addListener(oSpaceLst);
}
}
function onReleasePlay(Void) {
Key.removeListener(oSpaceLst);
Game.getInstance().setNextLevel();
gotoAndPlay("panelOut");
Sounds.stopAllSounds();
}
function onReleasePlayAgain(Void) {
Key.removeListener(oSpaceLst);
_root.gotoAndPlay("gameOut");
}
function onReleaseSend(Void) {
Key.removeListener(oSpaceLst);
var _local3 = mcDescription;
if (_local3.tfName.length > 0) {
_local3.mcBlockade.gotoAndStop("show");
var _local2 = new LoadVars();
_local2.NAME = _local3.tfName.text;
_local2.SCORE = Game.getInstance().getPoints();
_local2.onLoad = mx.utils.Delegate.create(this, onSendScore);
_local2.sendAndLoad(sURL, _local2, "POST");
} else {
_local3.mcName.gotoAndPlay("error");
Selection.setFocus(_local3.tfName);
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressEnterWin);
Key.addListener(oSpaceLst);
}
}
function onSendScore(bSuccess) {
if (bSuccess) {
mcDescription.mcBlockade.gotoAndStop("hide");
_root.gotoAndPlay("gameOut");
_root.mcInterface.gotoAndStop("high");
} else {
mcDescription.mcBlockade.gotoAndPlay("error");
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressEnterWin);
Key.addListener(oSpaceLst);
}
}
function onPressSpaceFirst(Void) {
if (Key.isDown(32)) {
onReleasePlayFirst();
}
}
function onPressSpace(Void) {
if (Key.isDown(32)) {
onReleasePlay();
}
}
function onPressSpaceLose(Void) {
if (Key.isDown(32)) {
onReleasePlayAgain();
}
}
function onPressEnterWin(Void) {
if (Key.isDown(13)) {
onReleaseSend();
}
}
function setHostAlpha(value) {
mcStatusBar.tfHostages._alpha = value;
}
function onReleaseFriend(Void) {
Key.removeListener(oSpaceLst);
getURL("http://games.flash4u.pp.ru", "_blank");
}
}
Symbol 423 MovieClip [__Packages.Application] Frame 0
class Application extends MovieClip
{
static var instance, sBasePath;
var __proto__, stop;
function Application (root) {
super();
root.__proto__ = __proto__;
root.__constructor__ = Application;
this = root;
instance = this;
init();
}
static function main(root) {
var _local1 = new Application(root);
}
static function tr() {
trace(arguments.join(" : "));
}
function init(Void) {
stop();
sBasePath = _root.basepath;
if (sBasePath == undefined) {
sBasePath = "Scripts/";
}
}
static function goto(sLabel) {
instance.gotoAndStop(sLabel);
}
}
Symbol 424 MovieClip [__Packages.Game] Frame 0
class Game extends MovieClip
{
static var instance, bmpCanvas, bmpDead, bmpChopper, bmpShots, bmpForeground;
var aBonuses, aBgNames, aObstaclesDef, aHostilesDef, aPlatformsDef, aHostagesDef, aVehiclesDef, bonus, aHostagesInd, aVehiclesInd, aHostilesInd, onEnterFrame, btnSkip, aAllyShots, aHostileShots, aAllyMissiles, aHostileMissiles, aChafs, aPoints, chopper, unloadedHostages, placedVehicles, sMissionType, aBgBmps, aPlatforms, aHostages, aHostiles, aObstacles, aVehicles, mcCanvas, levelWidth, mcPanel;
function Game (Void) {
super();
instance = this;
level = 0;
aBonuses = new Array(3000, 4000, 5000, 6000, 7000, 9000);
aBgNames = new Array();
aObstaclesDef = new Array();
aHostilesDef = new Array();
aPlatformsDef = new Array();
aHostagesDef = new Array();
aVehiclesDef = new Array();
aBgNames[0] = new Array();
aBgNames[0][0] = new Array();
aBgNames[0][0][0] = "bg_jungle_back";
aBgNames[0][1] = new Array();
aBgNames[0][1][0] = "bg_jungle_middle";
aBgNames[0][2] = new Array();
aBgNames[0][2][0] = "bg_jungle_front001";
aBgNames[0][2][1] = "bg_jungle_front002";
aBgNames[0][2][2] = "bg_jungle_front001";
aBgNames[0][2][3] = "bg_jungle_front002";
aBgNames[0][3] = new Array();
aBgNames[0][3][0] = "bg_jungle_foreground001";
aBgNames[0][3][1] = "bg_jungle_foreground001";
aBgNames[0][3][2] = "bg_jungle_foreground001";
aBgNames[0][3][3] = "bg_jungle_foreground001";
aObstaclesDef[0] = new Array();
aObstaclesDef[0].push({sLinkage:"bg_jungle_obstacle003", position:new flash.geom.Point(2200, 20)});
aObstaclesDef[0].push({sLinkage:"bg_jungle_obstacle005", position:new flash.geom.Point(2800, 20)});
aObstaclesDef[0].push({sLinkage:"bg_jungle_obstacle001", position:new flash.geom.Point(4200, 20)});
aObstaclesDef[0].push({sLinkage:"bg_jungle_obstacle002", position:new flash.geom.Point(800, 20)});
aObstaclesDef[0].push({sLinkage:"bg_jungle_obstacle001", position:new flash.geom.Point(1600, 20)});
aObstaclesDef[0].push({sLinkage:"bg_jungle_obstacle003", position:new flash.geom.Point(3600, 20)});
aHostilesDef[0] = new Array();
aHostilesDef[0].push({type:Cannon, position:new flash.geom.Point(1100, 40), id:0});
aHostilesDef[0].push({type:Cannon, position:new flash.geom.Point(3800, 40), id:0});
aPlatformsDef[0] = new Array();
aPlatformsDef[0].push({sType:"base", position:new flash.geom.Point(200, 160)});
aPlatformsDef[0].push({sType:"refill", position:new flash.geom.Point(3100, 80)});
aHostagesDef[0] = new Array();
aHostagesDef[0].push({position:new flash.geom.Point(2500, 40), id:1});
aHostagesDef[0].push({position:new flash.geom.Point(2400, 40), id:0});
aHostagesDef[0].push({position:new flash.geom.Point(4500, 40), id:3});
aHostagesDef[0].push({position:new flash.geom.Point(3900, 40), id:2});
aHostagesDef[0].push({position:new flash.geom.Point(3900, 40), id:1});
aVehiclesDef[0] = null;
aBgNames[1] = new Array();
aBgNames[1][0] = new Array();
aBgNames[1][0][0] = "bg_desert_back";
aBgNames[1][1] = new Array();
aBgNames[1][1][0] = "bg_desert_middle";
aBgNames[1][2] = new Array();
aBgNames[1][2][0] = "bg_desert_front001";
aBgNames[1][2][1] = "bg_desert_front002";
aBgNames[1][2][2] = "bg_desert_front001";
aBgNames[1][2][3] = "bg_desert_front001";
aBgNames[1][2][4] = "bg_desert_front002";
aBgNames[1][3] = new Array();
aBgNames[1][3][0] = "bg_desert_foreground001";
aBgNames[1][3][1] = "bg_desert_foreground001";
aBgNames[1][3][2] = "bg_desert_foreground001";
aBgNames[1][3][3] = "bg_desert_foreground001";
aBgNames[1][3][4] = "bg_desert_foreground001";
aObstaclesDef[1] = new Array();
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle003", position:new flash.geom.Point(2200, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle005", position:new flash.geom.Point(2800, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle001", position:new flash.geom.Point(4200, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle002", position:new flash.geom.Point(800, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle006", position:new flash.geom.Point(1200, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle001", position:new flash.geom.Point(1600, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle004", position:new flash.geom.Point(3200, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle003", position:new flash.geom.Point(3600, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle004", position:new flash.geom.Point(300, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle001", position:new flash.geom.Point(5000, 10)});
aObstaclesDef[1].push({sLinkage:"bg_desert_obstacle002", position:new flash.geom.Point(5500, 10)});
aHostilesDef[1] = new Array();
aHostilesDef[1].push({type:Cannon, position:new flash.geom.Point(1000, 40), id:2});
aHostilesDef[1].push({type:Cannon, position:new flash.geom.Point(4700, 40), id:2});
aHostilesDef[1].push({type:MissileLauncher, position:new flash.geom.Point(3800, 30), id:2});
aPlatformsDef[1] = new Array();
aPlatformsDef[1].push({sType:"base", position:new flash.geom.Point(2400, 160)});
aPlatformsDef[1].push({sType:"refill", position:new flash.geom.Point(5200, 80)});
aHostagesDef[1] = new Array();
aHostagesDef[1].push({position:new flash.geom.Point(500, 40), id:1});
aHostagesDef[1].push({position:new flash.geom.Point(1400, 40), id:0});
aHostagesDef[1].push({position:new flash.geom.Point(4500, 40), id:3});
aHostagesDef[1].push({position:new flash.geom.Point(3400, 40), id:2});
aHostagesDef[1].push({position:new flash.geom.Point(200, 40), id:2});
aHostagesDef[1].push({position:new flash.geom.Point(600, 40), id:3});
aHostagesDef[1].push({position:new flash.geom.Point(4600, 40), id:0});
aHostagesDef[1].push({position:new flash.geom.Point(5800, 40), id:1});
aHostagesDef[1].push({position:new flash.geom.Point(5700, 40), id:3});
aVehiclesDef[1] = null;
aBgNames[2] = new Array();
aBgNames[2][0] = new Array();
aBgNames[2][0][0] = "bg_jungle_back";
aBgNames[2][1] = new Array();
aBgNames[2][1][0] = "bg_jungle_middle";
aBgNames[2][2] = new Array();
aBgNames[2][2][0] = "bg_jungle_front002";
aBgNames[2][2][1] = "bg_jungle_front001";
aBgNames[2][2][2] = "bg_jungle_front001";
aBgNames[2][2][3] = "bg_jungle_front002";
aBgNames[2][2][4] = "bg_jungle_front001";
aBgNames[2][3] = new Array();
aBgNames[2][3][0] = "bg_jungle_foreground001";
aBgNames[2][3][1] = "bg_jungle_foreground001";
aBgNames[2][3][2] = "bg_jungle_foreground001";
aBgNames[2][3][3] = "bg_jungle_foreground001";
aBgNames[2][3][4] = "bg_jungle_foreground001";
aObstaclesDef[2] = new Array();
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle003", position:new flash.geom.Point(2200, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle005", position:new flash.geom.Point(2800, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle001", position:new flash.geom.Point(4200, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle002", position:new flash.geom.Point(800, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle004", position:new flash.geom.Point(1200, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle001", position:new flash.geom.Point(1600, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle004", position:new flash.geom.Point(3200, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle003", position:new flash.geom.Point(3600, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle005", position:new flash.geom.Point(5300, 20)});
aObstaclesDef[2].push({sLinkage:"bg_jungle_obstacle002", position:new flash.geom.Point(4700, 20)});
aHostilesDef[2] = new Array();
aHostilesDef[2].push({type:Cannon, position:new flash.geom.Point(1100, 40), id:0});
aHostilesDef[2].push({type:Cannon, position:new flash.geom.Point(3000, 40), id:0});
aHostilesDef[2].push({type:Cannon, position:new flash.geom.Point(4900, 40), id:0});
aPlatformsDef[2] = new Array();
aPlatformsDef[2].push({sType:"base", position:new flash.geom.Point(300, 160)});
aPlatformsDef[2].push({sType:"refill", position:new flash.geom.Point(4500, 80)});
aPlatformsDef[2].push({sType:"dropZone", position:new flash.geom.Point(5600, 35)});
aHostagesDef[2] = null;
aVehiclesDef[2] = new Array();
aVehiclesDef[2].push({position:new flash.geom.Point(200, 40), type:0});
aBgNames[3] = new Array();
aBgNames[3][0] = new Array();
aBgNames[3][0][0] = "bg_desert_back";
aBgNames[3][1] = new Array();
aBgNames[3][1][0] = "bg_desert_middle";
aBgNames[3][2] = new Array();
aBgNames[3][2][0] = "bg_desert_front002";
aBgNames[3][2][1] = "bg_desert_front001";
aBgNames[3][2][2] = "bg_desert_front001";
aBgNames[3][2][3] = "bg_desert_front002";
aBgNames[3][2][4] = "bg_desert_front001";
aBgNames[3][3] = new Array();
aBgNames[3][3][0] = "bg_desert_foreground001";
aBgNames[3][3][1] = "bg_desert_foreground001";
aBgNames[3][3][2] = "bg_desert_foreground001";
aBgNames[3][3][3] = "bg_desert_foreground001";
aBgNames[3][3][4] = "bg_desert_foreground001";
aObstaclesDef[3] = new Array();
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle003", position:new flash.geom.Point(2200, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle005", position:new flash.geom.Point(2800, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle001", position:new flash.geom.Point(4200, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle002", position:new flash.geom.Point(900, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle004", position:new flash.geom.Point(1200, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle001", position:new flash.geom.Point(1600, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle004", position:new flash.geom.Point(3200, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle003", position:new flash.geom.Point(3600, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle004", position:new flash.geom.Point(300, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle005", position:new flash.geom.Point(5300, 10)});
aObstaclesDef[3].push({sLinkage:"bg_desert_obstacle002", position:new flash.geom.Point(4700, 10)});
aHostilesDef[3] = new Array();
aHostilesDef[3].push({type:Cannon, position:new flash.geom.Point(700, 40), id:2});
aHostilesDef[3].push({type:Cannon, position:new flash.geom.Point(3000, 40), id:2});
aHostilesDef[3].push({type:Cannon, position:new flash.geom.Point(3900, 40), id:2});
aHostilesDef[3].push({type:MissileLauncher, position:new flash.geom.Point(4900, 30), id:2});
aHostilesDef[3].push({type:MissileLauncher, position:new flash.geom.Point(400, 30), id:2});
aPlatformsDef[3] = new Array();
aPlatformsDef[3].push({sType:"base", position:new flash.geom.Point(2400, 160)});
aPlatformsDef[3].push({sType:"refill", position:new flash.geom.Point(5800, 80)});
aPlatformsDef[3].push({sType:"dropZone", position:new flash.geom.Point(500, 35)});
aHostagesDef[3] = null;
aVehiclesDef[3] = new Array();
aVehiclesDef[3].push({position:new flash.geom.Point(5680, 40), type:0});
aBgNames[4] = new Array();
aBgNames[4][0] = new Array();
aBgNames[4][0][0] = "bg_snow_back";
aBgNames[4][1] = new Array();
aBgNames[4][1][0] = "bg_snow_middle";
aBgNames[4][2] = new Array();
aBgNames[4][2][0] = "bg_snow_front002";
aBgNames[4][2][1] = "bg_snow_front001";
aBgNames[4][2][2] = "bg_snow_front002";
aBgNames[4][2][3] = "bg_snow_front002";
aBgNames[4][2][4] = "bg_snow_front001";
aBgNames[4][3] = new Array();
aBgNames[4][3][0] = "bg_snow_foreground001";
aBgNames[4][3][1] = "bg_snow_foreground001";
aBgNames[4][3][2] = "bg_snow_foreground001";
aBgNames[4][3][3] = "bg_snow_foreground001";
aBgNames[4][3][4] = "bg_snow_foreground001";
aObstaclesDef[4] = new Array();
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle005", position:new flash.geom.Point(900, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle002", position:new flash.geom.Point(2000, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle005", position:new flash.geom.Point(3000, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle001", position:new flash.geom.Point(3700, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle004", position:new flash.geom.Point(2400, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle003", position:new flash.geom.Point(1500, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle002", position:new flash.geom.Point(4500, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle004", position:new flash.geom.Point(5000, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle001", position:new flash.geom.Point(5900, 10)});
aObstaclesDef[4].push({sLinkage:"bg_snow_obstacle003", position:new flash.geom.Point(400, 10)});
aHostilesDef[4] = new Array();
aHostilesDef[4].push({type:Cannon, position:new flash.geom.Point(700, 40), id:1});
aHostilesDef[4].push({type:Cannon, position:new flash.geom.Point(3400, 40), id:1});
aHostilesDef[4].push({type:Cannon, position:new flash.geom.Point(4700, 40), id:1});
aHostilesDef[4].push({type:MissileLauncher, position:new flash.geom.Point(1800, 30), id:1});
aHostilesDef[4].push({type:MissileLauncher, position:new flash.geom.Point(2800, 30), id:1});
aHostilesDef[4].push({type:MissileLauncher, position:new flash.geom.Point(1100, 30), id:1});
aPlatformsDef[4] = new Array();
aPlatformsDef[4].push({sType:"base", position:new flash.geom.Point(5500, 160)});
aPlatformsDef[4].push({sType:"refill", position:new flash.geom.Point(2150, 80)});
aHostagesDef[4] = new Array();
aHostagesDef[4].push({position:new flash.geom.Point(200, 40), id:1});
aHostagesDef[4].push({position:new flash.geom.Point(100, 40), id:2});
aHostagesDef[4].push({position:new flash.geom.Point(1100, 40), id:0});
aHostagesDef[4].push({position:new flash.geom.Point(1200, 40), id:3});
aHostagesDef[4].push({position:new flash.geom.Point(1300, 40), id:1});
aHostagesDef[4].push({position:new flash.geom.Point(1600, 40), id:2});
aHostagesDef[4].push({position:new flash.geom.Point(2600, 40), id:0});
aHostagesDef[4].push({position:new flash.geom.Point(2700, 40), id:3});
aHostagesDef[4].push({position:new flash.geom.Point(3200, 40), id:1});
aHostagesDef[4].push({position:new flash.geom.Point(3600, 40), id:2});
aHostagesDef[4].push({position:new flash.geom.Point(4000, 40), id:0});
aHostagesDef[4].push({position:new flash.geom.Point(4100, 40), id:3});
aHostagesDef[4].push({position:new flash.geom.Point(4200, 40), id:1});
aHostagesDef[4].push({position:new flash.geom.Point(4900, 40), id:2});
aVehiclesDef[4] = null;
aBgNames[5] = new Array();
aBgNames[5][0] = new Array();
aBgNames[5][0][0] = "bg_snow_back";
aBgNames[5][1] = new Array();
aBgNames[5][1][0] = "bg_snow_middle";
aBgNames[5][2] = new Array();
aBgNames[5][2][0] = "bg_snow_front001";
aBgNames[5][2][1] = "bg_snow_front001";
aBgNames[5][2][2] = "bg_snow_front002";
aBgNames[5][2][3] = "bg_snow_front001";
aBgNames[5][2][4] = "bg_snow_front002";
aBgNames[5][2][5] = "bg_snow_front001";
aBgNames[5][3] = new Array();
aBgNames[5][3][0] = "bg_snow_foreground001";
aBgNames[5][3][1] = "bg_snow_foreground001";
aBgNames[5][3][2] = "bg_snow_foreground001";
aBgNames[5][3][3] = "bg_snow_foreground001";
aBgNames[5][3][4] = "bg_snow_foreground001";
aBgNames[5][3][5] = "bg_snow_foreground001";
aObstaclesDef[5] = new Array();
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle001", position:new flash.geom.Point(1100, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle003", position:new flash.geom.Point(2000, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle002", position:new flash.geom.Point(3000, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle003", position:new flash.geom.Point(3800, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle001", position:new flash.geom.Point(2400, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle004", position:new flash.geom.Point(1500, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle002", position:new flash.geom.Point(4500, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle005", position:new flash.geom.Point(5000, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle004", position:new flash.geom.Point(5900, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle003", position:new flash.geom.Point(400, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle002", position:new flash.geom.Point(6400, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle001", position:new flash.geom.Point(6800, 10)});
aObstaclesDef[5].push({sLinkage:"bg_snow_obstacle003", position:new flash.geom.Point(5500, 10)});
aHostilesDef[5] = new Array();
aHostilesDef[5].push({type:Cannon, position:new flash.geom.Point(900, 40), id:1});
aHostilesDef[5].push({type:Cannon, position:new flash.geom.Point(3400, 40), id:1});
aHostilesDef[5].push({type:Cannon, position:new flash.geom.Point(4700, 40), id:1});
aHostilesDef[5].push({type:Cannon, position:new flash.geom.Point(6100, 40), id:1});
aHostilesDef[5].push({type:MissileLauncher, position:new flash.geom.Point(1800, 30), id:1});
aHostilesDef[5].push({type:MissileLauncher, position:new flash.geom.Point(4800, 30), id:1});
aHostilesDef[5].push({type:MissileLauncher, position:new flash.geom.Point(800, 30), id:1});
aHostilesDef[5].push({type:MissileLauncher, position:new flash.geom.Point(6900, 30), id:1});
aPlatformsDef[5] = new Array();
aPlatformsDef[5].push({sType:"base", position:new flash.geom.Point(2700, 160)});
aPlatformsDef[5].push({sType:"refill", position:new flash.geom.Point(6600, 80)});
aPlatformsDef[5].push({sType:"refill", position:new flash.geom.Point(500, 80)});
aPlatformsDef[5].push({sType:"dropZone", position:new flash.geom.Point(7000, 35)});
aHostagesDef[5] = null;
aVehiclesDef[5] = new Array();
aVehiclesDef[5].push({position:new flash.geom.Point(100, 40), type:0});
aVehiclesDef[5].push({position:new flash.geom.Point(200, 40), type:0});
bonus = aBonuses[level];
aHostagesInd = new Array();
aVehiclesInd = new Array();
aHostilesInd = new Array();
initLevel();
onEnterFrame = init;
}
static function getInstance(Void) {
return(instance);
}
static function getCanvas(Void) {
return(bmpCanvas);
}
function init(Void) {
onEnterFrame = null;
btnSkip.onRelease = mx.utils.Delegate.create(this, onReleaseSkip);
setOnBoardGauge(0);
setPointsGauge(0);
setLivesGauge(lives);
}
function initLevel(Void) {
aAllyShots = new Array();
aHostileShots = new Array();
aAllyMissiles = new Array();
aHostileMissiles = new Array();
aChafs = new Array();
aPoints = new Array();
createBackground();
setObstacles();
setHostiles();
setHostages();
var _local2 = setPlatforms();
setVehicles(_local2.aDropZones);
chopper = new Chopper(_local2.hqPos);
setLivesGauge(lives);
unloadedHostages = aHostagesInd.length;
placedVehicles = aVehiclesInd.length;
if (aHostagesDef[level].length > 0) {
sMissionType = "hostages";
Summary.getInstance().setHostAlpha(100);
} else {
sMissionType = "vehicle";
Summary.getInstance().setHostAlpha(20);
}
draw();
setBonusGauge(bonus);
setOnBoardGauge(0);
}
function startGame(Void) {
trace("START GAME");
Sounds.setVolume("airnuke", 30);
Sounds.playSound("airnuke", 99999);
Sounds.playSound("CHOPPER2", 99999);
Sounds.startAmbience();
onEnterFrame = mainLoop;
}
function stopGame(Void) {
trace("STOP GAME");
Sounds.stopAmbience();
Sounds.stopAllSounds();
onEnterFrame = null;
}
function clearLevel(Void) {
aAllyShots = new Array();
aHostileShots = new Array();
aAllyMissiles = new Array();
aHostileMissiles = new Array();
aChafs = new Array();
aBgBmps = new Array();
aPlatforms = new Array();
aHostages = new Array();
aHostiles = new Array();
aObstacles = new Array();
aVehicles = new Array();
bmpCanvas.dispose();
bmpDead.dispose();
bmpChopper.dispose();
bmpShots.dispose();
}
function createBackground() {
var _local5 = aBgNames[level].length;
aBgBmps = new Array(_local5);
var _local2 = 0;
while (_local2 < _local5) {
var _local4 = aBgNames[level][_local2].length;
aBgBmps[_local2] = new Object();
aBgBmps[_local2].aBmps = new Array(_local4);
aBgBmps[_local2].totalWidth = 0;
aBgBmps[_local2].segmentWidth = 0;
var _local3 = 0;
while (_local3 < _local4) {
aBgBmps[_local2].aBmps[_local3] = flash.display.BitmapData.loadBitmap(aBgNames[level][_local2][_local3]);
aBgBmps[_local2].totalWidth = aBgBmps[_local2].totalWidth + aBgBmps[_local2].aBmps[_local3].width;
aBgBmps[_local2].segmentWidth = aBgBmps[_local2].aBmps[_local3].width;
_local3++;
}
_local2++;
}
bmpCanvas = new flash.display.BitmapData(screenW, screenH, true, 0);
mcCanvas.attachBitmap(bmpCanvas, 0, "Never");
bmpDead = new flash.display.BitmapData(screenW, screenH, true, 0);
mcCanvas.attachBitmap(bmpDead, 1);
bmpChopper = new flash.display.BitmapData(screenW, screenH, true, 0);
mcCanvas.attachBitmap(bmpChopper, 2, "Never");
bmpShots = new flash.display.BitmapData(screenW, screenH, true, 0);
mcCanvas.attachBitmap(bmpShots, 3, "Never");
bmpForeground = new flash.display.BitmapData(screenW, screenH, true, 0);
mcCanvas.attachBitmap(bmpForeground, 4, "Never");
levelWidth = aBgBmps[2].aBmps.length * 1200;
}
function setObstacles(Void) {
aObstacles = new Array();
var _local4 = aObstaclesDef[level].length;
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = aObstaclesDef[level][_local2];
aObstacles[_local2] = new Obstacle(_local3.sLinkage, _local3.position);
_local2++;
}
}
function setHostiles(Void) {
aHostiles = new Array();
var _local4 = aHostilesDef[level].length;
var _local2 = 0;
while (_local2 < _local4) {
if (!isHostileInd(_local2)) {
var _local3 = aHostilesDef[level][_local2];
aHostiles[_local2] = new _local3.type(_local3.position, _local3.id, _local2);
}
_local2++;
}
}
function removeHostile(refHostile) {
var _local4 = aHostiles.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refHostile == aHostiles[_local2]) {
aHostiles.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function setPlatforms(Void) {
var _local6;
var _local5 = new Array();
aPlatforms = new Array();
var _local4 = aPlatformsDef[level].length;
var _local2 = 0;
while (_local2 < _local4) {
var _local3 = aPlatformsDef[level][_local2];
aPlatforms[_local2] = new Platform(_local3.sType, _local3.position);
if (_local3.sType == "base") {
_local6 = aPlatforms[_local2].plaPos.clone();
_local6.x = _local6.x + (aPlatforms[_local2].plaWidth / 2);
} else if (_local3.sType == "dropZone") {
_local5.push(aPlatforms[_local2]);
}
_local2++;
}
return({hqPos:_local6, aDropZones:_local5});
}
function setHostages(Void) {
aHostages = new Array();
var _local4 = aHostagesDef[level].length;
var _local2 = 0;
while (_local2 < _local4) {
if (!isHostageInd(_local2)) {
var _local3 = aHostagesDef[level][_local2];
aHostages[_local2] = new Hostage(_local3.position, _local3.id, _local2);
}
_local2++;
}
}
function addHostage(pos, id, index) {
if ((index == undefined) || (index == null)) {
index = aHostages.length;
}
var _local3 = new Hostage(pos, id, index);
aHostages.push(_local3);
return(_local3);
}
function removeHostage(refHostage) {
var _local4 = aHostages.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refHostage == aHostages[_local2]) {
aHostages.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function setVehicles(aDropZones) {
aVehicles = new Array();
var _local4 = aVehiclesDef[level].length;
var _local2 = 0;
while (_local2 < _local4) {
if (!isVehicleInd(_local2)) {
var _local3 = aVehiclesDef[level][_local2];
aVehicles[_local2] = new Vehicle(_local3.position, _local3.type, aDropZones, _local2);
}
_local2++;
}
}
function removeVehicle(refVehicle) {
var _local4 = aVehicles.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refVehicle == aVehicles[_local2]) {
aVehicles.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function mainLoop(Void) {
step();
draw();
}
function step(Void) {
chopper.step(aHostiles, aPlatforms);
var _local6 = chopper.getPosition();
var _local5 = chopper.getVelocity();
var _local2 = aAllyShots.length;
var _local3 = 0;
while (_local3 < _local2) {
aAllyShots[_local3].step();
_local3++;
}
_local2 = aHostileShots.length;
_local3 = 0;
while (_local3 < _local2) {
aHostileShots[_local3].step();
_local3++;
}
_local2 = aHostileMissiles.length;
_local3 = 0;
while (_local3 < _local2) {
var _local4;
if (aChafs.length > 0) {
_local4 = aHostileMissiles[_local3].findNearest(aChafs);
} else {
_local4 = chopper;
}
aHostileMissiles[_local3].step(_local4, false);
_local3++;
}
_local2 = aHostiles.length;
_local3 = 0;
while (_local3 < _local2) {
aHostiles[_local3].step(_local6, _local5, aAllyShots);
_local3++;
}
_local2 = aHostages.length;
_local3 = 0;
while (_local3 < _local2) {
aHostages[_local3].step(chopper.rope);
_local3++;
}
_local2 = aVehicles.length;
_local3 = 0;
while (_local3 < _local2) {
aVehicles[_local3].step(chopper.rope);
_local3++;
}
_local2 = aChafs.length;
_local3 = 0;
while (_local3 < _local2) {
aChafs[_local3].step();
_local3++;
}
_local2 = aPoints.length;
_local3 = 0;
while (_local3 < _local2) {
aPoints[_local3].step();
_local3++;
}
if (bonus > 0) {
bonus = bonus - 0.5;
setBonusGauge(Math.floor(bonus));
}
}
function draw(Void) {
var _local7 = chopper.getPosition();
bmpDead.fillRect(bmpDead.rectangle, 0);
bmpForeground.fillRect(new flash.geom.Rectangle(0, 330, screenW, 70), 0);
bmpShots.fillRect(bmpShots.rectangle, 0);
var _local10 = chopper.getScreenPos();
bmpChopper.fillRect(new flash.geom.Rectangle(_local10.x - 70, (screenH - _local10.y) - 65, 140, 130), 0);
var _local5;
var _local3;
var _local2;
_local3 = _local7.x - (screenW * 0.5);
_local3 = _local3 * ((aBgBmps[0].totalWidth - 550) / (levelWidth - 550));
if (_local3 < 0) {
_local3 = 0;
} else if ((_local3 + screenW) > aBgBmps[0].totalWidth) {
_local3 = aBgBmps[0].totalWidth - screenW;
}
bmpCanvas.copyPixels(aBgBmps[0].aBmps[0], new flash.geom.Rectangle(_local3, 0, _local3 + screenW, 400), new flash.geom.Point(0, 0), null, null, true);
_local3 = _local7.x - (screenW * 0.5);
_local3 = _local3 * ((aBgBmps[1].totalWidth - 550) / (levelWidth - 550));
if (_local3 < 0) {
_local3 = 0;
} else if ((_local3 + screenW) > aBgBmps[1].totalWidth) {
_local3 = aBgBmps[1].totalWidth - screenW;
}
bmpCanvas.copyPixels(aBgBmps[1].aBmps[0], new flash.geom.Rectangle(_local3, 0, _local3 + screenW, 400), new flash.geom.Point(0, 400 - aBgBmps[1].aBmps[0].height), null, null, true);
_local3 = _local7.x - (screenW * 0.5);
_local3 = _local3 * ((aBgBmps[2].totalWidth - 550) / (levelWidth - 550));
if (_local3 < 0) {
_local3 = 0;
} else if ((_local3 + screenW) > aBgBmps[2].totalWidth) {
_local3 = aBgBmps[2].totalWidth - screenW;
}
var _local6 = Math.floor(_local3 / aBgBmps[2].segmentWidth);
var _local8 = (_local3 - (aBgBmps[2].segmentWidth * _local6));
bmpCanvas.copyPixels(aBgBmps[2].aBmps[_local6], new flash.geom.Rectangle(_local8, 0, _local8 + screenW, 400), new flash.geom.Point(0, 400 - aBgBmps[2].aBmps[_local6].height), null, null, true);
if ((_local8 + screenW) > aBgBmps[2].segmentWidth) {
_local6++;
var _local9 = (aBgBmps[2].segmentWidth - _local8);
bmpCanvas.copyPixels(aBgBmps[2].aBmps[_local6], new flash.geom.Rectangle(0, 0, (screenW - _local9) + 2, 400), new flash.geom.Point(_local9, 400 - aBgBmps[2].aBmps[_local6].height), null, null, true);
}
_local3 = _local7.x - (screenW * 0.5);
if (_local3 < 0) {
_local3 = 0;
} else if ((_local3 + screenW) > levelWidth) {
_local3 = levelWidth - screenW;
}
_local2 = _local3;
_local5 = aPlatforms.length;
var _local4 = 0;
while (_local4 < _local5) {
aPlatforms[_local4].draw(_local2);
_local4++;
}
_local5 = aObstacles.length;
_local4 = 0;
while (_local4 < _local5) {
aObstacles[_local4].draw(_local2);
_local4++;
}
_local3 = _local7.x - (screenW * 0.5);
_local3 = _local3 * ((aBgBmps[3].totalWidth - 550) / (levelWidth - 550));
if (_local3 < 0) {
_local3 = 0;
} else if ((_local3 + screenW) > aBgBmps[3].totalWidth) {
_local3 = aBgBmps[3].totalWidth - screenW;
}
_local6 = Math.floor(_local3 / aBgBmps[3].segmentWidth);
_local8 = _local3 - (aBgBmps[3].segmentWidth * _local6);
bmpForeground.copyPixels(aBgBmps[3].aBmps[_local6], new flash.geom.Rectangle(_local8, 0, _local8 + screenW, 400), new flash.geom.Point(0, 400 - aBgBmps[3].aBmps[_local6].height), null, null, true);
if ((_local8 + screenW) > aBgBmps[3].segmentWidth) {
_local6++;
var _local9 = (aBgBmps[3].segmentWidth - _local8);
bmpForeground.copyPixels(aBgBmps[3].aBmps[_local6], new flash.geom.Rectangle(0, 0, (screenW - _local9) + 2, 400), new flash.geom.Point(_local9, 400 - aBgBmps[3].aBmps[_local6].height), null, null, true);
}
chopper.draw(levelWidth);
_local5 = aHostages.length;
_local4 = 0;
while (_local4 < _local5) {
aHostages[_local4].draw(_local2);
_local4++;
}
_local5 = aVehicles.length;
_local4 = 0;
while (_local4 < _local5) {
aVehicles[_local4].draw(_local2);
_local4++;
}
_local5 = aHostiles.length;
_local4 = 0;
while (_local4 < _local5) {
aHostiles[_local4].draw(_local2);
_local4++;
}
_local5 = aAllyShots.length;
_local4 = 0;
while (_local4 < _local5) {
aAllyShots[_local4].draw(_local2);
_local4++;
}
_local5 = aHostileShots.length;
_local4 = 0;
while (_local4 < _local5) {
aHostileShots[_local4].draw(_local2);
_local4++;
}
_local5 = aHostileMissiles.length;
_local4 = 0;
while (_local4 < _local5) {
aHostileMissiles[_local4].draw(_local2);
_local4++;
}
_local5 = aChafs.length;
_local4 = 0;
while (_local4 < _local5) {
aChafs[_local4].draw(_local2);
_local4++;
}
_local5 = aPoints.length;
_local4 = 0;
while (_local4 < _local5) {
aPoints[_local4].draw(_local2);
_local4++;
}
}
function createShot(bAlly, shotPos, shotVel, flightTime) {
if (bAlly) {
var _local2 = new Shot("chopper shot", shotPos, shotVel);
aAllyShots.push(_local2);
} else {
var _local2 = new ShotHostile("tank shot", shotPos, shotVel, flightTime);
aHostileShots.push(_local2);
}
}
function removeAllyShot(refShot) {
var _local4 = aAllyShots.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refShot == aAllyShots[_local2]) {
aAllyShots.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function removeHostileShot(refShot) {
var _local4 = aHostileShots.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refShot == aHostileShots[_local2]) {
aHostileShots.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function createExplosion(pos) {
aHostileShots.push(new AirExplosion(pos));
}
function createMissile(bAlly, missilePos, refTarget) {
if (bAlly) {
var _local2 = new Missile("missile", missilePos, refTarget);
aAllyMissiles.push(_local2);
} else {
var _local2 = new Missile("missile", missilePos, chopper);
aHostileMissiles.push(_local2);
}
}
function removeAllyMissile(refMissile) {
var _local4 = aAllyMissiles.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refMissile == aAllyMissiles[_local2]) {
aAllyMissiles.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function removeHostileMissile(refMissile) {
var _local4 = aHostileMissiles.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refMissile == aHostileMissiles[_local2]) {
aHostileMissiles.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function createChaf(chafPos, chafVel) {
aChafs.push(new Chaf(chafPos, chafVel));
}
function removeChaf(refChaf) {
var _local4 = aChafs.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refChaf == aChafs[_local2]) {
aChafs.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function createPoints(pos, value) {
aPoints.push(new PointsCloud(pos, value));
}
function removePoints(refPoints) {
var _local4 = aPoints.length;
var _local2 = 0;
while (_local2 < _local4) {
if (refPoints == aPoints[_local2]) {
aPoints.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function setFuelGauge(amount) {
Summary.getInstance().setFuelGauge(Math.round(amount));
}
function setChafsGauge(amount) {
Summary.getInstance().setChafsGauge(amount);
}
function setLivesGauge(amount) {
Summary.getInstance().setLivesGauge(amount);
}
function setPointsGauge(amount) {
Summary.getInstance().setPointsGauge(amount);
}
function setOnBoardGauge(amount, maxAmount) {
if (amount == undefined) {
amount = 0;
}
amount = amount + unloadedHostages;
maxAmount = aHostagesDef[level].length;
if (maxAmount == undefined) {
maxAmount = 0;
}
Summary.getInstance().setOnBoardGauge(amount, maxAmount);
}
function setBonusGauge(amount) {
Summary.getInstance().setBonusGauge(amount);
}
function actionOnPlatform(sType, pos) {
if (sType == "base") {
if (((unloadTime--) < 0) && (chopper.aHostTaken.length > 0)) {
unloadTime = 40;
var _local2 = chopper.aHostTaken.shift();
var _local3 = addHostage(new flash.geom.Point(), _local2.id, _local2.index);
_local3.getOut(pos);
setOnBoardGauge(chopper.aHostTaken.length, chopper.maxLoad);
addPoints(chopper.getPosition(), 500);
}
}
if (sType != "dropZone") {
chopper.fuel = chopper.fuel + 1;
if (chopper.fuel > 100) {
chopper.fuel = 100;
}
chopper.chafs = chopper.chafs + 1;
if (chopper.chafs > chopper.maxChafs) {
chopper.chafs = chopper.maxChafs;
}
setChafsGauge(chopper.chafs);
}
}
function onLooseLife(Void) {
lives--;
setLivesGauge(lives);
stopGame();
if (lives == 0) {
gameOver(false);
} else {
clearLevel();
initLevel();
startGame();
}
}
function gameOver(bSuccess) {
mcPanel.showGameOver(bSuccess);
Sounds.playSound("loop3", 99999);
}
function checkIfCompleted(Void) {
if (sMissionType == "hostages") {
if (aHostagesDef[level].length == unloadedHostages) {
stopGame();
showSummary();
points = points + Math.floor(bonus);
setPointsGauge(points);
}
} else {
placedVehicles++;
if (placedVehicles == aVehiclesDef[level].length) {
stopGame();
showSummary();
points = points + Math.floor(bonus);
setPointsGauge(points);
}
}
}
function showSummary() {
if (level >= lastLevel) {
gameOver(true);
} else {
mcPanel.showMission();
}
Sounds.playSound("loop3", 99999);
}
function setNextLevel(Void) {
aHostagesInd = new Array();
aHostilesInd = new Array();
aVehiclesInd = new Array();
clearLevel();
level++;
initLevel();
bonus = aBonuses[level];
}
function addPoints(pos, value) {
points = points + value;
createPoints(pos, value);
setPointsGauge(points);
}
function getPoints(Void) {
return(points);
}
function onReleaseSkip(Void) {
stopGame();
showSummary();
points = points + Math.floor(bonus);
setPointsGauge(points);
}
function saveHostageInd(ind) {
aHostagesInd.push(ind);
}
function removeHostageInd(ind) {
var _local3 = aHostagesInd.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ind == aHostagesInd[_local2]) {
aHostages.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function isHostageInd(ind) {
var _local3 = aHostagesInd.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ind == aHostagesInd[_local2]) {
return(true);
}
_local2++;
}
return(false);
}
function saveHostileInd(ind) {
aHostilesInd.push(ind);
}
function removeHostileInd(ind) {
var _local3 = aHostilesInd.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ind == aHostilesInd[_local2]) {
aHostiles.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function isHostileInd(ind) {
var _local3 = aHostilesInd.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ind == aHostilesInd[_local2]) {
return(true);
}
_local2++;
}
return(false);
}
function saveVehicleInd(ind) {
aVehiclesInd.push(ind);
}
function removeVehicleInd(ind) {
var _local3 = aVehiclesInd.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ind == aVehiclesInd[_local2]) {
aVehicles.splice(_local2, 1);
return(undefined);
}
_local2++;
}
}
function isVehicleInd(ind) {
var _local3 = aVehiclesInd.length;
var _local2 = 0;
while (_local2 < _local3) {
if (ind == aVehiclesInd[_local2]) {
return(true);
}
_local2++;
}
return(false);
}
function createShrapnel(pos) {
aPoints.push(new Particle(pos));
aPoints.push(new Particle(pos));
aPoints.push(new Particle(pos));
}
function removeShrapnel(refShrapnel) {
removePoints(refShrapnel);
}
static var gravity = 0.02;
static var screenH = 400;
static var screenW = 550;
static var level = 0;
static var lastLevel = 5;
var lives = 3;
var points = 0;
var unloadTime = 10;
}
Symbol 425 MovieClip [__Packages.Cannon] Frame 0
class Cannon
{
var index, bmpBase, bmpBarrel, bmpExplode, bmpCanvas, position, VEL, energy, frameExp, shotDelay, bOnScreen, bFlash, rotation, screenPos;
function Cannon (pos, type, indexNew) {
index = indexNew;
var _local2 = flash.display.BitmapData.loadBitmap("gunTank");
bmpBase = new flash.display.BitmapData(77, 56, true, 0);
bmpBase.copyPixels(_local2, new flash.geom.Rectangle(0, type * 56, 77, 56), new flash.geom.Point(0, 0), null, null, true);
_local2 = flash.display.BitmapData.loadBitmap("gunTankGun");
bmpBarrel = new flash.display.BitmapData(39, 24, true, 0);
bmpBarrel.copyPixels(_local2, new flash.geom.Rectangle(0, type * 24, 39, 24), new flash.geom.Point(0, 0), null, null, true);
bmpExplode = flash.display.BitmapData.loadBitmap("explosion0");
bmpCanvas = Game.bmpDead;
position = pos.clone();
VEL = 10;
energy = 5;
frameExp = 0;
shotDelay = 1;
bOnScreen = false;
bFlash = false;
}
function getPosition(Void) {
return(position.clone());
}
function step(chopperPos, chopperVel, aShots) {
if ((!bOnScreen) || (energy == 0)) {
return(undefined);
}
var _local4 = aShots.length;
var _local3 = 0;
while (_local3 < _local4) {
var _local2 = Shot(aShots[_local3]);
var _local7 = (_local2.position.x - position.x);
var _local6 = (_local2.position.y - (position.y - 2));
if (((_local7 * _local7) + (_local6 * _local6)) < 1600) {
Game.getInstance().removeAllyShot(_local2);
energy--;
bFlash = true;
Game.getInstance().createShrapnel(_local2.position);
if (energy == 0) {
Game.getInstance().saveHostileInd(index);
Game.getInstance().addPoints(position, 200);
Sounds.playSound("bazooka");
trace("destroyed");
}
break;
}
_local3++;
}
var _local7 = ((chopperPos.x + (chopperVel.x * 10)) - position.x);
var _local6 = ((chopperPos.y + (chopperVel.y * 10)) - position.y);
rotation = Math.atan2(_local6, _local7);
if (rotation > maxRot) {
rotation = maxRot;
} else if (rotation < minRot) {
rotation = minRot;
}
if ((shotDelay--) <= 0) {
shotDelay = 40 + Math.round(30 * Math.random());
var _local10 = (new flash.geom.Point((position.x - 24) + (30 * Math.cos(rotation)), (position.y + 52) + (30 * Math.sin(rotation))));
var _local9 = (rotation + ((Math.PI * Math.round(15 * (1 - (2 * Math.random())))) / 180));
var _local11 = (new flash.geom.Point(VEL * Math.cos(_local9), VEL * Math.sin(_local9)));
var _local8 = (20 + Math.round(15 * Math.random()));
_local8 = (5 + Math.round(Math.sqrt((_local7 * _local7) + (_local6 * _local6)) / VEL)) + Math.round(15 * (1 - (2 * Math.random())));
Game.getInstance().createShot(false, _local10, _local11, _local8);
Sounds.playSound("gunfire");
}
}
function draw(leftEdge) {
var _local8 = ((position.x - leftEdge) - (bmpBase.width / 2));
var _local7 = (position.y + (bmpBase.height / 2));
screenPos = new flash.geom.Point(_local8, _local7);
if ((_local8 > ((-bmpBase.width) * 1)) && (_local8 < Game.screenW)) {
bOnScreen = true;
if (energy > 0) {
var _local2 = (new flash.display.BitmapData(bmpBarrel.width, bmpBarrel.height, true, 0));
_local2.copyPixels(bmpBarrel, bmpBarrel.rectangle, new flash.geom.Point(0, 0), null, null, true);
var _local3 = (new flash.geom.Matrix());
_local3.translate((-_local2.width) / 2, (-_local2.height) / 2);
var _local6 = (new flash.geom.Matrix());
_local6.rotate(-rotation);
_local3.concat(_local6);
var _local5 = (new flash.geom.Matrix());
_local5.translate(_local8 + 14, Game.screenH - (_local7 - 4));
_local3.concat(_local5);
var _local9 = (bFlash ? (new flash.geom.ColorTransform(0, 0, 0, 0, 255, 255, 255, 255)) : null);
bmpCanvas.draw(_local2, _local3, _local9, null, null, true);
var _local4 = bmpBase.clone();
if (bFlash) {
_local4.colorTransform(_local4.rectangle, new flash.geom.ColorTransform(0, 0, 0, 0, 255, 255, 255, 255));
}
bmpCanvas.copyPixels(_local4, _local4.rectangle, new flash.geom.Point(screenPos.x, Game.screenH - screenPos.y), null, null, true);
bFlash = false;
} else {
_local8 = position.x - leftEdge;
_local7 = position.y;
screenPos = new flash.geom.Point(_local8, _local7);
drawExplosion(screenPos, true);
}
} else {
bOnScreen = false;
}
}
function drawExplosion(pos, bRemove) {
var _local3 = _root.attachMovie("explosion2", "mcExp", _root.getNextHighestDepth());
_local3.gotoAndStop(frameExp + 1);
var _local4 = (new flash.geom.Matrix());
_local4.translate(pos.x, Game.screenH - pos.y);
bmpCanvas.draw(_local3, _local4, null, null, null, true);
_local3.removeMovieClip();
frameExp++;
if (frameExp == 27) {
if (bRemove) {
onEndDeadAnim();
}
}
}
function onEndDeadAnim(Void) {
Game.getInstance().removeHostile(this);
}
var maxRot = 2.61799387799149;
var minRot = 0.523598775598299;
}
Symbol 426 MovieClip [__Packages.WorkObject] Frame 0
interface WorkObject
{
}
Symbol 427 MovieClip [__Packages.Shot] Frame 0
class Shot implements WorkObject
{
var bmpShot, bmpCanvas, position, velocity, acc, rotation, ct, colorInd, bChopper, screenPos;
function Shot (sLinkageId, pos, vel) {
bmpShot = flash.display.BitmapData.loadBitmap(sLinkageId);
bmpCanvas = Game.bmpShots;
position = pos.clone();
position.x = position.x - (bmpShot.width / 2);
position.y = position.y - (bmpShot.height / 2);
velocity = vel.clone();
var _loc4 = (vel.x * 0.05);
var _loc3 = (vel.y * 0.05);
acc = new flash.geom.Point(_loc4, _loc3);
rotation = Math.atan2(vel.y, vel.x);
var _loc5 = Math.random();
ct = new flash.geom.ColorTransform(_loc5, 1, 1, 1, 0, 0, 0, 0);
colorInd = Math.floor(180 * Math.random());
bChopper = true;
}
function step(Void) {
velocity.x = velocity.x + acc.x;
velocity.y = velocity.y + acc.y;
position.x = position.x + velocity.x;
position.y = position.y + velocity.y;
if (bChopper) {
if (checkCollision() || (position.y < 20)) {
Game.getInstance().removeAllyShot(this);
}
}
if ((((screenPos.y < 0) || (screenPos.y > Game.screenH)) || (screenPos.x < 0)) || (screenPos.x > Game.screenW)) {
Game.getInstance().removeAllyShot(this);
}
}
function draw(leftEdge) {
var _loc6 = (position.x - leftEdge);
var _loc5 = position.y;
screenPos = new flash.geom.Point(_loc6, _loc5);
var _loc2 = (new flash.display.BitmapData(bmpShot.width, bmpShot.height, true, 0));
_loc2.copyPixels(bmpShot, bmpShot.rectangle, new flash.geom.Point(0, 0), null, null, true);
var _loc3 = (new flash.geom.Matrix());
_loc3.translate((-_loc2.width) / 2, (-_loc2.height) / 2);
var _loc7 = (new flash.geom.Matrix());
_loc7.rotate(-rotation);
_loc3.concat(_loc7);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(_loc6, Game.screenH - _loc5);
_loc3.concat(_loc4);
if (ct != null) {
colorInd = colorInd + 600;
var _loc12 = (0.2 + ((0.8 * (Math.sin((3.141593 * colorInd) / 180) + 1)) / 2));
ct = new flash.geom.ColorTransform(1, _loc12, 0, 1, 0, 0, 0, 100);
}
var _loc9 = ct;
var _loc8 = "normal";
var _loc10 = null;
var _loc11 = true;
bmpCanvas.draw(_loc2, _loc3, _loc9, _loc8, _loc10, _loc11);
}
function checkCollision(Void) {
var _loc3 = screenPos.x;
var _loc2 = (Game.screenH - (screenPos.y - 10));
return(Game.bmpDead.hitTest(new flash.geom.Point(0, 0), 250, new flash.geom.Point(_loc3, _loc2)));
}
}
Symbol 428 MovieClip [__Packages.Sounds] Frame 0
class Sounds
{
static var mainSounds, mcSoundsHolder, soundsList, randomSoundNamesList, ambienceInterval;
function Sounds () {
}
static function setSounds(Void) {
if (mainSounds == undefined) {
mainSounds = new Sound(_root);
mcSoundsHolder = _root.createEmptyMovieClip("mcSoundsHolder", _root.getNextHighestDepth());
init();
mainSoundUp();
playSound("loop3", 99999);
}
}
static function mainSoundUp(Void) {
_root.mcSoundBtn.gotoAndStop("up");
_root.mcSoundBtn.btnSound.onRelease = mainSoundDown;
mainSounds.setVolume(100);
}
static function mainSoundDown(Void) {
_root.mcSoundBtn.gotoAndStop("down");
_root.mcSoundBtn.btnSound.onRelease = mainSoundUp;
mainSounds.setVolume(0);
}
static function init(Void) {
var _loc6 = new Array("airnuke", "ak47", "CHOPPER2", "bazooka", "explos", "explsion", "gunfire", "missile_snd", "warning_alarm", "loop3");
soundsList = new Object();
var _loc5 = _loc6.length;
var _loc2 = 0;
while (_loc2 < _loc5) {
var _loc1 = _loc6[_loc2];
var _loc4 = mcSoundsHolder.createEmptyMovieClip("holder" + _loc2, _loc2);
soundsList[_loc1] = new Sound(_loc4);
soundsList[_loc1].attachSound(_loc1);
_loc2++;
}
setVolume("ak47", 150);
setVolume("CHOPPER2", 50);
setVolume("explsion", 150);
randomSoundNamesList = new Array("30cal5", "auto", "explos", "helicopt", "machinegun", "tankfire");
_loc5 = randomSoundNamesList.length;
var _loc2 = 0;
while (_loc2 < _loc5) {
_loc1 = randomSoundNamesList[_loc2];
if (soundsList[_loc1] == undefined) {
var _loc3 = mcSoundsHolder.getNextHighestDepth();
_loc4 = mcSoundsHolder.createEmptyMovieClip("holder" + _loc3, _loc3);
soundsList[_loc1] = new Sound(_loc4);
soundsList[_loc1].attachSound(_loc1);
}
_loc2++;
}
}
static function playSound(name, loops) {
if (loops == undefined) {
loops = 0;
}
soundsList[name].start(0, loops);
}
static function stopSound(name) {
soundsList[name].stop();
}
static function stopAllSounds(sExcept) {
for (var _loc1 in soundsList) {
if (_loc1 != sExcept) {
stopSound(_loc1);
}
}
}
static function setVolume(name, volume) {
soundsList[name].setVolume(volume);
}
static function getVolume(name) {
return(soundsList[name].getVolume());
}
static function playAmbience(Void) {
var _loc2 = randomSoundNamesList.length;
var _loc3 = Math.floor(_loc2 * Math.random());
var _loc1 = randomSoundNamesList[_loc3];
var _loc4 = (20 + Math.floor(15 * Math.random()));
setVolume(_loc1, _loc4);
playSound(_loc1, 0);
stopAmbience();
startAmbience();
}
static function startAmbience(bFirst) {
var _loc1;
if (bFirst) {
_loc1 = 1000 + Math.round(1000 * Math.random());
} else {
_loc1 = 1000 + Math.round(1000 * Math.random());
}
ambienceInterval = setInterval(playAmbience, _loc1);
}
static function stopAmbience() {
clearInterval(ambienceInterval);
}
}
Symbol 429 MovieClip [__Packages.MissileLauncher] Frame 0
class MissileLauncher
{
var index, bmpBase, bmpHead, bmpExplode, bmpCanvas, position, VEL, energy, frameExp, shotDelay, bOnScreen, bFlash, rotation, screenPos;
function MissileLauncher (pos, type, indexNew) {
index = indexNew;
bmpBase = flash.display.BitmapData.loadBitmap("ml base");
bmpHead = flash.display.BitmapData.loadBitmap("ml head");
bmpExplode = flash.display.BitmapData.loadBitmap("explosion0");
bmpCanvas = Game.bmpDead;
position = pos.clone();
VEL = 10;
energy = 5;
frameExp = 0;
shotDelay = Math.round(10 * Math.random());
bOnScreen = false;
bFlash = false;
}
function getPosition(Void) {
return(position.clone());
}
function step(chopperPos, chopperVel, aShots) {
if ((!bOnScreen) && (energy > 0)) {
return(undefined);
}
var _loc4 = aShots.length;
var _loc3 = 0;
while (_loc3 < _loc4) {
var _loc2 = Shot(aShots[_loc3]);
var _loc7 = (_loc2.position.x - position.x);
var _loc6 = (_loc2.position.y - position.y);
if (((_loc7 * _loc7) + (_loc6 * _loc6)) < 400) {
Game.getInstance().removeAllyShot(_loc2);
energy--;
bFlash = true;
Game.getInstance().createShrapnel(_loc2.position);
if (energy == 0) {
Game.getInstance().saveHostileInd(index);
Game.getInstance().addPoints(position, 500);
Sounds.playSound("bazooka");
trace("destroyed");
}
break;
}
_loc3++;
}
_loc7 = chopperPos.x - position.x;
_loc6 = chopperPos.y - position.y;
rotation = Math.atan2(_loc6, _loc7);
if (rotation > maxRot) {
rotation = maxRot;
} else if (rotation < minRot) {
rotation = minRot;
}
if ((shotDelay--) <= 0) {
shotDelay = 90 + Math.round(60 * Math.random());
var _loc8 = (new flash.geom.Point(position.x + (30 * Math.cos(rotation)), position.y + (30 * Math.sin(rotation))));
Game.getInstance().createMissile(false, _loc8, null);
Sounds.playSound("missile_snd");
}
}
function draw(leftEdge) {
var _loc8 = ((position.x - leftEdge) - (bmpBase.width / 2));
var _loc7 = (position.y + (bmpBase.height / 2));
screenPos = new flash.geom.Point(_loc8, _loc7);
if ((_loc8 > ((-bmpBase.width) * 1)) && (_loc8 < (Game.screenW + (bmpBase.width * 0.5)))) {
bOnScreen = true;
if (energy > 0) {
var _loc2 = (new flash.display.BitmapData(bmpHead.width, bmpHead.height, true, 0));
_loc2.copyPixels(bmpHead, bmpHead.rectangle, new flash.geom.Point(0, 0), null, null, true);
var _loc3 = (new flash.geom.Matrix());
_loc3.translate((-_loc2.width) / 2, (-_loc2.height) / 2);
var _loc6 = (new flash.geom.Matrix());
_loc6.rotate(-rotation);
_loc3.concat(_loc6);
var _loc5 = (new flash.geom.Matrix());
_loc5.translate(_loc8 + (bmpBase.width * 0.5), Game.screenH - ((_loc7 - bmpBase.height) + 22));
_loc3.concat(_loc5);
var _loc9 = (bFlash ? (new flash.geom.ColorTransform(0, 0, 0, 0, 255, 255, 255, 255)) : null);
bmpCanvas.draw(_loc2, _loc3, _loc9, null, null, true);
var _loc4 = bmpBase.clone();
if (bFlash) {
_loc4.colorTransform(_loc4.rectangle, new flash.geom.ColorTransform(0, 0, 0, 0, 255, 255, 255, 255));
}
bmpCanvas.copyPixels(_loc4, _loc4.rectangle, new flash.geom.Point(screenPos.x, Game.screenH - screenPos.y), null, null, true);
bFlash = false;
} else {
_loc8 = position.x - leftEdge;
_loc7 = position.y;
screenPos = new flash.geom.Point(_loc8, _loc7);
drawExplosion(screenPos, true);
}
} else {
bOnScreen = false;
}
}
function drawExplosion(pos, bRemove) {
var _loc3 = _root.attachMovie("explosion2", "mcExp", _root.getNextHighestDepth());
_loc3.gotoAndStop(frameExp + 1);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(pos.x, Game.screenH - pos.y);
bmpCanvas.draw(_loc3, _loc4, null, null, null, true);
_loc3.removeMovieClip();
frameExp++;
if (frameExp == 27) {
if (bRemove) {
onEndDeadAnim();
}
}
}
function onEndDeadAnim(Void) {
Game.getInstance().removeHostile(this);
}
var maxRot = 2.356194;
var minRot = 0.7853982;
}
Symbol 430 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var f = function () {
var target = arguments.callee.target;
var func = arguments.callee.func;
return(func.apply(target, arguments));
};
f.target = obj;
f.func = func;
return(f);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 431 MovieClip [__Packages.Chopper] Frame 0
class Chopper
{
var refGame, bmpChopper, bmpBackRot, bmpTopRot, bmpExplode, bmpWheels, bmpTmp, bmpCanvas, width, height, acc, accMax, speed, position, bOnPlatform, screenPos, frame, backFrame, topFrame, frameExp, screenH, airDrag, rotation, maxRot, bShowWheels, frameWheels, fuel, aHostTaken, energy, bDestroyed, bShowExplosion, bTurn, turnDir, turnDelay, chafs, bChaf, chafDelay, bShot, shotDelay, cannonAngle, cannonAngleMin, cannonAngleMax, bAutoAim, aCannonPos, aTopPos, rope, ropePos, aBottom, ropeEndPos, bRopePress;
function Chopper (newPos) {
refGame = Game.getInstance();
bmpChopper = flash.display.BitmapData.loadBitmap("chopper");
bmpBackRot = flash.display.BitmapData.loadBitmap("backRot");
bmpTopRot = flash.display.BitmapData.loadBitmap("topRot");
bmpExplode = flash.display.BitmapData.loadBitmap("explosion0");
bmpWheels = flash.display.BitmapData.loadBitmap("chopper wheels");
bmpTmp = new flash.display.BitmapData(130, 58);
bmpCanvas = Game.bmpChopper;
width = 130;
height = 53;
acc = new flash.geom.Point(0, 0);
accMax = new flash.geom.Point(15, 5);
speed = new flash.geom.Point(0, 0);
position = newPos.clone();
position.y = position.y + 27;
bOnPlatform = false;
screenPos = new flash.geom.Point();
frame = 3;
backFrame = 1;
topFrame = 1;
frameExp = 0;
screenH = Game.screenH;
airDrag = 0.98;
rotation = 0;
maxRot = 0.5235988;
bShowWheels = true;
frameWheels = 6;
fuel = 100;
aHostTaken = new Array();
energy = 5;
bDestroyed = false;
bShowExplosion = false;
bTurn = false;
turnDir = -1;
turnDelay = 0;
chafs = maxChafs;
bChaf = false;
chafDelay = 0;
bShot = false;
shotDelay = 0;
cannonAngle = 0;
cannonAngleMin = -0.7853982;
cannonAngleMax = 0.1745329;
bAutoAim = true;
aCannonPos = new Array();
aCannonPos[0] = new flash.geom.Point(-15, -50);
aCannonPos[3] = new flash.geom.Point(0, -50);
aCannonPos[6] = new flash.geom.Point(15, -50);
aTopPos = new Array();
aTopPos[0] = new flash.geom.Point(49, 19);
aTopPos[1] = new flash.geom.Point(59, 19);
aTopPos[2] = new flash.geom.Point(65, 19);
aTopPos[3] = new flash.geom.Point(65, 19);
aTopPos[4] = new flash.geom.Point(65, 19);
aTopPos[5] = new flash.geom.Point(72, 19);
aTopPos[6] = new flash.geom.Point(84, 19);
rope = new Rope(this);
ropePos = new flash.geom.Point(0, -24);
refGame.setFuelGauge(fuel);
refGame.setChafsGauge(chafs);
refGame.setOnBoardGauge(0, maxLoad);
aBottom = new Array();
aBottom[0] = {x0:-22, x1:2};
aBottom[3] = {x0:-12, x1:12};
aBottom[6] = {x0:-2, x1:22};
}
function getPosition(Void) {
return(position.clone());
}
function getScreenPos(Void) {
return(screenPos.clone());
}
function getVelocity(Void) {
return(speed.clone());
}
function step(aTargets, aPlatforms) {
if (bDestroyed) {
return(undefined);
}
keyControl();
if (bOnPlatform) {
acc.x = 0;
}
bOnPlatform = false;
if (rope.bHasCargo) {
var _loc7 = rope.refCargo.weightFactor;
if ((_loc7 > 1) && (rope.length >= 50)) {
acc.y = acc.y - 0.1;
acc.x = acc.x / _loc7;
acc.y = acc.y / _loc7;
}
}
if (fuel > 0) {
if (!bGodMode) {
fuel = fuel - 0.05;
if ((fuel < 30) && (!bFuelSnd)) {
bFuelSnd = true;
Sounds.playSound("warning_alarm", 99999);
} else if ((fuel > 30) && (bFuelSnd)) {
bFuelSnd = false;
Sounds.stopSound("warning_alarm");
}
}
} else {
acc.y = -0.2;
}
refGame.setFuelGauge(fuel);
if (bTurn || (((frame != 0) && (frame != 3)) && (frame != 6))) {
if ((turnDelay--) < 0) {
frame = frame + turnDir;
turnDelay = 1;
if (frame <= 0) {
frame = 0;
if (!bTurn) {
bTurn = false;
}
} else if (frame >= 6) {
frame = 6;
if (!bTurn) {
bTurn = false;
}
}
}
}
var _loc2 = (new flash.geom.Point());
_loc2.x = position.x;
_loc2.y = position.y - 25;
switch (frame) {
case 0 :
_loc2.x = _loc2.x - (15 * Math.cos(-rotation));
_loc2.y = _loc2.y + (15 * Math.sin(-rotation));
break;
case 6 :
_loc2.x = _loc2.x + (15 * Math.cos(rotation));
_loc2.y = _loc2.y + (15 * Math.sin(rotation));
}
if (bAutoAim) {
var _loc8 = findNearest(aTargets, true);
if (_loc8 != null) {
var _loc9 = _loc8.getPosition();
var _loc11 = (_loc9.x - _loc2.x);
var _loc10 = (_loc9.y - _loc2.y);
var _loc13 = Math.atan2(_loc10, _loc11);
cannonAngle = _loc13 - rotation;
if (frame == 6) {
if (cannonAngle > cannonAngleMax) {
cannonAngle = cannonAngleMax;
} else if (cannonAngle < cannonAngleMin) {
cannonAngle = cannonAngleMin;
}
} else if (frame == 0) {
if ((cannonAngle > 0) && (cannonAngle < (3.141593 - cannonAngleMax))) {
cannonAngle = 3.141593 - cannonAngleMax;
} else if ((cannonAngle < 0) && (cannonAngle > (-3.141593 - cannonAngleMin))) {
cannonAngle = -3.141593 - cannonAngleMin;
}
}
} else {
cannonAngle = ((frame == 6) ? 0 : 3.141593);
}
}
var _loc3 = (rotation + cannonAngle);
if (frame == 0) {
_loc3 = rotation + cannonAngle;
}
if (bShot && (((frame == 0) || (frame == 6)) || (frame == 3))) {
if ((shotDelay--) < 0) {
shotDelay = 3;
var _loc14 = true;
var _loc5 = (new flash.geom.Point(0, 0));
var _loc4 = 13;
switch (frame) {
case 0 :
_loc5 = new flash.geom.Point(_loc4 * Math.cos(_loc3), _loc4 * Math.sin(_loc3));
_loc2.y = _loc2.y - Math.round(4 * Math.random());
break;
case 3 :
_loc5 = new flash.geom.Point(0, -_loc4);
break;
case 6 :
_loc5 = new flash.geom.Point(_loc4 * Math.cos(_loc3), _loc4 * Math.sin(_loc3));
_loc2.y = _loc2.y - Math.round(4 * Math.random());
}
_loc5.x = _loc5.x + speed.x;
refGame.createShot(_loc14, _loc2, _loc5);
}
}
if ((chafDelay--) < 0) {
chafDelay = 0;
}
if ((bChaf && (chafDelay == 0)) && (chafs > 0)) {
chafDelay = 10;
chafs--;
refGame.setChafsGauge(chafs);
var _loc12 = position.clone();
var _loc6 = (new flash.geom.Point());
if (speed.x == 0) {
speed.x = Number.MIN_VALUE;
}
if (speed.y == 0) {
speed.y = Number.MIN_VALUE;
}
_loc6.x = ((-(0 + (1 * Math.random()))) * Math.abs(speed.x)) / speed.x;
_loc6.y = ((-(0 + (1 * Math.random()))) * Math.abs(speed.y)) / speed.y;
refGame.createChaf(_loc12, _loc6);
}
backFrame++;
backFrame = backFrame % 7;
topFrame++;
topFrame = topFrame % 14;
acc.y = acc.y - Game.gravity;
speed.x = speed.x + acc.x;
speed.y = speed.y + acc.y;
speed.x = speed.x * airDrag;
speed.y = speed.y * airDrag;
position.x = position.x + speed.x;
position.y = position.y + speed.y;
if (position.x < 0) {
position.x = 0;
speed.x = speed.x - (speed.x * 0.1);
} else if (position.x > refGame.levelWidth) {
position.x = refGame.levelWidth;
speed.x = speed.x - (speed.x * 0.1);
}
if (position.y < 50) {
position.y = 50;
die();
} else if (position.y > 340) {
position.y = 340;
speed.y = 0;
}
rotation = (-12.56637 * speed.x) / 180;
if (rotation > maxRot) {
rotation = maxRot;
} else if (rotation < (-maxRot)) {
rotation = -maxRot;
}
var _loc15 = (new flash.geom.Point(24 * Math.sin(rotation), -24 * Math.cos(rotation)));
ropeEndPos = rope.step(position.add(_loc15), speed);
checkPlatforms(aPlatforms);
if (!bOnPlatform) {
if (checkCollision()) {
die();
}
}
}
function draw(levelWidth) {
if (!bDestroyed) {
bmpTmp.fillRect(bmpTmp.rectangle, 0);
if (frame == 0) {
drawTopRot(aTopPos[frame]);
drawChopper();
drawBackRot();
} else if (frame == 6) {
drawBackRot();
drawTopRot(aTopPos[frame]);
drawChopper();
} else {
drawTopRot(aTopPos[frame]);
drawChopper();
}
var _loc3 = (new flash.geom.Matrix());
_loc3.translate((-bmpTmp.width) / 2, (-bmpTmp.height) / 2);
var _loc5 = (new flash.geom.Matrix());
_loc5.rotate(-rotation);
_loc3.concat(_loc5);
var _loc13 = bmpTmp.width;
var _loc11 = bmpTmp.height;
var _loc2 = (Game.screenW * 0.5);
if (position.x < (Game.screenW * 0.5)) {
_loc2 = position.x;
} else if (position.x > (levelWidth - (Game.screenW * 0.5))) {
_loc2 = _loc2 * 2;
_loc2 = _loc2 - (levelWidth - position.x);
}
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(_loc2, screenH - position.y);
_loc3.concat(_loc4);
var _loc7 = null;
var _loc6 = "normal";
var _loc8 = null;
var _loc10 = true;
screenPos.y = position.y;
screenPos.x = _loc2;
bmpCanvas.draw(bmpTmp, _loc3, _loc7, _loc6, _loc8, _loc10);
if (bShowExplosion) {
drawExplosion(screenPos, false);
}
var _loc9 = (new flash.geom.Point(24 * Math.sin(rotation), -24 * Math.cos(rotation)));
rope.draw(screenPos.add(_loc9));
} else {
drawExplosion(screenPos, true);
}
}
function drawBackRot(Void) {
var _loc3 = (new flash.geom.Rectangle(0, 23 * backFrame, 23, 23));
var _loc2 = (new flash.geom.Point());
if (frame == 0) {
_loc2.x = 105;
_loc2.y = 0;
} else if (frame == 6) {
_loc2.x = 1;
_loc2.y = 0;
}
bmpTmp.copyPixels(bmpBackRot, _loc3, _loc2, null, null, true);
}
function drawTopRot(pos) {
pos = new flash.geom.Point(65, 15);
if ((topFrame % 2) == 0) {
var _loc3 = (new flash.geom.Point(pos.x - (bmpTopRot.width / 2), pos.y - bmpTopRot.height));
bmpTmp.copyPixels(bmpTopRot, bmpTopRot.rectangle, _loc3, null, null, true);
}
}
function drawChopper(Void) {
if (bShowWheels) {
if (frameWheels < 6) {
frameWheels = frameWheels + 2;
}
var _loc2 = (new flash.geom.Rectangle(0, 10 * Math.round(frame / 3), 130, 10));
var _loc3 = (new flash.geom.Point(0, 41 + frameWheels));
bmpTmp.copyPixels(bmpWheels, _loc2, _loc3, null, null, true);
} else if (frameWheels > 0) {
if ((frame % 3) != 0) {
frameWheels = 0;
}
_loc2 = new flash.geom.Rectangle(0, 10 * Math.round(frame / 3), 130, 10);
_loc3 = new flash.geom.Point(0, 41 + frameWheels);
bmpTmp.copyPixels(bmpWheels, _loc2, _loc3, null, null, true);
frameWheels = frameWheels - 2;
}
_loc2 = new flash.geom.Rectangle(0, 53 * frame, 130, 53);
_loc3 = new flash.geom.Point(0, 0);
bmpTmp.copyPixels(bmpChopper, _loc2, _loc3, null, null, true);
}
function drawExplosion(pos, bRemove) {
var _loc3 = _root.attachMovie("explosion0", "mcExp", _root.getNextHighestDepth());
_loc3.gotoAndStop(frameExp + 1);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(pos.x, Game.screenH - pos.y);
bmpCanvas.draw(_loc3, _loc4, null, null, null, true);
_loc3.removeMovieClip();
frameExp++;
if (frameExp == 35) {
if (bRemove) {
onEndDeadAnim();
} else {
bShowExplosion = false;
}
}
}
function keyControl(Void) {
var _loc3 = 38;
var _loc7 = 40;
var _loc4 = 37;
var _loc6 = 39;
var _loc2 = 67;
var _loc9 = 88;
var _loc5 = 90;
var _loc8 = 32;
acc.y = 0;
if (Key.isDown(_loc3)) {
acc.y = acc.y + 0.25;
if (acc.y > accMax.y) {
acc.y = accMax.y;
}
} else if (Key.isDown(_loc7)) {
acc.y = acc.y - 0.25;
if (acc.y < (-accMax.y)) {
acc.y = -accMax.y;
}
}
acc.x = 0;
if (!bOnPlatform) {
if (Key.isDown(_loc4)) {
acc.x = -0.3;
if ((!bShot) && ((!bTurn) || (turnDir == 1))) {
bTurn = true;
turnDir = -1;
turnDelay = 0;
}
} else if (Key.isDown(_loc6)) {
acc.x = 0.3;
if ((!bShot) && ((!bTurn) || (turnDir == -1))) {
bTurn = true;
turnDir = 1;
turnDelay = 0;
}
} else {
bTurn = false;
}
}
if (Key.isDown(_loc5)) {
bChaf = true;
} else {
bChaf = false;
}
if (Key.isDown(_loc2) && (!bShot)) {
bShot = true;
Sounds.playSound("ak47", 99999);
} else if ((!Key.isDown(_loc2)) && (bShot)) {
bShot = false;
Sounds.stopSound("ak47");
}
if (Key.isDown(_loc8) && (aHostTaken.length < maxLoad)) {
if (!bRopePress) {
bRopePress = true;
rope.switchMode();
}
} else {
bRopePress = false;
}
}
function getDamage(damage) {
energy = energy - damage;
if (energy <= 0) {
die();
} else {
frameExp = 0;
bShowExplosion = true;
}
}
function die(Void) {
if (bGodMode) {
return(undefined);
}
Sounds.stopSound("CHOPPER2");
Sounds.playSound("bazooka");
bDestroyed = true;
frameExp = 0;
Game.getInstance().removeHostage(rope.refCargo);
if (rope.refCargo.sType == "vehicle") {
rope.switchMode();
}
}
function findNearest(aObjects, bInFront) {
var _loc11 = aObjects.length;
var _loc8 = Number.MAX_VALUE;
var _loc6 = Number.MAX_VALUE;
var _loc10 = null;
var _loc9 = null;
var _loc2 = 0;
while (_loc2 < _loc11) {
if (aObjects[_loc2].bOnScreen) {
var _loc4 = aObjects[_loc2].getPosition();
var _loc7 = _loc4.subtract(position);
var _loc3 = _loc7.length;
if (_loc3 < _loc8) {
_loc8 = _loc3;
_loc10 = aObjects[_loc2];
}
if ((((frame == 0) && (_loc4.x < position.x)) && (_loc3 < _loc6)) || (((frame == 6) && (_loc4.x > position.x)) && (_loc3 < _loc6))) {
_loc6 = _loc3;
_loc9 = aObjects[_loc2];
}
}
_loc2++;
}
return((bInFront ? (_loc9) : (_loc10)));
}
function increaseLoad(id, index) {
aHostTaken.push({id:id, index:index});
refGame.setOnBoardGauge(aHostTaken.length, maxLoad);
if (aHostTaken.length >= maxLoad) {
refGame.mcAlert.gotoAndPlay("show");
}
}
function onEndDeadAnim(Void) {
refGame.onLooseLife();
}
function checkCollision(Void) {
var _loc1 = (new flash.geom.Point(0, 0));
return(Game.bmpDead.hitTest(_loc1, 50, Game.bmpChopper, _loc1, 254));
}
function checkPlatforms(aPlatforms) {
bOnPlatform = false;
var _loc7 = aPlatforms.length;
var _loc10 = 40;
var _loc9 = height;
var _loc4 = 0;
while (_loc4 < _loc7) {
var _loc2 = aPlatforms[_loc4];
if (_loc2.bOnScreen) {
var _loc3;
if (((frame != 0) && (frame != 3)) && (frame != 6)) {
_loc3 = aBottom[3];
} else {
_loc3 = aBottom[frame];
}
var _loc6 = (position.x + _loc3.x0);
var _loc5 = (position.x + _loc3.x1);
if (((_loc2.plaPos.x < _loc6) && ((_loc2.plaPos.x + _loc2.plaWidth) > _loc5)) && (position.y > _loc2.plaPos.y)) {
if ((position.y - _loc2.plaPos.y) < ((height / 2) + 2)) {
if (!bShowWheels) {
bShowWheels = true;
frameWheels = 0;
}
if (speed.length < 2) {
if (acc.y <= 0) {
speed.x = 0;
speed.y = 0;
rotation = 0;
position.y = (1 + _loc2.plaPos.y) + (height / 2);
}
bOnPlatform = true;
refGame.actionOnPlatform(_loc2.sType, _loc2.position);
return;
}
} else if ((position.y - _loc2.plaPos.y) < ((height / 2) + 3)) {
if (!bShowWheels) {
bShowWheels = true;
frameWheels = 0;
}
} else {
bShowWheels = false;
}
}
}
_loc4++;
}
}
var bGodMode = false;
var maxChafs = 5;
var bFuelSnd = false;
var maxLoad = 5;
var unloadTime = 20;
}
Symbol 432 MovieClip [__Packages.Rope] Frame 0
class Rope
{
var refChopper, bmpRope, bmpCanvas, begPos, endPos, bHasCargo, length, maxLength, mode, angle, maxAngle, angleVel, refCargo, scrPos;
function Rope (refChopperNew) {
refChopper = refChopperNew;
bmpRope = flash.display.BitmapData.loadBitmap("rope");
bmpCanvas = Game.bmpShots;
begPos = new flash.geom.Point();
endPos = new flash.geom.Point();
bHasCargo = false;
length = 0;
maxLength = 100;
mode = 0;
angle = 0;
maxAngle = 1.047198;
angleVel = 0;
refCargo = null;
}
function step(begPosNew, chopVel) {
begPos = begPosNew.clone();
if (mode == 1) {
if (refCargo.sType == "vehicle") {
if (length > 62) {
length = length - 2;
} else if (length < 58) {
length = length + 2;
}
} else if (length < maxLength) {
length = length + 2;
}
} else if (mode == 2) {
if (length > 0) {
length = length - 2;
} else {
refCargo = null;
bHasCargo = false;
length = 0;
angleVel = 0;
setMode(0);
}
}
if (length > 0) {
angle = angle + ((3.141593 * chopVel.x) / 240);
if (angle > maxAngle) {
angle = angle + ((maxAngle - angle) * 0.1);
} else if (angle < (-maxAngle)) {
angle = angle + (((-maxAngle) - angle) * 0.1);
}
var _loc3 = 0.006;
var _loc2 = ((-angle) * _loc3);
angleVel = angleVel + _loc2;
angleVel = angleVel * 0.97;
angle = angle + angleVel;
do {
endPos.x = begPos.x - (length * Math.sin(angle));
endPos.y = begPos.y - (length * Math.cos(angle));
if (checkCollision() || (endPos.y < 30)) {
length = length - 1;
}
} while (checkCollision() || (endPos.y < 30));
return(endPos);
}
}
function draw(scrPosNew) {
scrPos = scrPosNew.clone();
var _loc4 = (new flash.display.BitmapData(1, length));
_loc4.copyPixels(bmpRope, bmpRope.rectangle, new flash.geom.Point(0, 0));
var _loc2 = (new flash.geom.Matrix());
_loc2.rotate(angle);
var _loc3 = (new flash.geom.Matrix());
if (angle > 0) {
_loc3.translate(scrPos.x, Game.screenH - scrPos.y);
} else {
_loc3.translate(scrPos.x, Game.screenH - scrPos.y);
}
_loc2.concat(_loc3);
var _loc5 = true;
bmpCanvas.draw(_loc4, _loc2, null, null, null, _loc5);
}
function setMode(modeNew) {
mode = modeNew;
if (mode == 1) {
endPos = begPos.clone();
}
}
function switchMode(Void) {
if ((mode == 0) || (mode == 2)) {
setMode(1);
} else if (mode == 1) {
setMode(2);
if (refCargo.sType == "vehicle") {
refCargo.mode = 2;
refCargo.vel = refChopper.speed.clone();
}
}
}
function checkCollision(Void) {
var _loc3 = (scrPos.x + (endPos.x - begPos.x));
var _loc2 = (Game.screenH - endPos.y);
return(Game.bmpDead.hitTest(new flash.geom.Point(0, 0), 250, new flash.geom.Point(_loc3, _loc2)));
}
}
Symbol 433 MovieClip [__Packages.Obstacle] Frame 0
class Obstacle
{
var position, bOnScreen, bmpCanvas, bmpObstacle, width, screenPos;
function Obstacle (sLinkage, pos) {
position = pos.clone();
bOnScreen = false;
bmpCanvas = Game.bmpDead;
bmpObstacle = flash.display.BitmapData.loadBitmap(sLinkage);
width = bmpObstacle.width;
}
function draw(leftEdge) {
var _loc2 = ((position.x - leftEdge) - (width / 2));
var _loc3 = (position.y + bmpObstacle.height);
screenPos = new flash.geom.Point(_loc2, _loc3);
if ((_loc2 > (-bmpObstacle.width)) && (_loc2 < (Game.screenW + (bmpObstacle.width / 2)))) {
bOnScreen = true;
bmpCanvas.copyPixels(bmpObstacle, bmpObstacle.rectangle, new flash.geom.Point(screenPos.x, Game.screenH - screenPos.y), null, null, true);
}
}
}
Symbol 434 MovieClip [__Packages.Platform] Frame 0
class Platform
{
var sType, position, bOnScreen, bmpCanvas, plaPos, plaWidth, radarPos, arrowPos, bmpPlatform, width, screenPos;
function Platform (sTypeNew, pos) {
sType = sTypeNew;
position = pos.clone();
bOnScreen = false;
bmpCanvas = Game.bmpDead;
var _loc2;
if (sType == "base") {
_loc2 = "platform hq";
plaPos = new flash.geom.Point(position.x + 17, position.y - 87);
plaWidth = 90;
radarPos = new flash.geom.Point(166, 0);
} else if (sType == "refill") {
_loc2 = "platform refill";
plaPos = new flash.geom.Point(position.x + 7, position.y - 29);
plaWidth = 84;
radarPos = new flash.geom.Point(131, 0);
} else if (sType == "dropZone") {
_loc2 = "platform drop zone";
plaPos = new flash.geom.Point(position.x + 0, position.y - 0);
plaWidth = 89;
arrowPos = new flash.geom.Point(45, 80);
}
bmpPlatform = flash.display.BitmapData.loadBitmap(_loc2);
width = bmpPlatform.width;
}
function draw(leftEdge) {
var _loc2 = (position.x - leftEdge);
var _loc3 = position.y;
screenPos = new flash.geom.Point(_loc2, _loc3);
if ((_loc2 > (-bmpPlatform.width)) && (_loc2 < Game.screenW)) {
bOnScreen = true;
if (((frame >= 13) && (frame <= 36)) && (sType != "dropZone")) {
drawRadar();
}
bmpCanvas.copyPixels(bmpPlatform, bmpPlatform.rectangle, new flash.geom.Point(screenPos.x, Game.screenH - screenPos.y), null, null, true);
if (((frame < 13) || (frame > 36)) && (sType != "dropZone")) {
drawRadar();
}
if (sType == "dropZone") {
drawArrow();
}
}
}
function drawRadar(Void) {
frame++;
frame = frame % 50;
var _loc3 = _root.attachMovie("radar", "radar", 993);
_loc3.gotoAndStop(frame + 1);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(screenPos.x + radarPos.x, Game.screenH - (screenPos.y + radarPos.y));
bmpCanvas.draw(_loc3, _loc4, null, null, null, true);
_loc3.removeMovieClip();
}
function drawArrow(Void) {
frame++;
frame = frame % 10;
var _loc3 = _root.attachMovie("arrow", "arrow", 994);
_loc3.gotoAndStop(frame + 1);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(screenPos.x + arrowPos.x, Game.screenH - (screenPos.y + arrowPos.y));
Game.bmpCanvas.draw(_loc3, _loc4, null, null, null, true);
_loc3.removeMovieClip();
}
var frame = 0;
}
Symbol 435 MovieClip [__Packages.Hostage] Frame 0
class Hostage
{
var mode, id, index, basePos, position, bmpCanvas, aBmp, aFrames, frame, bOnScreen, dir, modeTime, screenPos, endPos, bmpHostage;
function Hostage (basePosNew, idNew, indexNew) {
mode = 0;
id = idNew;
index = indexNew;
basePos = basePosNew.clone();
position = basePos.clone();
bmpCanvas = Game.bmpShots;
aBmp = new Array();
aBmp[0] = flash.display.BitmapData.loadBitmap("hostage walk " + id);
aBmp[1] = flash.display.BitmapData.loadBitmap("hostage jump " + id);
aBmp[2] = flash.display.BitmapData.loadBitmap("hostage hold " + id);
aBmp[3] = flash.display.BitmapData.loadBitmap("hostage walk " + id);
aFrames = new Array();
aFrames[0] = 10;
aFrames[1] = 10;
aFrames[2] = 1;
aFrames[3] = 10;
frame = Math.round(9 * Math.random());
}
function step(refRope) {
if (!bOnScreen) {
return(undefined);
}
if ((mode == 0) || (mode == 1)) {
var _loc3 = (refRope.endPos.x - position.x);
var _loc4 = (refRope.endPos.y - position.y);
if (((Math.abs(_loc4) < 20) && (Math.abs(_loc3) < 60)) && (!refRope.bHasCargo)) {
if (_loc3 < 0) {
dir = -1;
} else {
dir = 1;
}
mode = 0;
position.x = position.x + (2 * dir);
if (Math.abs(_loc3) < 10) {
mode = 2;
refRope.refCargo = this;
refRope.bHasCargo = true;
}
} else {
if (modeTime > 0) {
modeTime--;
} else {
modeTime = 30 + Math.round(30 * Math.random());
mode = Math.round(1 * Math.random());
if (mode == 0) {
dir = ((Math.random() < 0.5) ? -1 : 1);
}
}
if (mode == 0) {
position.x = position.x + (2 * dir);
screenPos.x = screenPos.x + (2 * dir);
if (position.x < (basePos.x - maxDist)) {
dir = 1;
} else if (position.x > (basePos.x + maxDist)) {
dir = -1;
}
}
if ((screenPos.x > (width / 2)) && (screenPos.x < (Game.screenW - (width / 2)))) {
while (checkCollision() == 0) {
screenPos.x = screenPos.x + 2;
position.x = position.x + 2;
dir = 1;
}
while (checkCollision() == 1) {
screenPos.x = screenPos.x - 2;
position.x = position.x - 2;
dir = -1;
}
}
}
} else if (mode == 2) {
position.x = refRope.endPos.x;
position.y = refRope.endPos.y;
if (refRope.length == 0) {
Game.getInstance().addPoints(position, 100);
Game.getInstance().chopper.increaseLoad(id, index);
Game.getInstance().removeHostage(this);
}
} else if (mode == 3) {
position.x = position.x + 1;
if (position.x >= endPos.x) {
Game.getInstance().unloadedHostages++;
Game.getInstance().checkIfCompleted();
Game.getInstance().removeHostage(this);
Game.getInstance().setOnBoardGauge();
}
}
frame++;
frame = frame % aFrames[mode];
}
function draw(leftEdge) {
bOnScreen = false;
var _loc2 = ((position.x - leftEdge) - (width / 2));
var _loc4 = (position.y + (height / 2));
screenPos = new flash.geom.Point(_loc2, _loc4);
if ((_loc2 > ((-width) / 2)) && (_loc2 < (Game.screenW + (width / 2)))) {
bOnScreen = true;
bmpHostage = new flash.display.BitmapData(width, height, true, 0);
var _loc3 = frame;
if ((mode == 0) || (mode == 3)) {
_loc3 = Math.floor(frame / 2);
if (dir == -1) {
_loc3 = _loc3 + 5;
}
}
var _loc5 = (new flash.geom.Rectangle(0, height * _loc3, width, height));
bmpHostage.copyPixels(aBmp[mode], _loc5, new flash.geom.Point(0, 0), null, null, true);
bmpCanvas.copyPixels(bmpHostage, bmpHostage.rectangle, new flash.geom.Point(_loc2, Game.screenH - _loc4), null, null, true);
}
}
function getOut(hqPos) {
mode = 3;
position.x = hqPos.x + 116;
position.y = hqPos.y - 122;
endPos = position.clone();
endPos.x = endPos.x + 44;
dir = 1;
Game.getInstance().saveHostageInd(index);
}
function checkCollision(Void) {
var _loc2 = (screenPos.x + (width / 2));
var _loc3 = (Game.screenH - position.y);
if (Game.bmpDead.hitTest(new flash.geom.Point(0, 0), 250, new flash.geom.Point(_loc2, _loc3))) {
return(0);
}
_loc2 = screenPos.x + width;
if (Game.bmpDead.hitTest(new flash.geom.Point(0, 0), 250, new flash.geom.Point(_loc2, _loc3))) {
return(1);
}
return(null);
}
var sType = "hostage";
static var maxDist = 70;
static var width = 24;
static var height = 30;
var weightFactor = 1;
}
Symbol 436 MovieClip [__Packages.Vehicle] Frame 0
class Vehicle
{
var index, position, aDropZones, bmpCanvas, bmpVehicle, width, height, bDestroyed, mode, frameExp, bTaken, vel, screenPos, bOnScreen;
function Vehicle (posNew, id, aDropZonesNew, indexNew) {
index = indexNew;
position = posNew.clone();
aDropZones = aDropZonesNew;
bmpCanvas = Game.bmpShots;
bmpVehicle = flash.display.BitmapData.loadBitmap("vehicle " + id);
width = bmpVehicle.width;
height = bmpVehicle.height;
bDestroyed = false;
mode = 0;
frameExp = 0;
bTaken = false;
vel = new flash.geom.Point(0, 0);
}
function step(refRope) {
if (mode == 0) {
var _loc6 = (refRope.endPos.x - position.x);
var _loc5 = (refRope.endPos.y - position.y);
if (((Math.abs(_loc5) < 10) && (Math.abs(_loc6) < 10)) && (!refRope.bHasCargo)) {
mode = 1;
refRope.refCargo = this;
refRope.bHasCargo = true;
Game.getInstance().mcAlert.gotoAndPlay("show2");
}
} else if (mode == 1) {
position.x = refRope.endPos.x;
position.y = refRope.endPos.y;
if (checkPlatform()) {
Game.getInstance().saveVehicleInd(index);
Game.getInstance().checkIfCompleted();
mode = null;
refRope.refCargo = null;
refRope.bHasCargo = false;
} else {
var _loc7 = checkCollision();
if ((_loc7 || (position.y < 41)) && (bTaken)) {
die();
} else if ((!bTaken) && (position.y > 44)) {
bTaken = true;
}
}
} else if (mode == 2) {
vel.y = vel.y - 0.5;
vel.x = vel.x * 0.98;
vel.y = vel.y * 0.98;
position.x = position.x + vel.x;
position.y = position.y + vel.y;
var _loc3 = 0;
while (_loc3 < aDropZones.length) {
var _loc2 = aDropZones[_loc3];
if ((((position.x - (width / 2)) > _loc2.plaPos.x) && ((position.x + (width / 2)) < (_loc2.plaPos.x + _loc2.plaWidth))) && ((position.y - _loc2.plaPos.y) < ((height / 2) + 2))) {
position.y = _loc2.plaPos.y + (height / 2);
if (Math.abs(vel.y) < 0.5) {
Game.getInstance().saveVehicleInd(index);
Game.getInstance().checkIfCompleted();
mode = null;
}
vel.x = 0;
vel.y = Math.abs(vel.y) * 0.7;
} else if (checkCollision() || (position.y < 40)) {
die();
}
_loc3++;
}
}
}
function draw(leftEdge) {
var _loc2 = ((position.x - leftEdge) - (width / 2));
var _loc5 = (position.y + (height / 2));
screenPos = new flash.geom.Point(_loc2, _loc5);
if (!bDestroyed) {
if ((_loc2 > (-width)) && (_loc2 < (Game.screenW + width))) {
bOnScreen = true;
if (mode == 0) {
var _loc3 = (Math.sin(angle) + 1);
angle = angle + 0.6;
var _loc6 = (new flash.display.BitmapData(width + 10, height + 10, true, 0));
var _loc9 = 16777215;
var _loc15 = (0.4 + (0.4 * _loc3));
var _loc12 = (3 + (4 * _loc3));
var _loc11 = (3 + (4 * _loc3));
var _loc13 = (4 + (4 * _loc3));
var _loc7 = 1;
var _loc10 = false;
var _loc14 = false;
var _loc8 = (new flash.filters.GlowFilter(_loc9, _loc15, _loc12, _loc11, _loc13, _loc7, _loc10, _loc14));
_loc6.applyFilter(bmpVehicle, bmpVehicle.rectangle, new flash.geom.Point(5, 5), _loc8);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(screenPos.x + 5, (Game.screenH - screenPos.y) - 5);
bmpCanvas.draw(_loc6, _loc4, null, null, null, true);
} else {
bmpCanvas.copyPixels(bmpVehicle, bmpVehicle.rectangle, new flash.geom.Point(_loc2, Game.screenH - _loc5), null, null, true);
}
}
} else {
drawExplosion(new flash.geom.Point(position.x - leftEdge, position.y), true);
}
if ((mode == null) && ((_loc2 < (-width)) || (_loc2 > (Game.screenW + width)))) {
Game.getInstance().removeVehicle(this);
}
}
function die(Void) {
mode = null;
bDestroyed = true;
Sounds.playSound("bazooka");
}
function drawExplosion(pos, bRemove) {
var _loc3 = _root.attachMovie("explosion2", "mcExp", _root.getNextHighestDepth());
_loc3.gotoAndStop(frameExp + 1);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(pos.x, Game.screenH - pos.y);
bmpCanvas.draw(_loc3, _loc4, null, null, null, true);
_loc3.removeMovieClip();
frameExp++;
if (frameExp == 27) {
if (bRemove) {
onEndDeadAnim();
}
}
}
function onEndDeadAnim(Void) {
Game.getInstance().onLooseLife();
}
function checkCollision(Void) {
var _loc3 = (-screenPos.x);
var _loc2 = (-(Game.screenH - screenPos.y));
return(Game.bmpDead.hitTest(new flash.geom.Point(_loc3, _loc2), 250, bmpVehicle, new flash.geom.Point(0, 0), 250));
}
function checkPlatform(Void) {
var _loc3 = 0;
while (_loc3 < aDropZones.length) {
var _loc2 = aDropZones[_loc3];
if ((((position.x - (width / 2)) > _loc2.plaPos.x) && ((position.x + (width / 2)) < (_loc2.plaPos.x + _loc2.plaWidth))) && ((position.y - _loc2.plaPos.y) < ((height / 2) + 2))) {
position.y = _loc2.plaPos.y + (height / 2);
return(true);
}
_loc3++;
}
return(false);
}
var sType = "vehicle";
static var maxDist = 10;
var weightFactor = 3;
var angle = 0;
}
Symbol 437 MovieClip [__Packages.ShotHostile] Frame 0
class ShotHostile extends Shot
{
var flightTime, acc, ct, bChopper, velocity, position, screenPos;
function ShotHostile (sLinkageId, pos, vel, newFlightTime) {
super(sLinkageId, pos, vel);
flightTime = newFlightTime;
acc.x = 0;
acc.y = -0.15;
ct = null;
bChopper = false;
}
function step(Void) {
if ((flightTime--) > 0) {
velocity.x = velocity.x + acc.x;
velocity.y = velocity.y + acc.y;
position.x = position.x + velocity.x;
position.y = position.y + velocity.y;
if ((((screenPos.y < 50) || (screenPos.y > Game.screenH)) || (screenPos.x < -30)) || (screenPos.x > (Game.screenW + 30))) {
Game.getInstance().removeHostileShot(this);
}
} else {
Game.getInstance().createExplosion(position);
Game.getInstance().removeHostileShot(this);
}
}
}
Symbol 438 MovieClip [__Packages.AirExplosion] Frame 0
class AirExplosion
{
var position, bmpCanvas, bmpExplosion, scale, screenPos;
function AirExplosion (pos) {
position = pos.clone();
bmpCanvas = Game.bmpDead;
bmpExplosion = flash.display.BitmapData.loadBitmap("explosion3");
scale = 0;
Sounds.playSound("explsion");
}
function step(Void) {
scale = scale + ((0.75 - scale) * 0.15);
if (scale > 0.7) {
Game.getInstance().removeHostileShot(this);
}
}
function draw(leftEdge) {
var _loc5 = (position.x - leftEdge);
var _loc7 = position.y;
screenPos = new flash.geom.Point(_loc5, _loc7);
var _loc2 = (new flash.geom.Matrix());
_loc2.translate((-bmpExplosion.width) / 2, (-bmpExplosion.height) / 2);
var _loc6 = (new flash.geom.Matrix());
_loc6.scale(scale, scale);
_loc2.concat(_loc6);
var _loc13 = ((bmpExplosion.width * scale) / 2);
var _loc12 = ((bmpExplosion.height * scale) / 2);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(_loc5, Game.screenH - position.y);
_loc2.concat(_loc4);
var _loc3 = ((1 - (scale / 0.7)) * 255);
var _loc9 = (new flash.geom.ColorTransform(0, 0, 0, 1 - scale, _loc3, _loc3, _loc3, _loc3));
var _loc8 = "normal";
var _loc10 = null;
var _loc11 = true;
bmpCanvas.draw(bmpExplosion, _loc2, _loc9, _loc8, _loc10, _loc11);
}
}
Symbol 439 MovieClip [__Packages.Missile] Frame 0
class Missile
{
var bAlly, bExp, bmpMissile, bmpCanvas, position, velMax, velLin, velocity, rotation, acc, screenPos, frameExp;
function Missile (sLinkageId, pos, refTarget, bAllyNew) {
bAlly = true;
bExp = false;
bmpMissile = flash.display.BitmapData.loadBitmap(sLinkageId);
if (bAlly) {
bmpCanvas = Game.bmpShots;
} else {
bmpCanvas = Game.bmpDead;
}
position = pos.clone();
velMax = 15;
velLin = 0;
velocity = new flash.geom.Point();
var _loc2 = refTarget.getPosition();
var _loc4 = (_loc2.x - position.x);
var _loc3 = (_loc2.y - position.y);
rotation = Math.atan2(_loc3, _loc4);
acc = new flash.geom.Point();
draw();
}
function step(refTarget, bAlly) {
if (bExp) {
return(undefined);
}
var _loc6 = refTarget.getPosition();
var _loc4 = (_loc6.x - position.x);
var _loc3 = (_loc6.y - position.y);
var _loc2 = Math.atan2(_loc3, _loc4);
var _loc5 = (_loc2 - rotation);
if ((_loc2 / rotation) < 0) {
if ((_loc2 > 0) && (_loc5 > 3.141593)) {
_loc2 = _loc2 - 6.283185;
} else if ((_loc2 < 0) && (_loc5 < -3.141593)) {
_loc2 = _loc2 + 6.283185;
}
}
rotation = rotation + ((_loc2 - rotation) * 0.2);
var _loc8 = velocity.length;
if (velLin < velMax) {
velLin = velLin + 0.15;
} else {
velLin = velMax;
}
velocity.x = velLin * Math.cos(rotation);
velocity.y = velLin * Math.sin(rotation);
position.x = position.x + velocity.x;
position.y = position.y + velocity.y;
if ((screenPos.x < -200) || (screenPos.x > (Game.screenW + 200))) {
if (bAlly) {
Game.getInstance().removeAllyMissile(this);
} else {
Game.getInstance().removeHostileMissile(this);
}
}
if (Math.sqrt((_loc4 * _loc4) + (_loc3 * _loc3)) < 30) {
refTarget.getDamage(100);
if (bAlly) {
Game.getInstance().removeAllyMissile(this);
} else {
Game.getInstance().removeHostileMissile(this);
}
}
if (Game.bmpDead.hitTest(new flash.geom.Point(0, 0), 250, new flash.geom.Point(screenPos.x, Game.screenH - screenPos.y))) {
bExp = true;
frameExp = 0;
}
}
function draw(leftEdge) {
var _loc6 = (position.x - leftEdge);
var _loc5 = position.y;
screenPos = new flash.geom.Point(_loc6, _loc5);
if (bExp) {
drawExplosion(screenPos, true);
} else {
var _loc2 = (new flash.display.BitmapData(bmpMissile.width, bmpMissile.height, true, 0));
_loc2.copyPixels(bmpMissile, bmpMissile.rectangle, new flash.geom.Point(0, 0), null, null, true);
var _loc3 = (new flash.geom.Matrix());
_loc3.translate((-_loc2.width) / 2, (-_loc2.height) / 2);
var _loc7 = (new flash.geom.Matrix());
_loc7.rotate(-rotation);
_loc3.concat(_loc7);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(_loc6, Game.screenH - _loc5);
_loc3.concat(_loc4);
var _loc9 = null;
var _loc8 = "normal";
var _loc10 = null;
var _loc11 = true;
bmpCanvas.draw(_loc2, _loc3, _loc9, _loc8, _loc10, _loc11);
}
}
function drawExplosion(pos, bRemove) {
var _loc4 = _root.attachMovie("explosion0", "mcExp", _root.getNextHighestDepth());
_loc4.gotoAndStop(frameExp + 1);
var _loc5 = (new flash.geom.Matrix());
_loc5.translate(pos.x, Game.screenH - pos.y);
var _loc3 = (new flash.geom.Matrix());
_loc3.scale(0.5, 0.5);
_loc3.concat(_loc5);
bmpCanvas.draw(_loc4, _loc3, null, null, null, true);
_loc4.removeMovieClip();
frameExp++;
if (frameExp == 25) {
if (bRemove) {
onEndDeadAnim();
}
}
}
function onEndDeadAnim(Void) {
if (bAlly) {
Game.getInstance().removeAllyMissile(this);
} else {
Game.getInstance().removeHostileMissile(this);
}
}
function findNearest(aObjects) {
var _loc8 = aObjects.length;
var _loc5 = Number.MAX_VALUE;
var _loc7 = null;
var _loc2 = 0;
while (_loc2 < _loc8) {
var _loc3 = aObjects[_loc2].getPosition();
_loc3.subtract(position);
var _loc4 = _loc3.length;
if (_loc4 < _loc5) {
_loc5 = _loc4;
_loc7 = aObjects[_loc2];
}
_loc2++;
}
return(_loc7);
}
}
Symbol 440 MovieClip [__Packages.Chaf] Frame 0
class Chaf
{
var position, velocity, angle, frame, frameExp, bExplode, flightTime, bmpChaf, bmpExplode, bmpCanvas, screenPos;
function Chaf (pos, vel) {
position = pos.clone();
velocity = vel.clone();
angle = 0;
frame = 0;
frameExp = 0;
bExplode = false;
flightTime = 90;
bmpChaf = flash.display.BitmapData.loadBitmap("chaf");
bmpExplode = flash.display.BitmapData.loadBitmap("explosion0");
bmpCanvas = Game.bmpShots;
}
function getPosition(Void) {
return(position.clone());
}
function step(Void) {
if (!bExplode) {
angle = angle + (0.5 * Math.random());
velocity.y = velocity.y - 0.02;
velocity.x = velocity.x * 0.97;
velocity.y = velocity.y * 0.97;
position.x = position.x + velocity.x;
position.y = position.y + velocity.y;
frame++;
frame = frame % 4;
if (((flightTime--) <= 0) || (position.y < 0)) {
Game.getInstance().removeChaf(this);
}
}
}
function draw(leftEdge) {
var _loc4 = ((position.x - leftEdge) + (10 * Math.cos(angle)));
var _loc3 = (position.y + (5 * Math.sin(angle)));
screenPos = new flash.geom.Point(_loc4, _loc3);
if (!bExplode) {
var _loc2 = (new flash.display.BitmapData(12, 12, true, 0));
_loc2.copyPixels(bmpChaf, new flash.geom.Rectangle(0, Math.floor(frame / 2) * 6, 6, 6), new flash.geom.Point(3, 3), null, null, true);
var _loc5 = (new flash.filters.BlurFilter(2, 2, 2));
_loc2.applyFilter(_loc2, _loc2.rectangle, new flash.geom.Point(0, 0), _loc5);
_loc2.colorTransform(_loc2.rectangle, new flash.geom.ColorTransform(1, 1, 1, (flightTime + 50) / 90, 0, 0, 0, 0));
bmpCanvas.copyPixels(_loc2, _loc2.rectangle, new flash.geom.Point(screenPos.x - 6, Game.screenH - (screenPos.y + 6)), null, null, true);
} else {
_loc4 = (position.x - leftEdge) + (10 * Math.cos(angle));
_loc3 = position.y + (5 * Math.sin(angle));
screenPos = new flash.geom.Point(_loc4, _loc3);
drawExplosion(screenPos, true);
}
}
function drawExplosion(pos, bRemove) {
var _loc3 = _root.attachMovie("explosion1", "mcExp", _root.getNextHighestDepth());
_loc3.gotoAndStop(frameExp + 1);
var _loc4 = (new flash.geom.Matrix());
_loc4.translate(pos.x, Game.screenH - pos.y);
bmpCanvas.draw(_loc3, _loc4, null, null, null, true);
_loc3.removeMovieClip();
frameExp++;
if (frameExp == 17) {
if (bRemove) {
onEndDeadAnim();
}
}
}
function onEndDeadAnim(Void) {
Game.getInstance().removeChaf(this);
}
function getDamage(damage) {
Sounds.playSound("explsion");
bExplode = true;
}
}
Symbol 441 MovieClip [__Packages.PointsCloud] Frame 0
class PointsCloud
{
var position, value, frame, bmpCanvas;
function PointsCloud (pos, valueNew) {
position = pos.clone();
value = valueNew;
frame = 0;
bmpCanvas = Game.bmpShots;
}
function step(Void) {
if ((frame++) == 35) {
Game.getInstance().removePoints(this);
}
}
function draw(leftEdge) {
var _loc7 = (position.x - leftEdge);
var _loc6 = position.y;
var _loc4 = _root.getNextHighestDepth();
var _loc3 = _root.attachMovie("points anim", "mcPoints" + _loc4, _loc4);
_loc3.mcPoints.tfFront.text = value;
_loc3.mcPoints.tfOutline0.text = value;
_loc3.mcPoints.tfOutline1.text = value;
_loc3.mcPoints.tfOutline2.text = value;
_loc3.mcPoints.tfOutline3.text = value;
_loc3.gotoAndStop(frame);
var _loc5 = (new flash.geom.Matrix());
_loc5.translate(_loc7, Game.screenH - _loc6);
bmpCanvas.draw(_loc3, _loc5, null, null, null, true);
_loc3.removeMovieClip();
}
}
Symbol 442 MovieClip [__Packages.Particle] Frame 0
class Particle
{
var position, velocity, type, alpha, frame, flightTime, bmpCanvas, screenPos;
function Particle (pos) {
position = pos.clone();
var _loc3 = (12 * (1 - (2 * Math.random())));
var _loc2 = (7 + (9 * Math.random()));
velocity = new flash.geom.Point(_loc3, _loc2);
type = Math.floor(4 * Math.random());
alpha = 100;
frame = 0;
flightTime = 5 + Math.round(25 * Math.random());
bmpCanvas = Game.bmpShots;
}
function getPosition(Void) {
return(position.clone());
}
function step(Void) {
velocity.y = velocity.y - 1.2;
velocity.x = velocity.x * 0.97;
position.x = position.x + velocity.x;
position.y = position.y + velocity.y;
frame++;
frame = frame % 4;
if (((flightTime--) <= 0) || (position.y < 0)) {
Game.getInstance().removeShrapnel(this);
} else if (flightTime < 10) {
alpha = 10 * flightTime;
}
}
function draw(leftEdge) {
var _loc7 = (position.x - leftEdge);
var _loc6 = position.y;
screenPos = new flash.geom.Point(_loc7, _loc6);
var _loc3 = _root.attachMovie("shrapnel", "mcShr", _root.getNextHighestDepth());
_loc3.gotoAndStop(type);
var _loc8 = ((50 + ((50 * (30 - flightTime)) / 30)) / 100);
var _loc4 = (new flash.geom.Matrix());
_loc4.scale(_loc8, _loc8);
var _loc5 = (new flash.geom.Matrix());
_loc5.translate(_loc7, Game.screenH - _loc6);
_loc4.concat(_loc5);
var _loc9 = (new flash.geom.ColorTransform(1, 1, 1, alpha / 100, 0, 0, 0, 0));
bmpCanvas.draw(_loc3, _loc4, _loc9, null, null, true);
_loc3.removeMovieClip();
}
}
Symbol 443 MovieClip [__Packages.GameOver] Frame 0
class GameOver extends MovieClip
{
var gotoAndStop, btnPlayAgain, btnTryAgain;
function GameOver () {
super();
}
function init(bSuccess) {
if (bSuccess) {
gotoAndStop("success");
btnPlayAgain.onRelease = mx.utils.Delegate.create(this, onReleasePlay);
} else {
gotoAndStop("failed");
btnTryAgain.onRelease = mx.utils.Delegate.create(this, onReleaseTry);
}
}
function onReleasePlay(Void) {
Application.goto("front");
}
function onReleaseTry(Void) {
Application.goto("front");
}
}
Symbol 444 MovieClip [__Packages.SendAFriend] Frame 0
class SendAFriend extends MovieClip
{
var onEnterFrame, sURL, tfFriendsName, tfFriendsEmail, tfYourName, tfYourEmail, btnSend, btnBack, oEnterLst, mcBlockade, mcYourEmail, mcYourName, mcFriendsEmail, mcFriendsName;
function SendAFriend () {
super();
onEnterFrame = init;
}
function init(Void) {
onEnterFrame = null;
sURL = Application.sBasePath + "TellAFriend.php";
tfFriendsName.tabIndex = 0;
tfFriendsEmail.tabIndex = 1;
tfYourName.tabIndex = 2;
tfYourEmail.tabIndex = 3;
tfFriendsEmail.restrict = "A-Za-z0-9_.@\\-";
tfYourEmail.restrict = "A-Za-z0-9_.@\\-";
btnSend.onRelease = mx.utils.Delegate.create(this, onReleaseSend);
btnBack.onRelease = mx.utils.Delegate.create(this, onReleaseBack);
oEnterLst = new Object();
oEnterLst.onKeyDown = mx.utils.Delegate.create(this, onPressKey);
Key.addListener(oEnterLst);
Selection.setFocus(tfFriendsName);
Key.removeListener(Interface.getInstance().oSpaceLst);
}
function onReleaseSend(Void) {
if (tfFriendsName.length > 0) {
if ((tfFriendsEmail.length > 0) && (checkEmail(tfFriendsEmail.text))) {
if (tfYourName.length > 0) {
if ((tfYourEmail.length > 0) && (checkEmail(tfYourEmail.text))) {
mcBlockade.gotoAndStop("show");
var _loc2 = new LoadVars();
_loc2.SENDERNAME = tfYourName.text;
_loc2.SENDEREMAIL = tfYourEmail.text;
_loc2.RECEIPIENTNAME = tfFriendsName.text;
_loc2.RECEIPIENTEMAIL = tfFriendsEmail.text;
_loc2.MESSAGE = "";
_loc2.onLoad = mx.utils.Delegate.create(this, onLoadEmail);
_loc2.sendAndLoad(sURL, _loc2, "POST");
Key.removeListener(oEnterLst);
} else {
mcYourEmail.gotoAndPlay("error");
Selection.setFocus(tfYourEmail);
Selection.setSelection(0, tfYourEmail.length);
}
} else {
mcYourName.gotoAndPlay("error");
Selection.setFocus(tfYourName);
}
} else {
mcFriendsEmail.gotoAndPlay("error");
Selection.setFocus(tfFriendsEmail);
Selection.setSelection(0, tfFriendsEmail.length);
}
} else {
mcFriendsName.gotoAndPlay("error");
Selection.setFocus(tfFriendsName);
}
}
function onLoadEmail(bSuccess) {
if (bSuccess) {
mcBlockade.gotoAndPlay("sent");
} else {
mcBlockade.gotoAndPlay("error");
}
Key.addListener(oEnterLst);
}
function onPressKey(Void) {
if (Key.isDown(13)) {
onReleaseSend();
}
}
function checkEmail(sEmail) {
var _loc4 = sEmail.lastIndexOf(".");
var _loc2 = sEmail.indexOf("@");
var _loc3 = sEmail.indexOf(" ");
var _loc5 = sEmail.lastIndexOf("..");
if ((((_loc3 < 0) && (_loc2 > 0)) && ((_loc2 + 1) < _loc4)) && (_loc5 == -1)) {
return(true);
}
return(false);
}
function onReleaseBack(Void) {
Interface.getInstance().onReleaseSendBack();
}
}
Symbol 445 MovieClip [__Packages.Interface] Frame 0
class Interface extends MovieClip
{
static var instance;
var btnPlay, mcControl, btnInstructions, btnSend, btnHighScore, oSpaceLst, gotoAndPlay, mcInstructionsPanel, getURL;
function Interface (Void) {
super();
instance = this;
btnPlay = mcControl.btnPlay;
btnInstructions = mcControl.btnInstructions;
btnSend = mcControl.btnSend;
btnHighScore = mcControl.btnHighScore;
btnPlay.onRelease = mx.utils.Delegate.create(this, onReleasePlay);
btnInstructions.onRelease = mx.utils.Delegate.create(this, onReleaseInstructions);
btnSend.onRelease = mx.utils.Delegate.create(this, onReleaseSend);
btnHighScore.onRelease = mx.utils.Delegate.create(this, onReleaseHighScore);
oSpaceLst = new Object();
oSpaceLst.onKeyDown = mx.utils.Delegate.create(this, onPressSpace);
Key.addListener(oSpaceLst);
}
static function getInstance(Void) {
return(instance);
}
function onReleasePlay(Void) {
Key.removeListener(oSpaceLst);
_root.gotoAndPlay("gameIn");
}
function onReleaseInstructions(Void) {
Key.removeListener(oSpaceLst);
gotoAndPlay("instructionsIn");
mcInstructionsPanel.btnBack.onRelease = mx.utils.Delegate.create(this, onReleaseInstrBack);
}
function onReleaseSend(Void) {
Key.removeListener(oSpaceLst);
getURL("http://games.flash4u.pp.ru", "_blank");
}
function onReleaseHighScore(Void) {
Key.removeListener(oSpaceLst);
_root.gotoAndPlay("highscore");
}
function onReleaseInstrBack(Void) {
Key.addListener(oSpaceLst);
gotoAndPlay("instructionsOut");
}
function onReleaseSendBack(Void) {
Key.addListener(oSpaceLst);
gotoAndPlay("sendOut");
}
function onReleaseScoreBack(Void) {
Key.addListener(oSpaceLst);
gotoAndPlay("highOut");
}
function onPressSpace(Void) {
if (Key.isDown(32)) {
onReleasePlay();
}
}
}
Symbol 446 MovieClip [__Packages.Leaderboard] Frame 0
class Leaderboard extends MovieClip
{
var onEnterFrame, sURL, btnBack, _parent, lvScores, mcCnt, mcScrollBar;
function Leaderboard () {
super();
onEnterFrame = init;
}
function init(Void) {
onEnterFrame = null;
sURL = Application.sBasePath + "GetScores.php";
loadHighScore();
btnBack = _parent.btnBack;
btnBack.onRelease = mx.utils.Delegate.create(this, onReleaseBack);
trace("btnBack: " + btnBack);
}
function loadHighScore(Void) {
lvScores = new LoadVars();
lvScores.onLoad = mx.utils.Delegate.create(this, onLoadList);
lvScores.load(sURL);
}
function onLoadList(bSuccess) {
for (var _loc4 in lvScores) {
trace((("key: " + _loc4) + ", value: ") + lvScores[_loc4]);
}
if (bSuccess) {
var _loc2 = 1;
while (_loc2 < 21) {
if (lvScores["name" + _loc2] != undefined) {
var _loc3 = mcCnt.attachMovie("scoreRow", "row" + _loc2, _loc2);
_loc3.rank = _loc2 + ".";
_loc3.sName = lvScores["name" + _loc2];
_loc3.score = lvScores["score" + _loc2];
_loc3._y = 15 * (_loc2 - 1);
}
_loc2++;
}
}
mcScrollBar.attachScrollBar(mcCnt, 1);
}
function onReleaseBack(Void) {
trace("asd");
Interface.getInstance().onReleaseScoreBack();
}
}
Symbol 447 MovieClip [__Packages.mochi.as2.MochiScores] Frame 0
class mochi.as2.MochiScores
{
static var boardID, onClose, onError;
function MochiScores () {
}
static function setBoardID(boardID) {
mochi.as2.MochiServices.warnID(boardID, true);
mochi.as2.MochiScores.boardID = boardID;
mochi.as2.MochiServices.send("scores_setBoardID", {boardID:boardID});
}
static function showLeaderboard(options) {
options.clip = mochi.as2.MochiServices.clip;
if ((options.clip != mochi.as2.MochiServices.__get__clip()) || (mochi.as2.MochiServices.__get__childClip()._target == undefined)) {
mochi.as2.MochiServices.disconnect();
trace("WARNING! This application is attempting to connect to MochiServices inside a showLeaderboard call!");
trace("make sure MochiServices.connect is called as early in the application runtime as possible.");
mochi.as2.MochiServices.connect(mochi.as2.MochiServices.__get__id(), options.clip);
}
delete options.clip;
if (options.name != null) {
if (typeof(options.name) == "object") {
if (options.name.text != undefined) {
options.name = options.name.text;
}
}
}
if (options.score != null) {
if (options.score instanceof TextField) {
if (options.score.text != undefined) {
options.score = options.score.text;
}
} else if (options.score instanceof mochi.as2.MochiDigits) {
options.score = options.score.value;
}
var n = Number(options.score);
if (isNaN(n)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is 'Not a Number'");
} else if ((n == Number.NEGATIVE_INFINITY) || (n == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + options.score) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(n) != n) {
trace(("WARNING: Submitted score '" + options.score) + "' will be truncated");
}
options.score = n;
}
}
if (options.onDisplay != null) {
options.onDisplay();
} else {
mochi.as2.MochiServices.__get__clip().stop();
}
if (options.onClose != null) {
onClose = options.onClose;
} else {
onClose = function () {
mochi.as2.MochiServices.__get__clip().play();
};
}
if (options.onError != null) {
onError = options.onError;
} else {
onError = onClose;
}
if (options.boardID == null) {
if (boardID != null) {
options.boardID = boardID;
}
}
mochi.as2.MochiServices.warnID(options.boardID, true);
trace("[MochiScores] NOTE: Security Sandbox Violation errors below are normal");
mochi.as2.MochiServices.send("scores_showLeaderboard", {options:options}, null, doClose);
}
static function closeLeaderboard() {
mochi.as2.MochiServices.send("scores_closeLeaderboard");
}
static function getPlayerInfo(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_getPlayerInfo", null, callbackObj, callbackMethod);
}
static function submit(score, name, callbackObj, callbackMethod) {
score = Number(score);
if (isNaN(score)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is 'Not a Number'");
} else if ((score == Number.NEGATIVE_INFINITY) || (score == Number.POSITIVE_INFINITY)) {
trace(("ERROR: Submitted score '" + String(score)) + "' will be rejected, score is an infinite");
} else {
if (Math.floor(score) != score) {
trace(("WARNING: Submitted score '" + String(score)) + "' will be truncated");
}
score = Number(score);
}
mochi.as2.MochiServices.send("scores_submit", {score:score, name:name}, callbackObj, callbackMethod);
}
static function requestList(callbackObj, callbackMethod) {
mochi.as2.MochiServices.send("scores_requestList", null, callbackObj, callbackMethod);
}
static function scoresArrayToObjects(scores) {
var so = {};
var i;
var j;
var o;
var row_obj;
for (var item in scores) {
if (typeof(scores[item]) == "object") {
if ((scores[item].cols != null) && (scores[item].rows != null)) {
so[item] = [];
o = scores[item];
j = 0;
while (j < o.rows.length) {
row_obj = {};
i = 0;
while (i < o.cols.length) {
row_obj[o.cols[i]] = o.rows[j][i];
i++;
}
so[item].push(row_obj);
j++;
}
} else {
so[item] = {};
for (var param in scores[item]) {
so[item][param] = scores[item][param];
}
}
} else {
so[item] = scores[item];
}
}
return(so);
}
static function doClose(args) {
if (args.error == true) {
if (args.errorCode == undefined) {
args.errorCode = "IOError";
}
onError.apply(null, [args.errorCode]);
} else {
onClose.apply();
}
}
}
Symbol 448 MovieClip [__Packages.mochi.as2.MochiDigits] Frame 0
class mochi.as2.MochiDigits
{
var Encoder, Fragment, Sibling;
function MochiDigits (digit, index) {
Encoder = 0;
setValue(digit, index);
}
function get value() {
return(Number(toString()));
}
function set value(v) {
setValue(v);
//return(value);
}
function addValue(v) {
value = value + v;
}
function setValue(digit, index) {
var s = digit.toString();
if ((index == undefined) || (isNaN(index))) {
index = 0;
}
Fragment = s.charCodeAt(index++) ^ Encoder;
if (index < s.length) {
Sibling = new mochi.as2.MochiDigits(digit, index);
} else {
Sibling = null;
}
reencode();
}
function reencode() {
var newEncode = int(2147483647 * Math.random());
Fragment = Fragment ^ (newEncode ^ Encoder);
Encoder = newEncode;
}
function toString() {
var s = String.fromCharCode(Fragment ^ Encoder);
return(((Sibling != null) ? (s.concat(Sibling.toString())) : (s)));
}
}
Symbol 325 MovieClip Frame 10
stop();
Symbol 327 MovieClip Frame 10
stop();
Symbol 350 MovieClip [highscore screen] Frame 1
#initclip 43
Object.registerClass("highscore screen", Leaderboard);
#endinitclip
stop();
Symbol 375 MovieClip [send a friend pane] Frame 1
#initclip 42
Object.registerClass("send a friend pane", SendAFriend);
#endinitclip
Symbol 406 MovieClip [panel main] Frame 1
#initclip 44
Object.registerClass("panel main", Interface);
Object.registerClass("panel main", Interface);
#endinitclip
stop();
Symbol 406 MovieClip [panel main] Frame 42
stop();
Symbol 406 MovieClip [panel main] Frame 58
gotoAndStop ("home");
Symbol 406 MovieClip [panel main] Frame 88
stop();
Symbol 406 MovieClip [panel main] Frame 107
gotoAndStop ("home");
Symbol 406 MovieClip [panel main] Frame 137
stop();
Symbol 406 MovieClip [panel main] Frame 153
gotoAndStop ("home");
Symbol 413 MovieClip Frame 1
stop();