Frame 1
function doLoader() {
ratio = getBytesLoaded() / getBytesTotal();
if ((ratio == 1) && (gxml.loaded)) {
if (!hasAnimatedOut) {
hasAnimatedOut = true;
loader_mc.gotoAndPlay(2);
} else if (loader_mc._currentFrame == loader_mc._totalFrames) {
clearInterval(loader_int);
gotoAndStop ("game");
}
}
}
function log(message) {
var _local1 = new LocalConnection();
_local1.send("_SILCtrace", "trace", message);
_local1.close();
}
var ratio;
var FRAMES = 100;
var hasAnimatedOut = false;
loader_int = setInterval(doLoader, 5);
var swfpath;
if (_root._url.lastIndexOf("\\") > -1) {
swfpath = _root._url.slice(0, _root._url.lastIndexOf("\\"));
if (swfpath != "") {
swfpath = swfpath + "\\";
}
} else {
swfpath = _root._url.slice(0, _root._url.lastIndexOf("/"));
if (swfpath != "") {
swfpath = swfpath + "/";
}
}
var gxml = (new smashing.xml.GXML());
gxml.load(swfpath + "config.xml");
log(swfpath + "config.xml");
stop();
Frame 5
project.init();
Symbol 17 MovieClip Frame 1
stop();
Symbol 17 MovieClip Frame 5
stop();
Symbol 17 MovieClip Frame 10
stop();
Symbol 45 MovieClip Frame 5
stop();
Symbol 46 MovieClip Frame 1
stop();
Symbol 46 MovieClip Frame 5
stop();
Symbol 46 MovieClip Frame 10
stop();
Symbol 48 MovieClip Frame 1
stop();
Symbol 48 MovieClip Frame 5
stop();
Symbol 48 MovieClip Frame 10
stop();
Symbol 55 MovieClip Frame 1
stop();
Symbol 56 MovieClip [_nick_highscore_board] Frame 1
#initclip 115
Object.registerClass("_nick_highscore_board", nick.highscores.HighscoreTable);
#endinitclip
Symbol 56 MovieClip [_nick_highscore_board] Frame 7
stop();
Instance of Symbol 17 MovieClip "btn_close" in Symbol 56 MovieClip [_nick_highscore_board] Frame 12
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressPlayAgain");
}
Instance of Symbol 46 MovieClip "btn_next" in Symbol 56 MovieClip [_nick_highscore_board] Frame 17
on (release) {
_parent.nextPage();
}
Instance of Symbol 48 MovieClip "btn_back" in Symbol 56 MovieClip [_nick_highscore_board] Frame 17
on (release) {
_parent.prevPage();
}
Instance of Symbol 55 MovieClip "btn_submit" in Symbol 56 MovieClip [_nick_highscore_board] Frame 17
on (release) {
nick.highscores.HighscoreEngine.submitFromBoard();
}
Symbol 87 MovieClip Frame 1
stop();
Symbol 87 MovieClip Frame 2
play();
Symbol 87 MovieClip Frame 6
stop();
Symbol 88 Button
on (keyPress "<Left>") {
return(undefined);
}
on (keyPress "<Right>") {
return(undefined);
}
on (keyPress "<Up>") {
return(undefined);
}
on (keyPress "<Down>") {
return(undefined);
}
Symbol 1546 MovieClip [__Packages.smashing.rampage.Messenger] Frame 0
class smashing.rampage.Messenger
{
static var __addresses;
function Messenger () {
}
static function registerAddress(id, obj) {
if (__addresses == undefined) {
__addresses = {};
}
__addresses[id] = obj;
}
static function removeAddress(id) {
__addresses[id] = "";
}
static function sendMessage(id, message, args) {
if ((__addresses[id] != "") && (__addresses[id] != undefined)) {
__addresses[id].onMessageReceived(message, args);
return(undefined);
}
}
}
Symbol 1547 MovieClip [__Packages.nick.highscores.HighscoreEngine] Frame 0
class nick.highscores.HighscoreEngine
{
static var __userName, __loadState, __xml, __userPath, __scorePath, __game_id, __user_vars, __highscoreMC, __scores, __userScore, __functionToRunAfterLoad, __stateVerificationInterval, __score_vars;
function HighscoreEngine () {
}
static function init(pXmlData) {
__userName = "null";
__loadState = "loading";
if (__USE_XML) {
if (pXmlData == undefined) {
loadXML();
} else {
__xml = pXmlData;
onXMLloaded(true);
}
}
}
static function loadXML() {
__xml = new XML();
__xml.ignoreWhite = true;
__xml.onLoad = function (success) {
nick.highscores.HighscoreEngine.onXMLloaded(success);
};
var _local2 = _root._url.slice(0, _root._url.lastIndexOf("/"));
if (_local2 != "") {
_local2 = _local2 + "/";
}
log(("Loading XML file from " + (_local2 + __XML_FILE_URL)) + " ...");
__xml.load(_local2 + __XML_FILE_URL);
}
static function onXMLloaded(success) {
if (success) {
__userPath = __xml.firstChild.childNodes[0].firstChild.nodeValue;
__scorePath = __xml.firstChild.childNodes[1].firstChild.nodeValue;
__game_id = __xml.firstChild.childNodes[2].firstChild.nodeValue;
log("Xml loaded : ");
log("User : " + __userPath);
log("score: " + __scorePath);
log("gameID: " + __game_id);
} else {
log("XML Loading error");
}
updateUserLogin();
}
static function manualXML(userPath, scorePath, gameID) {
__userPath = userPath;
__scorePath = scorePath;
__game_id = gameID;
updateUserLogin();
}
static function updateUserLogin() {
log("Test user login...");
__user_vars = new LoadVars();
__user_vars.onLoad = function (success) {
nick.highscores.HighscoreEngine.onLogin(success);
};
__user_vars.load(__userPath);
}
static function onLogin(success) {
if (success) {
while (__user_vars.screenName.indexOf("/n") != -1) {
log("[HighscoreEngine] Cull login string - : " + __user_vars.screenName);
__user_vars.screenName = __user_vars.screenName.substr(0, __user_vars.screenName.length - 2);
log("[HighscoreEngine] Result: " + __user_vars.screenName);
}
__userName = __user_vars.screenName;
log("[HighscoreEngine] User is : " + __userName);
} else {
log("[HighscoreEngine] User is not logged in.");
}
if (__DO_DEBUG) {
__userName = "Keith";
log("[HighscoreEngine] DEBUG ACTIVE <~~~~ Fake log-in engaged.");
}
__loadState = "ready";
}
static function populateHighscoreBoard(pDidSubmit) {
if (isLoggedIn) {
__highscoreMC.init(__scores, {name:__userName, score:__userScore, didSubmit:pDidSubmit});
} else {
__highscoreMC.init(__scores, {name:"", score:0});
}
}
static function runReadyTest(callback) {
if (__loadState != "ready") {
__functionToRunAfterLoad = callback;
startBoardReadyInterval();
return(false);
}
return(true);
}
static function startBoardReadyInterval() {
__stateVerificationInterval = setInterval(function () {
nick.highscores.HighscoreEngine.runBoardReadyInterval();
}, 5);
}
static function runBoardReadyInterval() {
if (__loadState == "ready") {
clearInterval(__stateVerificationInterval);
if (__functionToRunAfterLoad == "sendAndView") {
sendAndViewScore(__highscoreMC, __userScore);
} else {
viewScores(__highscoreMC);
}
} else if (__loadState == "error") {
__highscoreMC.showError();
clearInterval(__stateVerificationInterval);
}
}
static function sendAndViewScore(boardMC, score) {
__highscoreMC = boardMC;
__userScore = score;
__highscoreMC.showIntro();
if (runReadyTest("sendAndView") == false) {
return(undefined);
}
log("Send Score...");
if ((__userName == "null") && (__userName == undefined)) {
log(("Error: User name is : " + __userName) + ". Only logged in users may send scores.");
return(undefined);
}
__score_vars = new LoadVars();
__score_vars.onLoad = function (success) {
nick.highscores.HighscoreEngine.onSubmitHighscoresRecieved(success);
};
log((((((((("Load ( " + __scorePath) + "?msg=S&game=") + __game_id) + "&name=") + __userName) + "&score=") + __userScore) + "&limitEntries=true") + " )");
__score_vars.load(((((((__scorePath + "?msg=S&game=") + __game_id) + "&name=") + __userName) + "&score=") + __userScore) + "&limitEntries=true");
}
static function viewScores(boardMC, score) {
__highscoreMC = boardMC;
if (score == undefined) {
__userScore = 0;
} else {
__userScore = score;
}
__highscoreMC.showIntro();
if (runReadyTest("view") == false) {
return(undefined);
}
log("View Scores...");
log(((("Load ( " + __scorePath) + "?msg=Q&game=") + __game_id) + " )");
__score_vars = new LoadVars();
__score_vars.onLoad = function (success) {
nick.highscores.HighscoreEngine.onViewHighscoresRecieved(success);
};
__score_vars.load((__scorePath + "?msg=Q&game=") + __game_id);
}
static function submitFromBoard() {
if (__userScore == 0) {
return(undefined);
}
__highscoreMC.showLoading();
log("Send Score from board...");
if ((__userName == "null") && (__userName == undefined)) {
log(("Error: User name is : " + __userName) + ". Only logged in users may send scores.");
return(undefined);
}
__score_vars = new LoadVars();
__score_vars.onLoad = function (success) {
nick.highscores.HighscoreEngine.onSubmitHighscoresRecieved(success);
};
log((((((((("Load ( " + __scorePath) + "?msg=S&game=") + __game_id) + "&name=") + __userName) + "&score=") + __userScore) + "&limitEntries=true") + " )");
__score_vars.load(((((((__scorePath + "?msg=S&game=") + __game_id) + "&name=") + __userName) + "&score=") + __userScore) + "&limitEntries=true");
}
static function onSubmitHighscoresRecieved(success) {
log("Server callback recieved on Submit: ");
log("Success: " + success);
log("Returning game ID: " + __score_vars.game);
if ((!success) || (__score_vars.game != __game_id)) {
log("Highscore retrieval Failed.");
__highscoreMC.showError();
return(undefined);
}
generateScoreArray();
populateHighscoreBoard(true);
}
static function onViewHighscoresRecieved(success) {
log("Server callback recieved on View: ");
log("Success: " + success);
log("Returning game ID: " + __score_vars.game);
if ((!success) || (__score_vars.game != __game_id)) {
log("Highscore retrieval Failed.");
__highscoreMC.showError();
return(undefined);
}
generateScoreArray();
populateHighscoreBoard(false);
}
static function generateScoreArray() {
__scores = [];
var _local1 = 0;
while (_local1 < __score_vars.count) {
__scores.push({name:__score_vars["pn" + _local1], score:__score_vars["ps" + _local1]});
_local1++;
}
}
static function set userPath(path) {
__userPath = path;
//return(userPath);
}
static function get userPath() {
return(__userPath);
}
static function set scorePath(path) {
__scorePath = path;
//return(scorePath);
}
static function get scorePath() {
return(__scorePath);
}
static function set gameID(id) {
__game_id = id;
//return(gameID);
}
static function get gameID() {
return(__game_id);
}
static function get scores() {
return(__scores);
}
static function get userName() {
return(__userName);
}
static function get isLoggedIn() {
return((((__userName == undefined) || (__userName == "null")) ? false : true));
}
static function log(message) {
var _local1 = new LocalConnection();
_local1.send("_SILCtrace", "trace", message);
_local1.close();
}
static var __USE_XML = true;
static var __XML_FILE_URL = "config.xml";
static var __SCORE_CALL = "onHighscores";
static var __DO_DEBUG = false;
}
Symbol 1548 MovieClip [__Packages.nick.highscores.HighscoreTable] Frame 0
class nick.highscores.HighscoreTable extends MovieClip
{
var gotoAndStop, _currentframe, gotoAndPlay, __scores, __player, __page, __totalPages, btn_submit, playerScore_mc, pagination_txt;
function HighscoreTable () {
super();
}
function showLoading() {
gotoAndStop("loading");
}
function showIntro() {
if (_currentframe < 5) {
gotoAndPlay("intro");
}
}
function showError() {
gotoAndStop("error");
}
function showTable() {
gotoAndStop("ready");
emptyTable();
}
function init(t_scores, t_player) {
showTable();
__scores = t_scores;
__player = t_player;
__page = 1;
__totalPages = Math.ceil(__scores.length / __SCORES_PER_PAGE);
var _local2 = 0;
while (_local2 < __scores.length) {
if (__scores[_local2].name == "") {
__totalPages = Math.ceil(_local2 / __SCORES_PER_PAGE);
_local2 = __scores.length;
}
_local2++;
}
drawSubmitButton();
populatePlayer();
populateTable();
}
function calculatePlayerRank() {
if (!__player.didSubmit) {
return("");
}
var _local2 = 0;
while (_local2 < __scores.length) {
if (__scores[_local2].name == __player.name) {
return(String(_local2 + 1));
}
_local2++;
}
return("");
}
function drawSubmitButton() {
if ((((((__player.score == 0) || (__player.didSubmit)) || (__player.name == "")) || (__player.name == undefined)) || (__player.name == null)) || (__player.name == "null")) {
btn_submit._visible = false;
} else {
btn_submit._visible = true;
}
}
function populatePlayer() {
if ((((__player.name == "") || (__player.name == undefined)) || (__player.name == null)) || (__player.name == "null")) {
playerScore_mc._visible = false;
} else {
playerScore_mc._visible = true;
playerScore_mc.name.text = __player.name;
playerScore_mc.score.text = __player.score;
playerScore_mc.rank.text = calculatePlayerRank();
}
}
function populateTable() {
var c = ((__page - 1) * __SCORES_PER_PAGE);
var loop = 1;
while (loop <= __SCORES_PER_PAGE) {
if (__scores[c].name != "") {
eval ((this + ".hs_") + loop).rank.text = ((__page - 1) * 10) + loop;
eval ((this + ".hs_") + loop).name.text = __scores[c].name;
eval ((this + ".hs_") + loop).score.text = __scores[c].score;
} else {
eval ((this + ".hs_") + loop).rank.text = "";
eval ((this + ".hs_") + loop).name.text = "";
eval ((this + ".hs_") + loop).score.text = "";
}
loop++;
c++;
}
pagination_txt.text = (__page + " of ") + __totalPages;
if (__totalPages < 1) {
__totalPages = 1;
}
}
function emptyTable() {
playerScore_mc._visible = false;
var loop = 1;
while (loop <= __SCORES_PER_PAGE) {
eval ((this + ".hs_") + loop).rank.text = "";
eval ((this + ".hs_") + loop).name.text = "";
eval ((this + ".hs_") + loop).score.text = "";
loop++;
}
pagination_txt.text = "";
}
function nextPage() {
__page++;
if (__page > __totalPages) {
__page = 1;
}
populateTable();
}
function prevPage() {
__page--;
if (__page < 1) {
__page = __totalPages;
}
populateTable();
}
static function log(message) {
var _local1 = new LocalConnection();
_local1.send("_SILCtrace", "trace", message);
_local1.close();
}
var __SCORES_PER_PAGE = 10;
}
Symbol 1549 MovieClip [__Packages.smashing.xml.GXML] Frame 0
class smashing.xml.GXML
{
var _status, _loaded, ignoreWhite, timeout, _data, _xdata, onLoad, _timeoutID, onFail, onTimeOut, onStatus;
function GXML () {
_status = "";
_loaded = false;
ignoreWhite = true;
timeout = 0;
}
function get status() {
return(_status);
}
function get loaded() {
return(_loaded);
}
function get data() {
return(_data);
}
function get xdata() {
return(_xdata);
}
function parseXML(Void) {
log("XML Parse starting...");
_data = new Object();
_data[_xdata.firstChild.nodeName] = parseNode(_xdata.firstChild);
log("XML Parsed successfully");
onLoad();
}
function parseNode(node) {
var _local3 = new Object();
_local3.attributes = new Object();
for (var _local9 in node.attributes) {
_local3.attributes[_local9] = node.attributes[_local9];
}
var _local7 = 0;
while (_local7 < node.childNodes.length) {
var _local6 = node.childNodes[_local7];
var _local2 = _local6.nodeName;
if ((_local3[_local2] == null) || (_local3[_local2] == undefined)) {
_local3[_local2] = {};
}
if (_local6.nodeType == 1) {
if ((node.childNodes.length > 1) && (_local3[_local2].length == null)) {
var _local4 = _local7 + 1;
while (_local4 < node.childNodes.length) {
var _local8 = node.childNodes[_local4].nodeName;
if (_local8 == _local2) {
_local3[_local2] = new Array();
break;
}
_local4++;
}
}
if (_local3[_local2].length != null) {
_local3[_local2].push(parseNode(_local6));
} else {
_local3[_local2] = parseNode(_local6);
}
} else {
_local3.value = _local6.nodeValue;
}
_local7++;
}
return(_local3);
}
function onLoadXML(success) {
clearInterval(_timeoutID);
if (success) {
if (_xdata.status == 0) {
log("XML was loaded successfully");
_loaded = true;
parseXML();
} else {
log("XML was loaded successfully, but was unable to be parsed.");
switch (_xdata.status) {
case -2 :
log("A CDATA section was not properly terminated.");
break;
case -3 :
log("The XML declaration was not properly terminated.");
break;
case -4 :
log("The DOCTYPE declaration was not properly terminated.");
break;
case -5 :
log("A comment was not properly terminated.");
break;
case -6 :
log("An XML element was malformed.");
break;
case -7 :
log("Out of memory.");
break;
case -8 :
log("An attribute value was not properly terminated.");
break;
case -9 :
log("A start-tag was not matched with an end-tag.");
break;
case -10 :
log("An end-tag was encountered without a matching start-tag.");
break;
default :
log("An unknown error has occurred.");
}
onFail();
}
} else {
log("XML Document failed to load");
onFail();
}
}
function onTimeOutXML(Void) {
log("XML Document timed-out while attempting to load");
clearInterval(_timeoutID);
onTimeOut();
}
function log(sText) {
_status = _status + (sText + newline);
onStatus(sText);
}
function load(url) {
if ((url == null) || (url == "")) {
log("No XML file specified to load. Load failed");
return(undefined);
}
_xdata = new XML();
_xdata.ignoreWhite = ignoreWhite;
var caller = this;
_xdata.onLoad = function (success) {
caller.onLoadXML(success);
};
if (timeout > 0) {
clearInterval(_timeoutID);
_timeoutID = setInterval(this, "onTimeOutXML", timeout);
}
_loaded = false;
_xdata.load(url);
}
}
Symbol 1550 MovieClip [__Packages.nick.eltigre.mcm.GameState] Frame 0
class nick.eltigre.mcm.GameState
{
static var __instance;
var levelNum, score, coins, hasBurro, hasChanged, left, right, up, down, partner;
function GameState () {
}
static function init() {
__instance = new nick.eltigre.mcm.GameState();
}
static function getInstance() {
return(__instance);
}
function resetGame() {
levelNum = 0;
score = 0;
coins = 2;
hasBurro = false;
hasChanged = true;
left = (right = (up = (down = false)));
}
function resetLevel() {
left = (right = (up = (down = false)));
}
function selectPartner(pNum) {
partner = pNum;
}
function addScore(val) {
score = score + val;
hasChanged = true;
}
function cheatCoins() {
if (!hasBurro) {
smashing.rampage.Messenger.sendMessage("screen", "onRegainBurro");
hasBurro = true;
}
coins = 3;
hasChanged = true;
}
function addCoin() {
coins++;
addScore(__COIN_VALUE);
}
function addDiamond() {
addScore(__DIAMOND_VALUE);
}
function addMiniDiamond() {
addScore(__MINI_DIAMOND_VALUE);
}
function loseCoins(pAmount) {
coins = coins - pAmount;
if (coins < 0) {
coins = 0;
}
hasChanged = true;
}
function loseBurro() {
hasBurro = false;
smashing.rampage.Messenger.sendMessage("screen", "onLoseBurro");
}
function regainBurro() {
hasBurro = true;
smashing.rampage.Messenger.sendMessage("screen", "onRegainBurro");
}
function onSwitchToSky() {
if (!hasBurro) {
hasBurro = true;
}
}
function addProgressScore(pExpanseCount) {
addScore(Math.ceil((__PROGRESS_VALUE * pExpanseCount) * ((coins > 0) ? (coins / 2) : 1)));
}
function addMonsterScore(pType) {
switch (pType) {
case "bat" :
addScore(150);
break;
case "flame" :
addScore(175);
break;
case "hulk" :
addScore(250);
break;
case "oso" :
addScore(1000);
break;
case "cuervo" :
addScore(2000);
break;
case "pukey" :
addScore(400);
}
}
function onLeftDown() {
left = true;
}
function onLeftUp() {
left = false;
}
function onRightDown() {
right = true;
}
function onRightUp() {
right = false;
}
function onDownDown() {
down = true;
}
function onDownUp() {
down = false;
}
function onUpDown() {
up = true;
}
function onUpUp() {
up = false;
}
var SCREEN_WIDTH = Stage.width;
var SCREEN_HEIGHT = Stage.height;
var HALF_WIDTH = Stage.width / 2;
var HALF_HEIGHT = Stage.height / 2;
var sc = {x:Stage.width / 2, y:Stage.height / 2};
var __COIN_VALUE = 50;
var __DIAMOND_VALUE = 300;
var __MINI_DIAMOND_VALUE = 150;
var __PROGRESS_VALUE = 20;
}
Symbol 1551 MovieClip [__Packages.smashing.rampage.BaseEngine] Frame 0
class smashing.rampage.BaseEngine extends MovieClip
{
var __gameStartTime, isPaused, __interval, mouse, key;
function BaseEngine () {
super();
}
function init() {
__gameStartTime = getTimer();
__initInterval();
__initSounds();
__initGameState();
__initUI();
__initViewport();
__initMouse();
__initKey();
isPaused = false;
smashing.rampage.Messenger.registerAddress("engine", this);
}
function __initInterval() {
__interval = new smashing.IntervalEngine(this, "update");
__interval.startFast();
}
function __initSounds() {
}
function __initGameState() {
}
function __initUI() {
}
function __initViewport() {
}
function update(dt) {
}
function pause() {
isPaused = true;
}
function unpause() {
isPaused = false;
}
function onQuit() {
stopAllSounds();
destroy();
}
function destroy() {
__interval.clear();
__clearMouse();
__clearKey();
}
function __initMouse() {
mouse = {};
mouse.owner = this;
Mouse.addListener(mouse);
}
function __clearMouse() {
Mouse.removeListener(mouse);
}
function mouse_up() {
}
function mouse_down() {
}
function __initKey() {
key = {};
key.owner = this;
Key.addListener(key);
}
function __clearKey() {
Key.removeListener(key);
}
function key_down() {
}
function key_up() {
}
function onMessageReceived(message, args) {
this[message](args);
}
}
Symbol 1552 MovieClip [__Packages.smashing.IntervalEngine] Frame 0
class smashing.IntervalEngine
{
var _uo, _uf, _update_interval, _last_update, _i, _ft, _el;
function IntervalEngine (update_object, update_function) {
_uo = update_object;
_uf = update_function;
}
function startFlat(FPS) {
_FPS = FPS;
_update_interval = 1 / FPS;
_last_update = getTimer() * 0.001;
_i = setInterval(this, "_flat_step", 0);
}
function startFlex() {
_last_update = getTimer() * 0.001;
_i = setInterval(this, "_flex_step", 0);
}
function startFast() {
_last_update = getTimer();
_i = setInterval(this, "_fast_step", 10);
}
function reset(Void) {
if (_i != undefined) {
clearInterval(_i);
}
_ft = 0;
_last_update = getTimer() * 0.001;
_lel = _MAX_FRAMETIME / 2;
}
function _flex_step(Void) {
_el = Math.min(_MAX_FRAMETIME, (-_last_update) + ((_last_update = getTimer() * 0.001)));
_lel = _lel - Math.max(-_MAX_TIMEDIFF, Math.min(_MAX_TIMEDIFF, _lel - _el));
_uo[_uf](_lel);
}
function _flat_step(Void) {
_ft = _ft + ((-_last_update) + ((_last_update = getTimer() * 0.001)));
if (_ft < _update_interval) {
return(undefined);
}
_uo[_uf](_ft);
_ft = 0;
}
function _fast_step(Void) {
_el = (-_last_update) + ((_last_update = getTimer()));
_uo[_uf](_el * 0.001);
}
function clear() {
clearInterval(_i);
}
var _MAX_TIMEDIFF = 0.005;
var _MIN_FPS = 5;
var _MAX_FRAMETIME = 1 / smashing.IntervalEngine.prototype._MIN_FPS;
var _lel = 0.2;
var _FPS = 0;
}
Symbol 1553 MovieClip [__Packages.nick.eltigre.mcm.Engine] Frame 0
class nick.eltigre.mcm.Engine extends smashing.rampage.BaseEngine
{
var _parent, __secretCode, pause, __UI, __sounds, viewport_mc, __state, isPaused, activeWorld, unpause, __interval, __screenshotData, screenshot_mc, shadow_mc, __transTarget, __transFunc, __transArgs, transition_mc, key, __lastCode, highscore_mc, __gameStartTime;
function Engine () {
super();
}
function init() {
super.init();
nick.highscores.HighscoreEngine.init(_parent.gxml.xdata);
__secretCode = 0;
pause();
__UI.goScreen("splash");
}
function __initSounds() {
nick.eltigre.mcm.Sounds.init();
__sounds = nick.eltigre.mcm.Sounds.getInstance();
__sounds.generateSounds(viewport_mc);
if (!__PLAY_MUSIC) {
__sounds.muteMusic = true;
}
}
function __initGameState() {
nick.eltigre.mcm.GameState.init();
__state = nick.eltigre.mcm.GameState.getInstance();
}
function __initUI() {
nick.eltigre.mcm.ui.UI.init();
__UI = nick.eltigre.mcm.ui.UI.getInstance();
__UI.linkEngine(this);
__UI.reset();
}
function __initViewport() {
smashing.rampage.viewport.Viewport.init(viewport_mc, 2, nick.eltigre.mcm.GameState.getInstance());
var _local2 = smashing.rampage.viewport.Viewport.getInstance();
_local2.setScrollport(1);
_local2.createGroup({id:"bg", index:0, slots:10, scrollport:true});
_local2.createGroup({id:"scenery", index:1, slots:20});
_local2.createGroup({id:"platform", index:2, slots:100});
_local2.createGroup({id:"entity", index:3, slots:500});
_local2.createGroup({id:"player", index:4, slots:10});
_local2.createGroup({id:"projectile", index:5, slots:500});
_local2.createGroup({id:"effect", index:6, slots:200});
_local2.createGroup({id:"lava", index:7, slots:10});
_local2.initGroups();
nick.eltigre.mcm.GameCamera.init();
}
function update(dt) {
if (!isPaused) {
activeWorld.update(dt);
}
__UI.update(dt);
updateAfterEvent();
}
function startGame() {
__state.resetGame();
__sounds.playMusic("gameplay");
activeWorld = new nick.eltigre.mcm.WorldVolcano();
activeWorld.init(this);
startWorld();
showVolcanoShadow();
}
function startWorld() {
hideScreenshot();
__state.resetLevel();
__UI.goScreen("gameplay");
smashing.rampage.viewport.Viewport.getInstance().newView();
activeWorld.generate();
activeWorld.start();
unpause();
}
function clear() {
activeWorld.clear();
smashing.rampage.viewport.Viewport.getInstance().newView();
}
function destroy() {
__interval.clear();
__clearMouse();
__clearKey();
}
function showScreenshot() {
__screenshotData = new flash.display.BitmapData(600, 400);
screenshot_mc.createEmptyMovieClip("bitmap", 1);
screenshot_mc.bitmap.attachBitmap(__screenshotData, 1);
__screenshotData.draw(viewport_mc);
viewport_mc._visible = false;
}
function hideScreenshot() {
if (viewport_mc._visible) {
return(undefined);
}
__screenshotData.dispose();
screenshot_mc.bitmap.removeMovieClip();
viewport_mc._visible = true;
}
function onGameOver() {
pause();
showScreenshot();
runTransition(this, "onGoGameOver");
}
function onPressSplashPlay() {
__UI.goScreen("intro");
}
function onSelectPartner(pData) {
__state.selectPartner(pData.num);
__UI.goScreen("helpIntro");
}
function onPressPlayAgain() {
runTransition(this, "returnToPartnerSelect");
}
function returnToPartnerSelect() {
__UI.goScreen("partner");
}
function returnToSplash() {
__UI.goScreen("splash");
}
function onErupt() {
pause();
showScreenshot();
__UI.goScreen("eruption");
}
function onEruptionComplete() {
activeWorld = new nick.eltigre.mcm.WorldSky();
activeWorld.init(this);
startWorld();
hideVolcanoShadow();
}
function onGoGameOver() {
pause();
showScreenshot();
__UI.goScreen("lose");
smashing.rampage.viewport.Viewport.getInstance().newView();
}
function onGoWin() {
pause();
showScreenshot();
__UI.goScreen("win");
smashing.rampage.viewport.Viewport.getInstance().newView();
}
function goInGameHelp() {
__UI.goScreen("helpGameplay");
}
function closeGameHelp() {
__UI.goScreen("gameplay");
smashing.rampage.Messenger.sendMessage("screen", "onPressMenu");
}
function hideVolcanoShadow() {
shadow_mc._visible = false;
}
function showVolcanoShadow() {
shadow_mc._visible = true;
}
function pauseForMenu() {
pause();
showScreenshot();
}
function unpauseForMenu() {
unpause();
hideScreenshot();
}
function runTransition(pTarget, pFunc, pArgs) {
__transTarget = pTarget;
__transFunc = pFunc;
__transArgs = pArgs;
transition_mc.gotoAndPlay("in");
}
function onTransitionComplete() {
__transTarget[__transFunc](__transArgs);
}
function __initMouse() {
}
function __clearMouse() {
}
function mouse_up() {
if (!isPaused) {
}
}
function mouse_down() {
if (!isPaused) {
}
}
function __initKey() {
key = {};
key.owner = this;
key.onKeyDown = function () {
this.owner.key_down(Key.getCode());
};
key.onKeyUp = function () {
this.owner.key_up(Key.getCode());
};
Key.addListener(key);
}
function __clearKey() {
Key.removeListener(key);
}
function key_down(pCode) {
__lastCode = pCode;
if (__lastCode == 37) {
__state.onLeftDown();
} else if (__lastCode == 39) {
__state.onRightDown();
} else if (__lastCode == 40) {
__state.onDownDown();
} else if (__lastCode == 38) {
__state.onUpDown();
}
}
function key_up(pCode) {
__lastCode = pCode;
if (__lastCode == 32) {
if (isPaused) {
return(undefined);
}
activeWorld.onPressAttack();
} else if ((__lastCode > 64) && (__lastCode < 91)) {
__secretCode = __secretCode + Key.getCode();
} else if (__lastCode == 37) {
__state.onLeftUp();
} else if (__lastCode == 39) {
__state.onRightUp();
} else if (__lastCode == 40) {
__state.onDownUp();
} else if (__lastCode == 38) {
__state.onUpUp();
}
}
function onDumpCode() {
switch (__secretCode) {
case 380 :
case 297 :
__state.cheatCoins();
break;
case 400 :
smashing.rampage.Messenger.sendMessage("world", "onCheatErupt");
break;
case 241 :
smashing.rampage.Messenger.sendMessage("world", "onCheatOso");
break;
}
__secretCode = 0;
}
function testShowSubmitScoreButton() {
return(nick.highscores.HighscoreEngine.__get__isLoggedIn());
}
function onPressGameOverSubmitScore() {
if (!nick.highscores.HighscoreEngine.__get__isLoggedIn()) {
return(undefined);
}
__UI.goScreen("highscore");
nick.highscores.HighscoreEngine.sendAndViewScore(highscore_mc, __state.score);
}
function onPressViewScores() {
__UI.goScreen("highscore");
nick.highscores.HighscoreEngine.viewScores(highscore_mc, __state.score);
}
function get gameStartTime() {
return(__gameStartTime);
}
function isMusicMuted() {
return(__sounds.muteMusic);
}
var __PLAY_MUSIC = true;
}
Symbol 1554 MovieClip [__Packages.nick.eltigre.mcm.World] Frame 0
class nick.eltigre.mcm.World
{
var engine, __state, __activeEvent, __entitys, __scenery, __effects, __pickups, __platforms, __friendlyProjectiles, __player, __gravity, __endPlatform, __eventStep, __expanseCleaningStep, __currentExpanseID, __currentConnectorID, __expanseCount, __expanseLibrary, __connectorLibrary, __camera;
function World () {
}
function init(t_engine) {
engine = t_engine;
__state = nick.eltigre.mcm.GameState.getInstance();
smashing.rampage.Messenger.registerAddress("world", this);
__activeEvent = "";
}
function start() {
update = updateGameplay;
}
function update() {
}
function clear() {
__entitys = [];
__scenery = [];
__effects = [];
__pickups = [];
__platforms = [];
__friendlyProjectiles = [];
}
function resolvePlayerEntityCollision(pEnt) {
if (pEnt.IS_FRIENDLY) {
if (pEnt.TYPE == "burro") {
if (pEnt.getIsPickupable()) {
pEnt.hitReact(__player);
onPickupBurro();
}
return(undefined);
}
if (__state.hasBurro || (pEnt.TYPE != "coin")) {
onPickupPoints(pEnt);
pEnt.hitReact(__player);
} else {
onKnockPoints(pEnt);
}
} else if (__player.getIsDangerousToEntity(pEnt)) {
pEnt.takeDamage(__player.getCurrentAttackDamage(), __player.getCurrentAttackForce(), __player);
__player.dealDamage();
return(undefined);
}
if (!pEnt.getIsDangerous()) {
return(undefined);
}
onPlayerTakeDamage(pEnt);
pEnt.hitReact(__player);
}
function onPlayerTakeDamage(pEnt) {
if (__player.isInvincible) {
return(undefined);
}
if (__state.coins > 0) {
var _local4 = ((pEnt.DAMAGE <= __state.coins) ? (pEnt.DAMAGE) : (__state.coins));
__state.loseCoins(pEnt.DAMAGE);
while (_local4--) {
generateEffect({type:"coin", x:__player.x, y:__player.y, gravity:__gravity});
}
} else if (__state.hasBurro) {
__state.loseBurro();
generateBurro({x:__player.x, y:__player.y, platform:__endPlatform});
} else {
onBeginEvent("death");
__player.hitReactDeath(pEnt);
return(undefined);
}
__player.hitReactHostile(pEnt);
}
function onAdvanceEvent() {
__eventStep++;
}
function onCompleteEvent() {
__activeEvent = "";
update = updateGameplay;
}
function onBeginEvent(pEvent) {
if (__activeEvent == pEvent) {
return(undefined);
}
__player.onBeginEvent(pEvent);
var _local2 = __entitys.length;
while (_local2--) {
__entitys[_local2].onBeginEvent(pEvent);
}
_local2 = __platforms.length;
while (_local2--) {
__platforms[_local2].onBeginEvent(pEvent);
}
_local2 = __friendlyProjectiles.length;
while (_local2--) {
__friendlyProjectiles[_local2].onBeginEvent(pEvent);
}
_local2 = __scenery.length;
while (_local2--) {
__scenery[_local2].onBeginEvent(pEvent);
}
_local2 = __pickups.length;
while (_local2--) {
__pickups[_local2].onBeginEvent(pEvent);
}
_local2 = __effects.length;
while (_local2--) {
__effects[_local2].onBeginEvent(pEvent);
}
__eventStep = 1;
__activeEvent = pEvent;
}
function updateDeathEvent(dt) {
dt = dt / 2;
__player.update(dt);
__player.move(dt);
__player.render(dt);
if (!__player.getIsKnocked()) {
smashing.rampage.Messenger.sendMessage("engine", "onGameOver");
}
}
function updateGameplay(dt) {
}
function showArrays() {
}
function onPressAttack() {
if (__activeEvent != "") {
return(undefined);
}
__player.onAttack();
}
function onPickupPoints(pEnt) {
if (pEnt.TYPE == "coin") {
__state.addCoin();
} else if (pEnt.isMini) {
__state.addMiniDiamond();
} else {
__state.addDiamond();
}
}
function onPickupBurro() {
__state.regainBurro();
}
function onKnockPoints(pEnt) {
pEnt.fastDie();
generateEffect({type:"coin", x:pEnt.x, y:pEnt.y, gravity:__gravity});
nick.eltigre.mcm.Sounds.getInstance().p("nogem");
}
function firePlayerProjectile(pData) {
__friendlyProjectiles.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createProjectile(pData.type, pData));
}
function onPlayerTouchEventPlatform(pData) {
onBeginEvent(pData.id);
}
function onPlayerTouchSpecialPlatform(pData) {
var _local3 = false;
if (__expanseCleaningStep == 0) {
if (pData.id == __currentExpanseID) {
_local3 = true;
}
nextExpanse();
__expanseCleaningStep = 1;
if (_local3) {
return(undefined);
}
}
if (__expanseCleaningStep == 1) {
var _local2 = __platforms.length;
while (_local2--) {
if (__platforms[_local2].expanseID == __currentConnectorID) {
__platforms[_local2].onLockTouch();
} else if (__platforms[_local2].expanseID != __currentExpanseID) {
__platforms[_local2].flagForRemoval();
}
}
_local2 = __entitys.length;
while (_local2--) {
if ((__entitys[_local2].expanseID != __currentExpanseID) && (__entitys[_local2].expanseID != __currentConnectorID)) {
__entitys[_local2].flagForRemoval();
}
}
_local2 = __pickups.length;
while (_local2--) {
if ((__pickups[_local2].expanseID != __currentExpanseID) && (__pickups[_local2].expanseID != __currentConnectorID)) {
__pickups[_local2].flagForRemoval();
}
}
_local2 = __scenery.length;
while (_local2--) {
if ((__scenery[_local2].expanseID != __currentExpanseID) && (__pickups[_local2].expanseID != __currentConnectorID)) {
__scenery[_local2].flagForRemoval();
}
}
nextConnector();
__expanseCleaningStep = 0;
}
}
function onSombreroCaught() {
__player.onCatchHat();
}
function spawnMonsterDiamond(pData) {
pData.isMini = true;
__pickups.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity("diamond", pData));
}
function onCheatErupt() {
}
function onCheatOso() {
}
function generate() {
}
function nextExpanse() {
__state.addProgressScore(__expanseCount);
}
function nextConnector() {
}
function generateExpanse(pID) {
__expanseCount++;
var _local3 = __expanseLibrary.getExpanse(pID);
var _local4;
__currentExpanseID = _local3.ID;
var _local2 = _local3.platforms.length;
while (_local2--) {
generatePlatformFromExpanse(_local3.platforms[_local2]);
if (__platforms[__platforms.length - 1].isEnd) {
_local4 = __platforms.length - 1;
}
}
_local2 = _local3.monsters.length;
while (_local2--) {
generateMonster(_local3.monsters[_local2]);
}
_local2 = _local3.pickups.length;
while (_local2--) {
generatePickup(_local3.pickups[_local2]);
}
if (_local4 == undefined) {
return(undefined);
}
__endPlatform = __platforms[_local4];
return(_local3);
}
function generateConnector(pID) {
var _local3 = __connectorLibrary.getConnector(pID);
var _local4;
__currentConnectorID = _local3.ID;
var _local2 = _local3.platforms.length;
while (_local2--) {
generatePlatformFromExpanse(_local3.platforms[_local2]);
if (__platforms[__platforms.length - 1].isEnd) {
_local4 = __platforms.length - 1;
}
}
_local2 = _local3.monsters.length;
while (_local2--) {
generateMonster(_local3.monsters[_local2]);
}
_local2 = _local3.pickups.length;
while (_local2--) {
generatePickup(_local3.pickups[_local2]);
}
if (_local4 == undefined) {
return(undefined);
}
__endPlatform = __platforms[_local4];
}
function generatePlatformFromExpanse(pPlat) {
pPlat.x = pPlat.x + __endPlatform.x;
pPlat.y = pPlat.y + __endPlatform.y;
generatePlatform(pPlat);
}
function generatePlatform(pPlat) {
__platforms.push(nick.eltigre.mcm.libraries.base.PlatformLibrary.createPlatform(pPlat.type, pPlat));
}
function generateMonster(pMonster) {
var _local3 = nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity(pMonster.type, pMonster);
if (_local3.IS_PLATFORM_BOUND) {
var _local2 = __platforms.length;
while (_local2--) {
if ((__platforms[_local2].expanseID == _local3.expanseID) && (__platforms[_local2].expanseFlag == _local3.platformFlag)) {
_local3.linkToPlatform(__platforms[_local2], __platforms[_local2].getSurfaceByID("top"));
_local2 = 0;
}
}
} else {
_local3.adjustToExpanse(__endPlatform.x, __endPlatform.y);
}
__entitys.push(_local3);
}
function generatePickup(pPickup) {
pPickup.x = pPickup.x + __endPlatform.x;
pPickup.y = pPickup.y + __endPlatform.y;
__pickups.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity(pPickup.type, pPickup));
}
function generateBurro(pData) {
__pickups.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity("burro", pData));
}
function generateEffect(pData) {
__effects.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEffect(pData.type, pData));
}
function getPlayer() {
return(__player);
}
function get camera() {
return(__camera);
}
function onMessageReceived(message, args) {
this[message](args);
}
}
Symbol 1555 MovieClip [__Packages.smashing.rampage.BaseCamera] Frame 0
class smashing.rampage.BaseCamera
{
static var __instance;
var __gameState, x, y, z, fl, farClip, __bound_left, __bound_right, __bound_top, __bound_bottom, left, right, top, bottom;
function BaseCamera (t_data) {
}
static function init(t_path, t_depth, dimensions) {
__instance = new smashing.rampage.BaseCamera(t_path, t_depth, dimensions);
}
static function getInstance() {
return(__instance);
}
function generate(t_data) {
__gameState = getGameState();
x = (y = (z = 0));
if (t_data.x != undefined) {
x = t_data.x;
}
if (t_data.y != undefined) {
y = t_data.y;
}
if (t_data.z != undefined) {
z = t_data.z;
}
fl = __FL_DEF;
farClip = __DEF_CLIP;
refreshEdges();
}
function getGameState() {
return(new Object());
}
function update(dt) {
}
function setBounds(left, right, top, bottom) {
__bound_left = left + __gameState.HALF_WIDTH;
__bound_right = right - __gameState.HALF_WIDTH;
__bound_top = top + __gameState.HALF_HEIGHT;
__bound_bottom = bottom - __gameState.HALF_HEIGHT;
}
function enforceBounds() {
if (x < __bound_left) {
x = __bound_left;
} else if (x > __bound_right) {
x = __bound_right;
}
if (y < __bound_top) {
y = __bound_top;
} else if (y > __bound_bottom) {
y = __bound_bottom;
}
}
function refreshEdges() {
left = x - __gameState.HALF_WIDTH;
right = x + __gameState.HALF_WIDTH;
top = y - __gameState.HALF_HEIGHT;
bottom = y + __gameState.HALF_HEIGHT;
}
function get sc() {
return(__gameState.sc);
}
function screenWidth() {
return(__gameState.SCREEN_WIDTH);
}
function screenHeight() {
return(__gameState.SCREEN_WIDTH);
}
function halfWidth() {
return(__gameState.HALF_WIDTH);
}
function halfHeight() {
return(__gameState.HALF_HEIGHT);
}
function toString() {
return((((("Camera : focus : " + x) + " , ") + y) + " , ") + z);
}
var __DEF_CLIP = 100000;
var __FL_DEF = 1000;
var __EDGE_PADDING = 50;
}
Symbol 1556 MovieClip [__Packages.nick.eltigre.mcm.GameCamera] Frame 0
class nick.eltigre.mcm.GameCamera extends smashing.rampage.BaseCamera
{
static var __instance;
var __isTranslatingX, __isTranslatingY, __lockX, x, __lockY, y, __diffX, __diffY, __get__sc;
function GameCamera () {
super();
}
static function init(t_path, t_depth, dimensions) {
__instance = new nick.eltigre.mcm.GameCamera(t_path, t_depth, dimensions);
}
static function getInstance() {
return(__instance);
}
function getGameState() {
return(nick.eltigre.mcm.GameState.getInstance());
}
function generate(t_data) {
super.generate(t_data);
__isTranslatingX = false;
__isTranslatingY = false;
update = updateTrack;
}
function goSkyMode(pX, pY) {
update = updateSky;
}
function goIntroMode() {
update = updateIntro;
}
function goTrackMode() {
update = updateTrack;
}
function goShakeMode() {
__lockX = x;
__lockY = y;
update = updateShake;
}
function lockTo(pX, pY) {
__lockX = pX;
__lockY = pY;
update = updateLock;
}
function releaseLock() {
goTrackMode();
}
function update(dt, pPlayer, pCeiling) {
}
function updateLock(dt, pPlayer, pCeiling) {
if (x < __lockX) {
x = x + (__SCROLL_RATE * dt);
if (x > __lockX) {
x = __lockX;
}
} else if (x > __lockX) {
x = x - (__SCROLL_RATE * dt);
if (x < __lockX) {
x = __lockX;
}
}
if (y < __lockY) {
y = y + (__SCROLL_RATE * dt);
if (y > __lockY) {
x = __lockY;
}
} else if (y > __lockY) {
y = y - (__SCROLL_RATE * dt);
if (y < __lockY) {
y = __lockY;
}
}
}
function updateIntro(dt, pPlayer, pCeiling) {
__diffX = pPlayer.x - x;
__diffY = pPlayer.y - y;
if (Math.abs(__diffX) > __SCROLL_TETHER_X) {
x = pPlayer.x + ((__diffX < 0) ? (__SCROLL_TETHER_X) : (-__SCROLL_TETHER_X));
}
if (Math.abs(__diffY) > __SCROLL_TETHER_Y) {
y = pPlayer.y + ((__diffY < 0) ? (__SCROLL_TETHER_Y) : (-__SCROLL_TETHER_Y));
}
if ((pCeiling != undefined) && ((y + __get__sc().y) > pCeiling.y)) {
y = pCeiling.y - __get__sc().y;
}
}
function updateTrack(dt, pPlayer, pCeiling) {
__diffX = pPlayer.x - x;
__diffY = pPlayer.y - y;
if (Math.abs(__diffX) > __SCROLL_TETHER_X) {
x = pPlayer.x + ((__diffX < 0) ? (__SCROLL_TETHER_X) : (-__SCROLL_TETHER_X));
}
if (Math.abs(__diffY) > __SCROLL_TETHER_Y) {
y = pPlayer.y + ((__diffY < 0) ? (__SCROLL_TETHER_Y) : (-__SCROLL_TETHER_Y));
}
if ((pCeiling != undefined) && ((y + __get__sc().y) > pCeiling.y)) {
y = pCeiling.y - __get__sc().y;
}
}
function updateSky(dt, pPlayer, pCeiling) {
__diffY = y - __get__sc().y;
if (__diffY < pCeiling.y) {
if (Math.abs(__diffY - pCeiling.y) > __MAX_SNAP) {
y = y + (__SCROLL_RATE * dt);
} else {
y = pCeiling.y + __get__sc().y;
}
}
}
function updateShake() {
x = (__lockX + 20) - (Math.random() * 40);
y = (__lockY + 20) - (Math.random() * 40);
}
var __ENFORCE_BOUNDS = true;
var __SCROLL_TETHER_X = 80;
var __SCROLL_TETHER_Y = 60;
var __SCROLL_RATE = 320;
var __MAX_SNAP = 8;
}
Symbol 1557 MovieClip [__Packages.smashing.rampage.Renderable] Frame 0
class smashing.rampage.Renderable
{
var mc, baseWidth, baseHeight, hdWidth, hdHeight, radius, assetID, startX, startY, startZ, __camera, x, y, z, depthInfluence, flipH, doUpdate, threedScale, __onscreen, isDrawn, isAlive, isHidden, scale, startScale, hdReg;
function Renderable (t_data) {
mc = null;
baseWidth = __DEF_WIDTH;
baseHeight = __DEF_HEIGHT;
if (__USE_DIMENSIONS_AS_HD) {
hdWidth = baseWidth / 2;
hdHeight = baseHeight / 2;
radius = hdWidth;
} else {
hdWidth = __DEF_HD_WIDTH / 2;
hdHeight = __DEF_HD_HEIGHT / 2;
radius = hdWidth;
}
setHDRegistration();
init(t_data);
}
function init(t_data) {
if (t_data.asset == undefined) {
t_data.asset = __DEF_ASSET;
}
assetID = t_data.asset;
if (t_data.x == undefined) {
t_data.x = 0;
}
startX = t_data.x;
if (t_data.y == undefined) {
t_data.y = 0;
}
startY = t_data.y;
if (t_data.z == undefined) {
t_data.z = __DEF_Z;
}
startZ = t_data.z;
if (__camera != undefined) {
initScale();
}
x = startX;
y = startY;
z = startZ;
if (t_data.depthInfluence == undefined) {
t_data.depthInfluence = 0;
}
depthInfluence = t_data.depthInfluence;
if (t_data.flip != undefined) {
flip();
} else {
flipH = false;
}
doUpdate = __DO_UPDATE;
threedScale = __3D_SCALE;
__onscreen = false;
if (((mc == undefined) || (mc == null)) || (mc == "")) {
isDrawn = false;
}
isAlive = true;
isHidden = false;
}
function linkCamera(cam) {
__camera = cam;
if (startZ != undefined) {
initScale();
}
}
function onDraw(t_newmc) {
isDrawn = true;
mc = t_newmc;
if (isHidden) {
mc._visible = false;
}
if (__USE_ACTUAL_DIMENSIONS) {
baseWidth = mc._width;
baseHeight = mc._height;
setHDRegistration();
if (__USE_DIMENSIONS_AS_HD) {
hdWidth = baseWidth / 2;
hdHeight = baseHeight / 2;
radius = hdWidth;
}
}
if (flipH) {
mc._xscale = -100;
}
mc._x = -1000 - baseWidth;
mc._y = -1000 - baseHeight;
}
function update(dt) {
}
function updateAndRender(dt) {
}
function render(dt) {
updateDraw();
if (!isDrawn) {
return(undefined);
}
if (threedScale) {
if (z < __camera.z) {
return(undefined);
}
var _local2 = __camera.fl / (z - __camera.z);
if (scale != _local2) {
scale = _local2;
mc._xscale = (mc._yscale = 100 * (1 + (scale - startScale)));
if (flipH) {
mc._xscale = mc._xscale * -1;
}
}
}
mc._x = Math.ceil((((x - __camera.x) * scale) + __camera.__get__sc().x) * 100) / 100;
mc._y = Math.ceil((((y - __camera.y) * scale) + __camera.__get__sc().y) * 100) / 100;
}
function renderDirect(camera) {
mc._x = x;
mc._y = y;
}
function initScale() {
startScale = (scale = __camera.fl / (startZ - __camera.z));
}
function updateDraw() {
__onscreen = false;
if (CUSTOMDRAW) {
__onscreen = true;
}
if ((Math.abs((x - __camera.x) * scale) < (__camera.__get__sc().x + baseWidth)) && (Math.abs((y - __camera.y) * scale) < (__camera.__get__sc().y + baseHeight))) {
__onscreen = true;
}
if ((!isDrawn) && (__onscreen)) {
smashing.rampage.viewport.Viewport.getInstance().draw({element:this});
} else if (isDrawn && (!__onscreen)) {
requestErase();
}
}
function onErase(t_viewport) {
isDrawn = false;
mc = null;
}
function requestErase() {
smashing.rampage.viewport.Viewport.getInstance().erase({element:this});
}
function requestDepthSort() {
smashing.rampage.viewport.Viewport.getInstance().requestGroupDepthSort(getDrawType());
}
function requestDepthChange() {
smashing.rampage.viewport.Viewport.getInstance().requestDepthChange(this);
}
function deleteMe() {
}
function kill() {
isAlive = false;
}
function hide() {
if (isDrawn) {
mc._visible = false;
}
isHidden = true;
}
function show() {
if (isDrawn) {
mc._visible = true;
}
isHidden = false;
}
function flip() {
flipH = true;
if (isDrawn) {
mc._xscale = -100;
}
}
function unflip() {
flipH = false;
if (isDrawn) {
mc._xscale = 100;
}
}
function toggleFlip() {
if (flipH) {
unflip();
} else {
flip();
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
function runHD_entity_radius(t_target, dt) {
var _local4 = (x + hdReg.x) - (t_target.x + t_target.hdReg.x);
var _local3 = (y + hdReg.y) - (t_target.y + t_target.hdReg.y);
var _local5 = Math.sqrt((_local4 * _local4) + (_local3 * _local3));
if (_local5 <= (t_target.radius + radius)) {
return(true);
}
return(false);
}
function runHD_entity_box(t_target, dt) {
if (Math.abs((x + hdReg.x) - (t_target.x + t_target.hdReg.x)) < (hdWidth + t_target.hdWidth)) {
if (Math.abs((y + hdReg.y) - (t_target.y + t_target.hdReg.y)) < (hdHeight + t_target.hdHeight)) {
return(true);
}
}
return(false);
}
function runHD_entity_3D(t_target, dt) {
var _local3 = z - t_target.z;
var _local2 = (z + radius) - t_target.z;
if ((_local3 * _local2) <= 0) {
return(runHD_entity_radius(t_target, dt));
}
return(false);
}
function runHD_line_sphere(t_lineStart, t_lineEnd, dt) {
var _local4 = new smashing.Point3D(t_lineStart.x, t_lineStart.y, 0);
var _local3 = new smashing.Point3D(t_lineEnd.x, t_lineEnd.y, 0);
var _local6 = _local4.x - _local3.x;
var _local7 = _local4.y - _local3.y;
var _local2 = getLineSeperation(_local3, {x:x, y:y}, _local6, _local7);
var _local5;
if (_local2.distance <= radius) {
_local5 = new smashing.Point3D(x + _local2.xSeparation, y + _local2.ySeparation);
return(true);
}
_local5.x = (_local5.y = 0);
return(false);
}
function runHD_line_sphere_complex(t_lineStart, t_lineEnd, dt) {
var _local5 = new smashing.Point3D(t_lineStart.x, t_lineStart.y, 0);
var _local7 = new smashing.Point3D(t_lineEnd.x, t_lineEnd.y, 0);
var _local8;
var _local16 = getDistBetween(_local5, {x:x, y:y});
var _local15 = getDistBetween(_local7, {x:x, y:y});
var _local11 = getDistBetween(_local5, _local7);
var _local4 = new smashing.Point3D(_local5.x, _local5.y);
var _local9 = new smashing.Point3D(_local7.x, _local7.y);
var _local12 = _local9.x - _local4.x;
var _local13 = _local9.y - _local4.y;
var _local3 = _local12 / _local11;
var _local2 = _local13 / _local11;
var _local10;
_local4.subtractScalarMe(_local3 * radius, _local2 * radius);
_local9.addScalarMe(_local3 * radius, _local2 * radius);
var _local6 = getLineSeperation(_local5, {x:x, y:y}, _local12, _local13);
_local12 = _local9.x - _local4.x;
_local13 = _local9.y - _local4.y;
var _local14 = getLineSeperation(_local4, {x:x, y:y}, _local12, _local13);
if (_local6.distance <= radius) {
if (_local15 > _local11) {
_local8 = Math.sqrt((radius * radius) - (_local14.distance * _local14.distance));
_local3 = _local3 * _local8;
_local2 = _local2 * _local8;
(x + _local14.xSeparation) + _local3;
_local10 = (y + _local14.ySeparation) + _local2;
} else {
_local8 = Math.sqrt((radius * radius) - (_local6.distance * _local6.distance));
_local3 = _local3 * _local8;
_local2 = _local2 * _local8;
(x + _local6.xSeparation) + _local3;
_local10 = (y + _local6.ySeparation) + _local2;
if (getDistBetween(_local5, _local10) >= _local11) {
_local10.copy(_local7);
}
}
return(true);
}
_local10.x = (_local10.y = 0);
return(false);
}
function getLineSeperation(p0, s, dx, dy) {
var _local1 = new Object();
var _local5 = p0.x - s.x;
var _local6 = p0.y - s.y;
var _local7 = (dx * dx) + (dy * dy);
var _local2 = (-((_local5 * dx) + (_local6 * dy))) / _local7;
_local2 = Math.min(Math.max(_local2, 0), 1);
_local1.xSeparation = _local5 + (_local2 * dx);
_local1.ySeparation = _local6 + (_local2 * dy);
_local1.distance = Math.sqrt((_local1.xSeparation * _local1.xSeparation) + (_local1.ySeparation * _local1.ySeparation));
return(_local1);
}
function getDistBetween(p0, p1) {
return(Math.sqrt((p1.x - p0.x) * (p1.x - p0.x)) + ((p1.y - p0.y) * (p1.y - p0.y)));
}
function hitReact(t_source) {
}
function getDrawType() {
return(DRAWTYPE);
}
function animate(t_frame, t_subFrame) {
mc.gotoAndStop(t_frame);
if (t_subFrame != undefined) {
mc.anim.gotoAndStop(t_subFrame);
}
}
function toString() {
return("Renderable: " + TYPE);
}
function drawHitBox() {
var _local3 = hdReg.x;
var _local4 = hdReg.y;
var _local2 = mc.createEmptyMovieClip("hitbox", 1);
_local2.beginFill(16751103, 50);
_local2.lineStyle(2, 16751103, 100);
_local2.moveTo(_local3 - hdWidth, _local4 - hdHeight);
_local2.lineTo(_local3 + hdWidth, _local4 - hdHeight);
_local2.lineTo(_local3 + hdWidth, _local4 + hdHeight);
_local2.lineTo(_local3 - hdWidth, _local4 + hdHeight);
_local2.lineTo(_local3 - hdWidth, _local4 - hdHeight);
_local2.endFill();
}
function drawReg() {
var _local2 = mc.createEmptyMovieClip("hitbox", 1);
_local2.beginFill(16751103, 50);
_local2.lineStyle(2, 16751103, 100);
_local2.moveTo(-5, -5);
_local2.lineTo(5, -5);
_local2.lineTo(5, 5);
_local2.lineTo(-5, 5);
_local2.lineTo(-5, -5);
}
var TYPE = "element";
var DRAWTYPE = "element";
var __DEF_ASSET = "";
var __DEF_Z = 1000;
var __3D_SCALE = false;
var __DEF_WIDTH = 50;
var __DEF_HEIGHT = 50;
var __USE_ACTUAL_DIMENSIONS = true;
var CUSTOMDRAW = false;
var __DEF_HD_WIDTH = 25;
var __DEF_HD_HEIGHT = 25;
var __USE_DIMENSIONS_AS_HD = true;
var __DO_UPDATE = true;
}
Symbol 1558 MovieClip [__Packages.smashing.rampage.viewport.Viewport] Frame 0
class smashing.rampage.viewport.Viewport
{
static var __instance;
var __a_groups, __o_groups, __dimensions, __viewportPath, __viewportDepth, __useScrollport, __sortGroupHasChanged, __groupsToBeUpdated, __groupsToBeSorted, __scrollportDepth, __loop, mc, scrollmc;
function Viewport (pPath, pDepth, pDimensions) {
__a_groups = [];
__o_groups = {};
__dimensions = pDimensions;
__viewportPath = pPath;
__viewportDepth = pDepth;
__useScrollport = false;
__sortGroupHasChanged = false;
__groupsToBeUpdated = [];
__groupsToBeSorted = [];
}
static function init(pPath, pDepth, pDimensions) {
__instance = new smashing.rampage.viewport.Viewport(pPath, pDepth, pDimensions);
}
static function getInstance() {
return(__instance);
}
function setScrollport(pDepth) {
__useScrollport = true;
__scrollportDepth = pDepth;
}
function initGroups() {
var _local6 = __a_groups.length;
var _local2;
var _local5 = [];
var _local3 = 0;
while (_local5.length < _local6) {
_local2 = __a_groups.length;
while (_local2--) {
if (__a_groups[_local2].index < __a_groups[_local3].index) {
_local3 = _local2;
}
}
_local5.push(__a_groups[_local3]);
__a_groups.splice(_local3, 1);
}
__a_groups = _local5;
var _local4 = __defaultMCDepth;
_local2 = 0;
while (_local2 < __a_groups.length) {
_local4 = __a_groups[_local2].init(_local4);
_local4++;
_local2++;
}
newView();
}
function update(dt) {
if (__sortGroupHasChanged) {
__loop = __groupsToBeSorted.length;
while (__loop--) {
__groupsToBeSorted[__loop].requestDepthSort();
}
__groupsToBeSorted = [];
__sortGroupHasChanged = false;
}
__loop = __groupsToBeUpdated.length;
while (__loop--) {
__groupsToBeUpdated[__loop].update(dt);
}
}
function newView() {
var _local2 = __a_groups.length;
while (_local2--) {
__a_groups[_local2].reset();
}
if (mc != undefined) {
mc.removeMovieClip();
}
mc = __viewportPath.createEmptyMovieClip("viewport" + __viewportDepth, __viewportDepth);
if (__useScrollport) {
if (scrollmc != undefined) {
scrollmc.removeMovieClip();
}
scrollmc = __viewportPath.createEmptyMovieClip("scrollport" + __scrollportDepth, __scrollportDepth);
scrollmc.scrollRect = new flash.geom.Rectangle(0, 0, __dimensions.SCREEN_WIDTH + 1, __dimensions.SCREEN_HEIGHT);
}
}
function clearGroup(pGroupID) {
__o_groups[pGroupID].clear();
}
function draw(pData) {
var _local4;
if (pData.element != undefined) {
var _local3 = pData.element;
_local4 = __drawElement(_local3);
if (_local4 != undefined) {
_local3.onDraw(_local4);
// unexpected jump
}
return(undefined);
}
if (pData.assetID == "_empty") {
return(__drawEmpty(pData.groupID, pData.depth + pData.depthInfluence));
}
return(__drawAsset(pData.assetID, pData.groupID, pData.depth + pData.depthInfluence));
}
function erase(pData) {
if (pData.element != undefined) {
__eraseAsset(pData.element.mc, pData.element.getDrawType());
pData.element.onErase();
} else {
__eraseAsset(pData.mc, pData.groupID);
}
}
function createGroup(pData) {
__a_groups.push((__o_groups[pData.id] = new smashing.rampage.viewport.ViewportGroup(pData)));
if (__a_groups[__a_groups.length - 1].doActiveSort) {
__groupsToBeUpdated.push(__a_groups[__a_groups.length - 1]);
}
}
function requestGroupDepthSort(pGroup) {
__o_groups[pGroup].requestDepthSort();
}
function requestDepthChange(pElement) {
__o_groups[pElement.getDrawType()].requestDepthChange(pElement);
}
function __drawElement(pElement) {
var _local2 = __o_groups[pElement.getDrawType()];
if (_local2 == undefined) {
return(null);
}
var _local5 = _local2.getDepth();
var _local4 = mc;
if (_local2.scrollport) {
_local4 = scrollmc;
}
if (pElement.assetID == "_empty") {
var _local6 = _local4.createEmptyMovieClip(pElement.getDrawType() + _local2.getID(), _local5);
} else {
var _local6 = _local4.attachMovie(pElement.assetID, pElement.assetID + _local2.getID(), _local5);
}
_local2.addElement(new smashing.rampage.viewport.ViewportElement(_local6, _local5, pElement));
if (_local2.doSort) {
if (!_local2.awaitingSort) {
__groupsToBeSorted.push(_local2);
_local2.awaitingSort = true;
}
__sortGroupHasChanged = true;
}
return(_local6);
}
function __drawAsset(pAsset, pGroupID, pDepth) {
var _local2 = __o_groups[pGroupID];
var _local5 = _local2.getDepth(pDepth);
var _local4 = mc;
if (_local2.scrollport) {
_local4 = scrollmc;
}
var _local3 = _local4.attachMovie(pAsset, pAsset + _local2.getID(), _local5);
_local2.addElement(new smashing.rampage.viewport.ViewportElement(_local3, _local5));
return(_local3);
}
function __drawEmpty(pGroupID, pDepth) {
var _local2 = __o_groups[pGroupID];
var _local5 = _local2.getDepth(pDepth);
var _local4 = mc;
if (_local2.scrollport) {
_local4 = scrollmc;
}
var _local3 = _local4.createEmptyMovieClip(pGroupID + _local2.getID(), _local5);
__o_groups[pGroupID].addElement(new smashing.rampage.viewport.ViewportElement(_local3, _local5));
return(_local3);
}
function __eraseAsset(pMc, pGroupID) {
__o_groups[pGroupID].removeElementByMC(pMc);
}
function toString() {
return("Viewport exists");
}
var __defaultMCDepth = 100;
}
Symbol 1559 MovieClip [__Packages.smashing.rampage.viewport.ViewportGroup] Frame 0
class smashing.rampage.viewport.ViewportGroup
{
var id, elements, index, totalSlots, scrollport, sortAxis, reverse, ascending, __sortRate, doSort, doActiveSort, __sortTimer, idCounter, awaitingSort, __min, __max, __current, __ra, __targetDepth, __loop;
function ViewportGroup (t_data) {
id = t_data.id;
elements = [];
index = t_data.index;
totalSlots = t_data.slots;
if (t_data.scrollport == undefined) {
t_data.scrollport = false;
}
scrollport = t_data.scrollport;
if (t_data.sortAxis == undefined) {
t_data.sortAxis = "";
}
sortAxis = t_data.sortAxis;
if (sortAxis == "") {
if (t_data.reverse == undefined) {
t_data.reverse = false;
}
reverse = t_data.reverse;
ascending = false;
__sortRate = 0;
doSort = false;
doActiveSort = false;
} else {
doSort = true;
reverse = false;
if (totalSlots < 10000) {
totalSlots = 10000;
}
if (t_data.ascending == undefined) {
t_data.ascending = false;
}
ascending = t_data.ascending;
if (t_data.sortRate == undefined) {
t_data.sortRate = 0;
doActiveSort = false;
} else {
doActiveSort = true;
}
__sortRate = t_data.sortRate;
__sortTimer = __sortRate;
}
idCounter = 0;
awaitingSort = false;
}
function update(dt) {
__sortTimer = __sortTimer - dt;
if (__sortTimer < 0) {
requestDepthSort();
}
}
function init(pDepth) {
__min = pDepth;
__max = pDepth + totalSlots;
reset();
return(__max);
}
function reset() {
elements = [];
if (doSort) {
__current = __max;
} else if (reverse) {
__current = __max;
} else {
__current = __min;
}
}
function clear() {
while (elements.length > 0) {
removeElementByMC(elements[elements.length - 1].mc);
}
reset();
}
function addElement(pElement) {
elements.push(pElement);
}
function removeElementByMC(pMc) {
var _local2 = elements.length;
while (_local2--) {
if (elements[_local2].mc == pMc) {
elements[_local2].mc.removeMovieClip();
elements.splice(_local2, 1);
return(undefined);
}
}
}
function getID() {
idCounter++;
return(("_" + id) + idCounter);
}
function requestDepthChange(pElement) {
__resortDepths();
}
function requestDepthSort() {
__resortDepths();
}
function getDepth() {
if (!doSort) {
__calculateFastDepth();
} else {
__calculateTempDepth();
}
return(__current);
}
function __calculateFastDepth() {
if (reverse) {
__current--;
if (__current < __min) {
__current = __flattenDepths();
}
} else {
__current++;
if (__current > __max) {
__current = __flattenDepths();
}
}
}
function __calculateTempDepth() {
__current--;
}
function __flattenDepths() {
__ra = [];
while (__ra.length < elements.length) {
__ra.push(elements[__ra.length]);
}
elements = [];
__targetDepth = (reverse ? (__max) : (__min));
var _local2;
var _local3;
while (__ra.length > 0) {
_local2 = (reverse ? (__min - 1000) : (__max + 1000));
__loop = __ra.length;
while (__loop--) {
if ((reverse ? (_local2 < __ra[__loop].depth) : (_local2 > __ra[__loop].depth))) {
_local3 = __loop;
_local2 = __ra[__loop].depth;
}
}
__ra[_local3].redepth(__targetDepth);
elements.push(__ra[_local3]);
__ra.splice(_local3, 1);
if (reverse) {
__targetDepth--;
if (__targetDepth < __min) {
}
} else {
__targetDepth++;
if (__targetDepth > __max) {
}
}
}
return(__targetDepth);
}
function __resortDepths() {
__ra = [];
while (__ra.length < elements.length) {
__ra.push(elements[__ra.length]);
}
elements = [];
__targetDepth = __min;
var _local3;
var _local2;
while (__ra.length > 0) {
_local3 = 10000000 /* 0x989680 */;
_local2 = -1;
__loop = __ra.length;
while (__loop--) {
if (_local3 > __ra[__loop].getAxis(sortAxis)) {
_local2 = __loop;
_local3 = __ra[__loop].getAxis(sortAxis);
}
}
__ra[_local2].redepth(__targetDepth);
elements.push(__ra[_local2]);
__ra.splice(_local2, 1);
__targetDepth++;
if (__targetDepth > __max) {
}
}
__current = __max;
__sortTimer = __sortRate;
awaitingSort = false;
}
}
Symbol 1560 MovieClip [__Packages.smashing.rampage.viewport.ViewportElement] Frame 0
class smashing.rampage.viewport.ViewportElement
{
var mc, depth, __needsDepthRecalc, isElement, element, __storedDepth;
function ViewportElement (pMc, pDepth, pElement) {
mc = pMc;
depth = pDepth;
__needsDepthRecalc = true;
if (pElement == undefined) {
isElement = false;
} else {
isElement = true;
element = pElement;
}
}
function redepth(pDepth) {
depth = pDepth;
mc.swapDepths(depth);
__needsDepthRecalc = true;
}
function getAxis(pAxis) {
if (__needsDepthRecalc) {
__storedDepth = element[pAxis] + element.depthInfluence;
__needsDepthRecalc = false;
}
return(__storedDepth);
}
}
Symbol 1561 MovieClip [__Packages.smashing.Point3D] Frame 0
class smashing.Point3D
{
var x, y, z;
function Point3D (x, y, z) {
this.x = Number(x);
this.y = Number(y);
this.z = Number(z);
}
function get length() {
return(Math.sqrt(((x * x) + (y * y)) + (z * z)));
}
function set length(newLength) {
if (length != 0) {
var _local2 = newLength / length;
x = x * _local2;
y = y * _local2;
z = z * _local2;
}
//return(length);
}
function get lengthSqu() {
return(((x * x) + (y * y)) + (z * z));
}
function copy() {
return(new smashing.Point3D(x, y, z));
}
function addPoint(p) {
return(new smashing.Point3D(p.x + x, p.y + y, p.z + z));
}
function subtractPoint(p) {
return(new smashing.Point3D(x - p.x, y - p.y, z - p.z));
}
function addScalar(n) {
return(new smashing.Point3D(x + n, y + n, z + n));
}
function subtractScalar(n) {
return(new smashing.Point3D(x - n, y - n, z - n));
}
function addPointMe(p) {
x = x + p.x;
y = y + p.y;
z = z + p.z;
}
function subtractPointMe(p) {
x = x - p.x;
y = y - p.y;
z = z - p.z;
}
function addScalarMe(n) {
x = x + n;
y = y + n;
z = z + n;
}
function subtractScalarMe(n) {
x = x - n;
y = y - n;
z = z - n;
}
function multiply(n) {
var _local2 = copy();
_local2.x = _local2.x * n;
_local2.y = _local2.y * n;
_local2.z = _local2.z * n;
return(_local2);
}
function divide(n) {
var _local2 = copy();
if (n == 0) {
_local2.x = 0;
_local2.y = 0;
_local2.z = 0;
return(undefined);
}
_local2.x = _local2.x / n;
_local2.y = _local2.y / n;
_local2.z = _local2.z / n;
return(_local2);
}
function multiplyMe(n) {
x = x * n;
y = y * n;
z = z * n;
}
function divideMe(n) {
x = x / n;
y = y / n;
z = z / n;
}
function dot(p) {
return(((x * p.x) + (y * p.y)) + (z * p.z));
}
function cross(p) {
return(new smashing.Point3D((y * p.z) - (z * p.y), (z * p.x) - (x * p.z), (x * p.y) - (y * p.x)));
}
function pseudoCross() {
return(new smashing.Point3D(y, -x, z));
}
function normalize() {
if (((!x) && (!y)) && (!z)) {
return(undefined);
}
var _local2 = length;
return(new smashing.Point3D(x / _local2, y / _local2, z / _local2));
}
function normalizeMe() {
if ((!x) && (!y)) {
return(undefined);
}
var _local2 = length;
x = x / _local2;
y = y / _local2;
z = z / _local2;
}
function reverse() {
var _local2 = new smashing.Point3D(x * -1, y * -1, z * -1);
return(_local2);
}
function reverseMe() {
x = x * -1;
y = y * -1;
z = z * -1;
}
function findCosine(vOther) {
var _local3 = dot(vOther);
var _local4 = length * vOther.__get__length();
var _local2 = _local3 / _local4;
return(_local2);
}
function equals(p) {
if (((x == p.x) && (y == p.y)) && (z == p.z)) {
return(true);
}
return(false);
}
function zero() {
x = 0;
y = 0;
z = 0;
}
function distSqu(p) {
var _local4 = p.x - x;
var _local3 = p.y - y;
var _local2 = p.z - z;
return(((_local4 * _local4) + (_local3 * _local3)) + (_local2 * _local2));
}
function toString() {
return(((((("Point3D (" + x) + ",") + y) + ",") + z) + ")");
}
function rotateMe(angle) {
var _local3 = Math.cos((angle * Math.PI) / 180);
var _local2 = Math.sin((angle * Math.PI) / 180);
x = (x * _local3) - (y * _local2);
y = (x * _local2) + (y * _local3);
}
function rotate(angle) {
var _local3 = Math.cos((angle * Math.PI) / 180);
var _local2 = Math.sin((angle * Math.PI) / 180);
return(new smashing.Point3D((x * _local3) - (y * _local2), (x * _local2) + (y * _local3), 0));
}
}
Symbol 1562 MovieClip [__Packages.nick.eltigre.mcm.GameRenderable] Frame 0
class nick.eltigre.mcm.GameRenderable extends smashing.rampage.Renderable
{
var linkCamera, __gravity;
function GameRenderable (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
linkCamera(nick.eltigre.mcm.GameCamera.getInstance());
if (pData.gravity != undefined) {
__gravity = pData.gravity;
}
}
}
Symbol 1563 MovieClip [__Packages.nick.eltigre.mcm.ents.Entity] Frame 0
class nick.eltigre.mcm.ents.Entity extends nick.eltigre.mcm.GameRenderable
{
var doRemove, doRender, velocity, __animation, kill, isDrawn, requestErase, isAlive, hdWidth, hdReg, x, hdHeight, y, mc, __isAnimating, DRAWTYPE, specialDepth;
function Entity (pData) {
super(pData);
}
function init(pData) {
doRemove = false;
doRender = true;
super.init(pData);
velocity = new smashing.Point3D(0, 0, 0);
__animation = __IDLE_ANIMATION;
}
function startDie() {
kill();
animate(__DEATH_ANIMATION);
if (__USES_VELOCITY) {
velocity.x = (velocity.y = 0);
}
}
function endDie() {
if (isDrawn) {
requestErase();
} else {
doRemove = true;
}
}
function fastDie() {
isAlive = false;
doRemove = true;
requestErase();
}
function onErase() {
super.onErase();
}
function updateDraw() {
if (doRemove || (!isAlive)) {
return(undefined);
}
super.updateDraw();
}
function onBeginEvent(pEvent) {
}
function runHD(t_target, dt) {
if (!(isAlive && (t_target.isAlive))) {
return(false);
}
if (Math.abs((x + hdReg.x) - (t_target.x + t_target.hdReg.x)) < (hdWidth + t_target.hdWidth)) {
if (Math.abs((y + hdReg.y) - (t_target.y + t_target.hdReg.y)) < (hdHeight + t_target.hdHeight)) {
return(true);
}
}
return(false);
}
function hitReact(pSource) {
}
function onDraw(t_newmc) {
super.onDraw(t_newmc);
animateLoop(__IDLE_ANIMATION);
}
function update(dt) {
updateAnim();
}
function updateAndRender(dt) {
updateAnim();
render(dt);
}
function render(dt) {
super.render(dt);
}
function animate(frame) {
if (frame != undefined) {
__animation = frame;
}
mc.gotoAndStop(__animation);
if (__animation == __IDLE_ANIMATION) {
__isAnimating = false;
} else {
__isAnimating = true;
}
}
function animateLoop(frame) {
if (frame != undefined) {
__animation = frame;
}
mc.gotoAndStop(__animation);
__isAnimating = false;
}
function updateAnim() {
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
} else {
animateLoop(__IDLE_ANIMATION);
}
}
}
}
function freezeAnimation() {
mc.anim.stop();
}
function unfreezeAnimation() {
if (__isAnimating) {
mc.anim.play();
} else {
animate();
}
}
function replaceVelocity(t_vector) {
velocity = t_vector.copy();
}
function inputVelocity(t_vector) {
velocity.x = velocity.x + t_vector.x;
velocity.y = velocity.y + t_vector.y;
velocity.z = velocity.z + t_vector.z;
}
function addVelocity(t_vector, dt, maxVelocity, xMult, yMult, zMult) {
if (maxVelocity == undefined) {
maxVelocity = __MAX_VELOCITY;
}
zMult = 1;
yMult = zMult;
xMult = yMult;
if ((Math.abs(velocity.x) < maxVelocity) || ((velocity.x * t_vector.x) < 0)) {
velocity.x = velocity.x + ((t_vector.x * dt) * xMult);
}
if ((Math.abs(velocity.y) < maxVelocity) || ((velocity.y * t_vector.y) < 0)) {
velocity.y = velocity.y + ((t_vector.y * dt) * yMult);
}
if ((Math.abs(velocity.z) < maxVelocity) || ((velocity.z * t_vector.z) < 0)) {
velocity.z = velocity.z + ((t_vector.z * dt) * zMult);
}
}
function magnitudeToVector(t_magnitude, t_angle) {
var _local2;
var _local1;
var _local3 = t_angle * (Math.PI/180);
_local2 = t_magnitude * Math.cos(_local3);
_local2 = Math.round(_local2 * 100) / 100;
_local1 = t_magnitude * Math.sin(_local3);
_local1 = Math.round(_local1 * 100) / 100;
return(new smashing.Point3D(_local2, _local1, 0));
}
function getDrawType() {
return(((HAS_SPECIAL_DEPTH == true) ? ((DRAWTYPE + "_") + specialDepth) : (DRAWTYPE)));
}
function getIsAnimating() {
return(__isAnimating);
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
var __USE_ACTUAL_DIMENSIONS = false;
var __USE_DIMENSIONS_AS_HD = false;
var HAS_SPECIAL_DEPTH = false;
var IS_FRIENDLY = true;
var __IDLE_ANIMATION = "idle";
var __DEATH_ANIMATION = "die";
var __MAX_VELOCITY = 300;
var __USES_VELOCITY = false;
}
Symbol 1564 MovieClip [__Packages.nick.eltigre.mcm.ents.Humanoid] Frame 0
class nick.eltigre.mcm.ents.Humanoid extends nick.eltigre.mcm.ents.Entity
{
var __footSource, __footLine, x, y, moveVector, __dt, updateDraw, __onscreen, doRender, __currentSurface, __currentPlatform, __surfaceVelocity, __hdresult, velocity, hdReg;
function Humanoid (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__footSource = new smashing.Point3D(0, 0, 0);
__footLine = new smashing.rampage.Line(new smashing.Point3D(__footSource.x + x, __footSource.y + y, 0), new smashing.Point3D(__footSource.x + x, __footSource.y + y, 0), "foot");
moveVector = new smashing.Point3D(0, 0, 0);
}
function update(dt) {
__dt = dt;
}
function move() {
x = x + moveVector.x;
y = y + moveVector.y;
updateSourceLines();
updateDraw();
if (__onscreen) {
doRender = true;
} else {
doRender = false;
}
}
function updateSourceLines() {
__footLine = new smashing.rampage.Line(new smashing.Point3D(__footSource.x + x, __footSource.y + y, 0), __footLine.p1, "foot");
}
function updateCollisionLines() {
__footLine.changeEndPoint(new smashing.Point3D(__footLine.p0.x + moveVector.x, __footLine.p0.y + 20, 0));
}
function requestUpdateFromSurface() {
__currentSurface.requestEntityUpdate();
}
function onUpdateFromSurface(pTransformX, pTransformY, pAbsolute) {
x = x + pTransformX;
y = y + pTransformY;
updateSourceLines();
}
function runPlatformHD(pPlatform) {
if (pPlatform == __currentPlatform) {
updateForPlatform();
}
}
function updateForPlatform() {
calculateSurfaceVelocity();
moveVector = new smashing.Point3D(__surfaceVelocity.x * __dt, __surfaceVelocity.y * __dt, 0);
updateCollisionLines();
__hdresult = runFootHDAgainstPlatform(__currentPlatform);
if (__hdresult.result == false) {
fallOffSurface();
return(undefined);
}
}
function fallOffSurface() {
__currentSurface.severEntityConnection();
}
function landOnSurface(pPlatform, pSurface) {
__currentPlatform = pPlatform;
__currentSurface = pSurface;
__currentSurface.openEntityConnection(this);
}
function tradeSurfaces() {
__currentSurface.severEntityConnection();
__currentPlatform = __hdresult.platform;
__currentSurface = __hdresult.surface;
__currentSurface.openEntityConnection(this);
collideWithSurface(__hdresult);
}
function snapToSurface() {
if (x < __currentSurface.p0.x) {
x = __currentSurface.p0.x + 1;
} else if (x > __currentSurface.p1.x) {
x = __currentSurface.p1.x - 1;
}
y = __currentSurface.getSegmentIntersection(new smashing.rampage.Line(new smashing.Point3D(x, __currentSurface.center.y - 10000, 0), new smashing.Point3D(x, __currentSurface.center.y + 10000, 0))).y + __currentSurface.faceNormal.y;
}
function collideWithSurface(pData) {
x = pData.collisionPoint.x + pData.surface.faceNormal.x;
y = pData.collisionPoint.y + pData.surface.faceNormal.y;
}
function calculateSurfaceVelocity() {
if (velocity.x == 0) {
__surfaceVelocity = new smashing.Point3D(0, 0, 0);
} else {
__surfaceVelocity = __currentSurface.vector.copy();
__surfaceVelocity.__set__length(velocity.x);
}
}
function runFootHDAgainstPlatform(pPlatform) {
return(pPlatform.testLinesAgainstSurfaces([__footLine]));
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
var __USES_VELOCITY = true;
}
Symbol 1565 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.Platform] Frame 0
class nick.eltigre.mcm.ents.platforms.Platform extends nick.eltigre.mcm.ents.Entity
{
var platWidth, platHeight, platHalfWidth, platHalfHeight, baseWidth, baseHeight, isSpecial, isEnd, isEvent, eventID, expanseID, expanseFlag, isSky, __surfaces, __neverTouched, __flaggedForRemoval, __debugDepth, __i, updateDraw, __onscreen, doRender, __hdline, __hdc, __hdresult, __widthRatio, mc, isDrawn, doRemove;
function Platform (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
if (pData.width == undefined) {
pData.width = 80;
}
platWidth = pData.width;
if (pData.height == undefined) {
pData.height = 1;
}
platHeight = pData.height;
platHalfWidth = platWidth / 2;
platHalfHeight = platHeight / 2;
baseWidth = platWidth;
baseHeight = ((platHeight == 1) ? 100 : (platHeight));
if (pData.special == true) {
isSpecial = true;
} else {
isSpecial = false;
}
if (pData.end == true) {
isEnd = true;
isSpecial = true;
} else {
isEnd = false;
}
if (pData.event == undefined) {
isEvent = false;
eventID = "";
} else {
isEvent = true;
eventID = pData.event;
}
expanseID = pData.id;
if (pData.flag == undefined) {
expanseFlag = "";
} else {
expanseFlag = pData.flag;
}
if (pData.sky == true) {
isSky = true;
} else {
isSky = false;
baseHeight = 40;
}
__surfaces = [];
generateSurfaces();
__neverTouched = true;
__flaggedForRemoval = false;
}
function debugDrawSurfaces() {
if (__debugDepth == undefined) {
__debugDepth = _root.getNextHighestDepth() + 10000;
}
var _local3 = _root.createEmptyMovieClip("surfaces" + __debugDepth, __debugDepth);
_local3.lineStyle(2, 16777215);
__i = __surfaces.length;
while (__i--) {
_local3.moveTo(__surfaces[__i].p0.x, __surfaces[__i].p0.y);
_local3.lineTo(__surfaces[__i].p1.x, __surfaces[__i].p1.y);
}
}
function generateSurfaces() {
if (__surfaces.length > 0) {
clearSurfaces();
}
}
function update() {
updateDraw();
if (__onscreen) {
doRender = true;
} else {
doRender = false;
}
}
function addSurface(pLeft, pRight, pID) {
__surfaces.push(new nick.eltigre.mcm.Surface(pLeft, pRight, pID));
}
function clearSurfaces() {
__surfaces = [];
}
function testLinesAgainstSurfaces(pLines) {
__i = pLines.length;
while (__i--) {
__hdline = pLines[__i];
__hdc = __surfaces.length;
while (__hdc--) {
if (__surfaces[__hdc].dotFaceNormal(__hdline) < 0) {
__hdresult = __surfaces[__hdc].getSegmentIntersection(__hdline);
if (__hdresult != null) {
return(new nick.eltigre.mcm.ents.platforms.PlatformCollisionResult({result:true, platform:this, surface:__surfaces[__hdc], point:__hdresult, guiltyLine:__hdline}));
}
}
}
}
return(new nick.eltigre.mcm.ents.platforms.PlatformCollisionResult({result:false}));
}
function rotateSurfaces(pAngle, pRegistrationPoint) {
__i = __surfaces.length;
while (__i--) {
__surfaces[__i].rotateTo(pAngle, pRegistrationPoint);
}
}
function translateSurfaces(pX, pY, pRegistrationPoint) {
__i = __surfaces.length;
while (__i--) {
__surfaces[__i].translateTo(pX, pY, pRegistrationPoint);
}
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
__widthRatio = (platWidth * 0.95) / mc._width;
mc._xscale = __widthRatio * 100;
mc.cacheAsBitmap = __CACHE_AS_BITMAP;
}
function flagForRemoval() {
if (isDrawn) {
__flaggedForRemoval = true;
} else {
doRemove = true;
}
onLockTouch();
}
function getSurfaceByID(pID) {
var _local2 = __surfaces.length;
while (_local2--) {
if (__surfaces[_local2].id == pID) {
return(__surfaces[_local2]);
}
}
return(null);
}
function onErase() {
super.onErase();
if (__flaggedForRemoval || (isSky)) {
clearSurfaces();
doRemove = true;
}
}
function onPlayerTouch() {
if (isSpecial && (__neverTouched)) {
smashing.rampage.Messenger.sendMessage("world", "onPlayerTouchSpecialPlatform", {id:expanseID, platform:this});
__neverTouched = false;
} else if (isEvent && (__neverTouched)) {
smashing.rampage.Messenger.sendMessage("world", "onPlayerTouchEventPlatform", {id:eventID, platform:this});
__neverTouched = false;
}
}
function onLockTouch() {
__neverTouched = false;
}
function getHasSurface() {
return(true);
}
var TYPE = "platform";
var DRAWTYPE = "platform";
var IS_HANGABLE = true;
var __CACHE_AS_BITMAP = true;
}
Symbol 1566 MovieClip [__Packages.smashing.rampage.Line] Frame 0
class smashing.rampage.Line
{
var p0, p1, id, vector, center, faceNormal, len, parametricDenomX, parametricDenomY, slope, bslope, yint, byint, det_inv, result, xseg, yseg;
function Line (t_p0, t_p1, t_id) {
p0 = t_p0;
p1 = t_p1;
calculateInfo();
if (t_id == undefined) {
id = "line";
} else {
id = t_id;
}
}
function calculateInfo() {
vector = new smashing.Point3D(p1.x - p0.x, p1.y - p0.y, p1.z - p0.z);
center = new smashing.Point3D(p0.x + (vector.x / 2), p0.y + (vector.y / 2), p0.z + (vector.z / 2));
faceNormal = vector.pseudoCross().normalize();
len = Math.sqrt(((vector.x * vector.x) + (vector.y * vector.y)) + (vector.z * vector.z));
parametricDenomX = p1.x - p0.x;
parametricDenomY = p1.y - p0.y;
slope = vector.y / vector.x;
if (vector.x == 0) {
slope = 100000 /* 0x0186A0 */;
}
}
function changeEndPoint(pPoint) {
p1.x = pPoint.x;
p1.y = pPoint.y;
calculateInfo();
}
function setLength(t_length) {
var _local2 = t_length / len;
vector.multiplyMe(_local2);
p1 = new smashing.Point3D(p0.x + vector.x, p0.y + vector.y, p0.z + vector.z);
center = new smashing.Point3D(p0.x + (vector.x / 2), p0.y + (vector.y / 2), p0.z + (vector.z / 2));
len = t_length;
parametricDenomX = p1.x - p0.x;
parametricDenomY = p1.y - p0.y;
}
function getFaceNormal() {
return(faceNormal);
}
function getIntersection(t_line) {
bslope = t_line.slope;
yint = p0.y - (slope * p0.x);
byint = t_line.p0.y - (bslope * t_line.p0.x);
det_inv = 1 / ((slope * -1) - (bslope * -1));
return(new smashing.Point3D(((-1 * byint) - (-1 * yint)) * det_inv, ((bslope * yint) - (slope * byint)) * det_inv, 0));
}
function getSegmentIntersection(t_line) {
bslope = t_line.slope;
yint = p0.y - (slope * p0.x);
byint = t_line.p0.y - (bslope * t_line.p0.x);
det_inv = 1 / ((slope * -1) - (bslope * -1));
result = new smashing.Point3D(((-1 * byint) - (-1 * yint)) * det_inv, ((bslope * yint) - (slope * byint)) * det_inv, 0);
if (testPointSegmentOverlap(result) && (t_line.testPointSegmentOverlap(result))) {
return(result);
}
return(null);
}
function testPointSegmentOverlap(testPoint) {
if (parametricDenomX == 0) {
xseg = 0;
} else {
xseg = (testPoint.x - p0.x) / parametricDenomX;
}
if (parametricDenomY == 0) {
yseg = 0;
} else {
yseg = (testPoint.y - p0.y) / parametricDenomY;
}
if ((((xseg >= 0) && (xseg <= 1)) && (yseg >= 0)) && (yseg <= 1)) {
return(true);
}
return(false);
}
function copy() {
return(new smashing.rampage.Line(new smashing.Point3D(p0.x, p0.y, 0), new smashing.Point3D(p1.x, p1.y, 0)));
}
function toString() {
return(((((((((id + " : ( ") + p0.x) + ", ") + p0.y) + " ) ~> ( ") + p1.x) + ", ") + p1.y) + " )");
}
function get length() {
return(len);
}
function set length(newLength) {
vector.__set__length(newLength);
p1.x = p0.x + vector.x;
p1.y = p0.y + vector.y;
calculateInfo();
//return(length);
}
}
Symbol 1567 MovieClip [__Packages.nick.eltigre.mcm.Surface] Frame 0
class nick.eltigre.mcm.Surface extends smashing.rampage.Line
{
var __doUpdateEntity, __entityTransformX, __entityTransformY, fp1, fp0, __initialAngle, angle, faceNormal, __ridingEntity, __entityTransformWasAbsolute, center, p0, p1, vector, rp0, rp1, getIntersection, id;
function Surface (pP0, pP1, pID) {
super(pP0, pP1, pID);
__doUpdateEntity = false;
__entityTransformX = (__entityTransformY = 0);
fp1 = new smashing.Point3D(0, 0, 0);
fp0 = new smashing.Point3D(0, 0, 0);
__initialAngle = angle;
}
function calculateInfo() {
super.calculateInfo();
calculateAngle();
}
function dotFaceNormal(pLine) {
return(faceNormal.dot(pLine.vector));
}
function calculateAngle() {
angle = 90 + (Math.atan2(faceNormal.y, faceNormal.x) * 57.2957795130823);
if (angle > 360) {
angle = angle - 360;
}
if (angle < 0) {
angle = angle + 360;
}
}
function requestEntityUpdate() {
if ((__entityTransformX == 0) && (__entityTransformY == 0)) {
return(undefined);
}
__ridingEntity.onUpdateFromSurface(__entityTransformX, __entityTransformY, __entityTransformWasAbsolute);
}
function openEntityConnection(pEntity) {
__doUpdateEntity = true;
__ridingEntity = pEntity;
}
function severEntityConnection() {
__doUpdateEntity = false;
}
function getEntityPressure() {
if (!__doUpdateEntity) {
return({result:false});
}
var _local3 = (new smashing.Point3D(__ridingEntity.x - center.x, __ridingEntity.y - center.y, 0)).__get__length();
var _local2 = ((__ridingEntity.x < center.x) ? true : false);
return({result:true, mag:_local3, left:_local2});
}
function translateTo(pX, pY, pRegistrationPoint) {
if (pRegistrationPoint == undefined) {
pRegistrationPoint = new smashing.Point3D(p0.x + ((p1.x - p0.x) / 2), p0.y + ((p1.y - p0.y) / 2), 0);
}
var _local3 = pX - pRegistrationPoint.x;
var _local2 = pY - pRegistrationPoint.y;
p0.x = p0.x + _local3;
p0.y = p0.y + _local2;
p1.x = p1.x + _local3;
p1.y = p1.y + _local2;
if (__doUpdateEntity) {
__entityTransformX = _local3;
__entityTransformY = _local2;
__entityTransformWasAbsolute = false;
}
center = new smashing.Point3D(p0.x + (vector.x / 2), p0.y + (vector.y / 2), p0.z + (vector.z / 2));
}
function translateBy(pX, pY) {
p0.x = p0.x + pX;
p0.y = p0.y + pY;
p1.x = p1.x + pX;
p1.y = p1.y + pY;
if (__doUpdateEntity) {
__entityTransformX = pX;
__entityTransformY = pY;
__entityTransformWasAbsolute = false;
}
center = new smashing.Point3D(p0.x + (vector.x / 2), p0.y + (vector.y / 2), p0.z + (vector.z / 2));
}
function rotateTo(pAngle, pRegistrationPoint) {
pAngle = pAngle + __initialAngle;
if (pAngle < 0) {
pAngle = pAngle + 360;
}
rotateBy(pAngle - angle, pRegistrationPoint);
}
function rotateBy(pAngle, pRegistrationPoint) {
if (pRegistrationPoint == undefined) {
pRegistrationPoint = new smashing.Point3D(p0.x + ((p1.x - p0.x) / 2), p0.y + ((p1.y - p0.y) / 2), 0);
}
var _local4 = Math.cos(pAngle * (Math.PI/180));
var _local3 = Math.sin(pAngle * (Math.PI/180));
rp0 = new smashing.Point3D(p0.x - pRegistrationPoint.x, p0.y - pRegistrationPoint.y, 0);
fp0.x = (rp0.x * _local4) - (rp0.y * _local3);
fp0.y = (rp0.x * _local3) + (rp0.y * _local4);
rp1 = new smashing.Point3D(p1.x - pRegistrationPoint.x, p1.y - pRegistrationPoint.y, 0);
fp1.x = (rp1.x * _local4) - (rp1.y * _local3);
fp1.y = (rp1.x * _local3) + (rp1.y * _local4);
p0.x = pRegistrationPoint.x + fp0.x;
p0.y = pRegistrationPoint.y + fp0.y;
p1.x = pRegistrationPoint.x + fp1.x;
p1.y = pRegistrationPoint.y + fp1.y;
calculateInfo();
if (__doUpdateEntity) {
var _local6 = new smashing.rampage.Line(new smashing.Point3D(__ridingEntity.x, __ridingEntity.y, 0), new smashing.Point3D(__ridingEntity.x, __ridingEntity.y + 250, 0));
var _local5 = getIntersection(_local6);
__entityTransformX = (_local5.x + faceNormal.x) - __ridingEntity.x;
__entityTransformY = (_local5.y + faceNormal.y) - __ridingEntity.y;
__entityTransformWasAbsolute = true;
}
}
function getIsWalkable() {
return((angle > 314) || (angle < 46));
}
function getIsSlidable() {
return((angle > 269) || (angle < 91));
}
function toString() {
return(((((((((("Surface " + id) + " ~ ( ") + p0.x) + ", ") + p0.y) + " ) ~> ( ") + p1.x) + ", ") + p1.y) + " )");
}
}
Symbol 1568 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.PlatformCollisionResult] Frame 0
class nick.eltigre.mcm.ents.platforms.PlatformCollisionResult
{
var result, platform, surface, collisionPoint, guiltyLine;
function PlatformCollisionResult (pData) {
result = pData.result;
platform = pData.platform;
surface = pData.surface;
collisionPoint = pData.point;
guiltyLine = pData.guiltyLine;
}
function toString() {
return(("PlatCollision : " + result) + (result ? (" - > " + collisionPoint) : ""));
}
}
Symbol 1569 MovieClip [__Packages.nick.eltigre.mcm.ents.Player] Frame 0
class nick.eltigre.mcm.ents.Player extends nick.eltigre.mcm.ents.Humanoid
{
var __leftSource, __rightSource, __headSource, __footSource, __leftLine, x, y, __rightLine, __headLine, __footLine, __gravity, __state, __isAttacking, __isAirborne, __isHanging, __isKnocked, __isDangerous, __doubleJumpAvailable, __projectileQueued, __facingDirectionLeft, __isHatless, __partner, assetID, __dt, __lastDir, __dirHeld, __jumpHeld, isInvincible, __invincibleTimer, __isRooted, __comboTimer, velocity, __jumpCharge, __doubleJumpCharge, __animation, moveVector, __currentSurface, requestUpdateFromSurface, __surfaceVelocity, __hdresult, runFootHDAgainstPlatform, __currentPlatform, tradeSurfaces, isAlive, __eventTimer, __projectileFrame, mc, __isAnimating, __combo, __attackDamage, __attackForce, __damageFrameMin, __damageFrameMax, hdWidth, __baseRegX, hdReg, snapToSurface, __DEATH_ANIMATION, endDie, __IDLE_ANIMATION;
function Player (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__leftSource = new smashing.Point3D(-15, -17, 0);
__rightSource = new smashing.Point3D(15, -17, 0);
__headSource = new smashing.Point3D(0, -40, 0);
__footSource = new smashing.Point3D(0, 0, 0);
__leftLine = new smashing.rampage.Line(new smashing.Point3D(__leftSource.x + x, __leftSource.y + y, 0), new smashing.Point3D(__leftSource.x + x, __leftSource.y + y, 0), "left");
__rightLine = new smashing.rampage.Line(new smashing.Point3D(__rightSource.x + x, __rightSource.y + y, 0), new smashing.Point3D(__rightSource.x + x, __rightSource.y + y, 0), "right");
__headLine = new smashing.rampage.Line(new smashing.Point3D(__headSource.x + x, __headSource.y + y, 0), new smashing.Point3D(__headSource.x + x, __headSource.y + y, 0), "head");
__footLine = new smashing.rampage.Line(new smashing.Point3D(__footSource.x + x, __footSource.y + y, 0), new smashing.Point3D(__footSource.x + x, __footSource.y + y, 0), "foot");
__gravity = pData.gravity;
__state = nick.eltigre.mcm.GameState.getInstance();
__isAttacking = false;
__isAirborne = true;
__isHanging = false;
__isKnocked = false;
__isDangerous = false;
__doubleJumpAvailable = false;
__projectileQueued = false;
__facingDirectionLeft = true;
__isHatless = false;
removeInvincible();
__partner = pData.partner;
if (__partner == 1) {
assetID = "__et_boots";
} else {
assetID = "__et_sombrero";
}
}
function update(dt) {
__dt = dt;
updateAnim();
__lastDir = __dirHeld;
__dirHeld = 0;
if (Key.isDown(37)) {
__dirHeld--;
} else if (Key.isDown(39)) {
__dirHeld++;
}
__jumpHeld = 0;
if (Key.isDown(38)) {
__jumpHeld = 1;
} else if (Key.isDown(40)) {
__jumpHeld = -1;
}
if (isInvincible) {
__invincibleTimer = __invincibleTimer - dt;
if (__invincibleTimer <= 0) {
removeInvincible();
}
}
if (__isKnocked) {
updateForKnockback();
} else if (__isHanging) {
updateForHanging();
} else if (__isAirborne) {
updateForAirborne();
} else {
if (__isRooted) {
__jumpHeld = 0;
__dirHeld = 0;
}
updateForGround();
}
if (__projectileQueued) {
updateProjectileQueue();
}
if (__comboTimer > 0) {
__comboTimer = __comboTimer - dt;
}
}
function updateForAirborne() {
if (__dirHeld < 0) {
velocity.x = velocity.x - (__AIR_ACCEL_RATE * __dt);
if (velocity.x < (-__AIR_MAX_SPEED)) {
velocity.x = -__AIR_MAX_SPEED;
}
} else if (__dirHeld > 0) {
velocity.x = velocity.x + (__AIR_ACCEL_RATE * __dt);
if (velocity.x > __AIR_MAX_SPEED) {
velocity.x = __AIR_MAX_SPEED;
}
} else if (velocity.x < 0) {
velocity.x = velocity.x + (__AIR_DECCEL_RATE * __dt);
if (velocity.x > 0) {
velocity.x = 0;
}
} else if (velocity.x > 0) {
velocity.x = velocity.x - (__AIR_DECCEL_RATE * __dt);
if (velocity.x < 0) {
velocity.x = 0;
}
}
if (__jumpHeld == 1) {
if (__doubleJumpAvailable) {
onDoubleJump();
} else if (__jumpCharge > 0) {
velocity.y = velocity.y - ((__JUMP_ACCELERATION * __jumpCharge) * __dt);
__jumpCharge = __jumpCharge - (__dt * __JUMP_CHARGE_DECAY);
}
} else if (__doubleJumpCharge > 0) {
__doubleJumpCharge = 0;
__doubleJumpAvailable = true;
}
if ((velocity.y > 0) && (__animation == "jump1")) {
animateLoop("jump1down");
}
if (Math.abs(velocity.y) < 70) {
velocity.y = velocity.y + ((__gravity.y * __dt) * 3.3);
} else if (velocity.y < -180) {
velocity.y = velocity.y + ((__gravity.y * __dt) * 0.33);
} else if (velocity.y < 0) {
velocity.y = velocity.y + ((__gravity.y * __dt) * 1.45);
} else {
velocity.y = velocity.y + (__gravity.y * __dt);
}
moveVector = new smashing.Point3D(velocity.x * __dt, velocity.y * __dt, 0);
updateCollisionLines();
}
function updateForGround() {
if (__jumpHeld == 1) {
onJump();
moveVector = new smashing.Point3D(velocity.x * __dt, velocity.y * __dt, 0);
updateCollisionLines();
return(undefined);
}
if (__dirHeld < 0) {
velocity.x = velocity.x - (__GROUND_ACCEL_RATE * __dt);
if (velocity.x < (-__GROUND_MAX_SPEED)) {
velocity.x = -__GROUND_MAX_SPEED;
}
if (velocity.x > 0) {
animateLoop("slide");
} else {
animateLoop("run");
}
} else if (__dirHeld > 0) {
velocity.x = velocity.x + (__GROUND_ACCEL_RATE * __dt);
if (velocity.x > __GROUND_MAX_SPEED) {
velocity.x = __GROUND_MAX_SPEED;
}
if (velocity.x < 0) {
animateLoop("slide");
} else {
animateLoop("run");
}
} else {
if (velocity.x < 0) {
velocity.x = velocity.x + (__GROUND_DECCEL_RATE * __dt);
if (velocity.x > 0) {
velocity.x = 0;
}
} else if (velocity.x > 0) {
velocity.x = velocity.x - (__GROUND_DECCEL_RATE * __dt);
if (velocity.x < 0) {
velocity.x = 0;
}
}
if (velocity.x != 0) {
animateLoop("slide");
} else if (__animation == "slide") {
animateLoop("slideOut");
} else {
animateLoop("idle");
}
}
}
function updateForPlatform() {
if (!__currentSurface.getIsWalkable()) {
fallOffSurface();
return(undefined);
}
requestUpdateFromSurface();
calculateSurfaceVelocity();
moveVector = new smashing.Point3D(__surfaceVelocity.x * __dt, __surfaceVelocity.y * __dt, 0);
updateCollisionLines();
__hdresult = runFootHDAgainstPlatform(__currentPlatform);
if (__hdresult.result == false) {
fallOffSurface();
return(undefined);
}
if (__hdresult.surface != __currentSurface) {
tradeSurfaces();
calculateSurfaceVelocity();
moveVector = new smashing.Point3D(__surfaceVelocity.x * __dt, __surfaceVelocity.y * __dt, 0);
updateCollisionLines();
}
}
function updateForHanging() {
if ((!__currentPlatform.isDrawn) || (!__currentPlatform.getHasSurface())) {
onReleaseHang();
return(undefined);
}
if (__jumpHeld > 0) {
animate("pullUp");
} else if ((__jumpHeld < 0) && (__animation != "pullUp")) {
onReleaseHang();
}
}
function updateForKnockback() {
if ((velocity.y > 0) && (__animation == "hit")) {
if (isAlive) {
animateLoop("jump1down");
}
onKnockbackComplete();
}
velocity.y = velocity.y + (__gravity.y * __dt);
moveVector = new smashing.Point3D(velocity.x * __dt, velocity.y * __dt, 0);
updateCollisionLines();
}
function onUpdateFromSurface(pTransformX, pTransformY, pAbsolute) {
super.onUpdateFromSurface(pTransformX, pTransformY);
if (__isHanging) {
if (pAbsolute) {
if (pTransformX != 0) {
x = x - __headSource.x;
}
if (pTransformY != 0) {
y = y - __headSource.y;
}
}
if (x > __currentSurface.p1.x) {
x = __currentSurface.p1.x;
}
if (x < __currentSurface.p0.x) {
x = __currentSurface.p0.x;
}
}
}
function updateCollisionLines() {
__leftLine.changeEndPoint(new smashing.Point3D(__leftLine.p0.x + moveVector.x, __leftLine.p0.y + moveVector.y, 0));
__rightLine.changeEndPoint(new smashing.Point3D(__rightLine.p0.x + moveVector.x, __rightLine.p0.y + moveVector.y, 0));
__headLine.changeEndPoint(new smashing.Point3D(__headLine.p0.x + moveVector.x, __headLine.p0.y + moveVector.y, 0));
if (__isAirborne) {
__footLine.changeEndPoint(new smashing.Point3D(__footLine.p0.x + moveVector.x, __footLine.p0.y + moveVector.y, 0));
} else {
__footLine.changeEndPoint(new smashing.Point3D(__footLine.p0.x + moveVector.x, __footLine.p0.y + 20, 0));
}
}
function updateSourceLines() {
__leftLine = new smashing.rampage.Line(new smashing.Point3D(__leftSource.x + x, __leftSource.y + y, 0), __leftLine.p1, "left");
__rightLine = new smashing.rampage.Line(new smashing.Point3D(__rightSource.x + x, __rightSource.y + y, 0), __rightLine.p1, "right");
__headLine = new smashing.rampage.Line(new smashing.Point3D(__headSource.x + x, __headSource.y + y, 0), __headLine.p1, "head");
__footLine = new smashing.rampage.Line(new smashing.Point3D(__footSource.x + x, __footSource.y + y, 0), __footLine.p1, "foot");
}
function calculateSurfaceVelocity() {
if (velocity.x == 0) {
__surfaceVelocity = new smashing.Point3D(0, 0, 0);
} else {
__surfaceVelocity = __currentSurface.vector.copy();
__surfaceVelocity.__set__length(velocity.x);
}
}
function onBeginEvent(pEvent) {
if ((pEvent == "intro") || (pEvent == "skydive")) {
__eventTimer = 1;
__jumpHeld = 0;
} else if (pEvent == "erupt") {
__jumpHeld = 0;
velocity.x = 0;
} else if (pEvent == "oso") {
__eventTimer = 0.6;
}
}
function updateForSkydive(dt, pStep) {
__dt = dt;
updateAnim();
__lastDir = __dirHeld;
__dirHeld = 0;
if (!__isAirborne) {
__eventTimer = __eventTimer - dt;
if (__eventTimer <= 0) {
smashing.rampage.Messenger.sendMessage("world", "onCompleteEvent");
__eventTimer = 1;
}
}
if (__isHanging) {
updateForHanging();
} else if (__isAirborne) {
updateForAirborne();
} else {
updateForGround();
}
}
function updateForIntro(dt, pStep, pTarget) {
__dt = dt;
updateAnim();
__lastDir = __dirHeld;
__dirHeld = 0;
if (pStep == 1) {
if (!__isAirborne) {
__eventTimer = __eventTimer - dt;
if (__eventTimer <= 0) {
smashing.rampage.Messenger.sendMessage("world", "onAdvanceEvent");
__eventTimer = 1;
}
}
} else if (pStep == 2) {
if (x > (pTarget.x + 52)) {
__dirHeld = -1;
}
} else if (pStep == 3) {
if (x < (pTarget.x - 15)) {
x = pTarget.x - 15;
velocity.x = 0;
}
__eventTimer = __eventTimer - dt;
if (__eventTimer <= 0) {
smashing.rampage.Messenger.sendMessage("world", "onAdvanceEvent");
__eventTimer = 1;
}
} else {
__dirHeld = 1;
smashing.rampage.Messenger.sendMessage("world", "onCompleteEvent");
}
if (__isHanging) {
updateForHanging();
} else if (__isAirborne) {
updateForAirborne();
} else {
updateForGround();
}
}
function updateForOso(dt, pStep) {
__dt = dt;
updateAnim();
__lastDir = __dirHeld;
__dirHeld = 0;
__jumpHeld = 0;
if (pStep == 1) {
if (__isHanging) {
__jumpHeld = 1;
} else if (!__isAirborne) {
__eventTimer = __eventTimer - dt;
if (__eventTimer <= 0) {
smashing.rampage.Messenger.sendMessage("world", "onAdvanceEvent");
__eventTimer = 1;
}
}
} else if (pStep == 2) {
if (x < (__currentSurface.center.x + 46)) {
__dirHeld = 1;
} else {
smashing.rampage.Messenger.sendMessage("world", "onAdvanceEvent");
velocity.x = 0;
__jumpHeld = 1;
}
} else if (pStep == 3) {
if (x < (__currentSurface.center.x - 130)) {
x = __currentSurface.center.x - 130;
velocity.x = 0;
} else {
__dirHeld = -1;
}
if (!__isAirborne) {
smashing.rampage.Messenger.sendMessage("world", "onAdvanceEvent");
__eventTimer = 0.4;
}
} else {
__dirHeld = 1;
__eventTimer = __eventTimer - dt;
if (__eventTimer < 0) {
smashing.rampage.Messenger.sendMessage("world", "onCompleteEvent");
}
}
if (__isHanging) {
updateForHanging();
} else if (__isAirborne) {
updateForAirborne();
} else {
updateForGround();
}
}
function updateForErupt(dt, pStep) {
__dt = dt;
updateAnim();
__dirHeld = 0;
__jumpHeld = 0;
if (__isHanging) {
__jumpHeld = 1;
updateForHanging();
} else if (__isAirborne) {
updateForAirborne();
} else {
updateForGround();
}
}
function updateProjectileQueue() {
if (mc.anim._currentFrame >= __projectileFrame) {
if (__partner == 1) {
smashing.rampage.Messenger.sendMessage("world", "firePlayerProjectile", {type:"kick", x:x, y:y, left:__facingDirectionLeft});
} else {
smashing.rampage.Messenger.sendMessage("world", "firePlayerProjectile", {type:"sombrero", x:x, y:y, left:__facingDirectionLeft, player:this});
__isHatless = true;
if (!__isAirborne) {
animateLoop("wait");
}
}
__projectileQueued = false;
}
}
function onAttack() {
if (__isHanging || (__isKnocked)) {
return(undefined);
}
if (__isAnimating || (__isAttacking)) {
if (__animation != "jumpLand") {
return(undefined);
}
}
if (__isAirborne) {
__combo = 0;
animate("jumpAttack");
__attackDamage = __STANDARD_ATTACK_DAMAGE;
__attackForce = __STANDARD_ATTACK_FORCE;
__projectileQueued = true;
if (__partner == 1) {
__damageFrameMin = 1;
__damageFrameMax = 8;
__projectileFrame = 5;
} else {
__damageFrameMin = 0;
__damageFrameMax = 0;
__projectileFrame = 2;
}
} else {
__attackDamage = __STANDARD_ATTACK_DAMAGE;
__attackForce = __STANDARD_ATTACK_FORCE;
if (__comboTimer > 0) {
__combo++;
animate("combo" + __combo);
if (__combo == 1) {
__damageFrameMin = 1;
__damageFrameMax = 4;
__projectileQueued = false;
} else {
onRoot();
if (__partner == 1) {
__damageFrameMin = 2;
__damageFrameMax = 7;
__attackDamage = __STRONG_ATTACK_DAMAGE;
__attackForce = __STRONG_ATTACK_FORCE;
smashing.rampage.Messenger.sendMessage("world", "generateEffect", {type:"land", x:x, y:y});
__projectileQueued = false;
} else {
__attackDamage = 1;
__attackForce = __STANDARD_ATTACK_FORCE;
__damageFrameMin = 1;
__damageFrameMax = 2;
__projectileQueued = true;
__projectileFrame = 2;
}
}
} else {
__combo = 0;
animate("attack");
__damageFrameMin = 1;
__damageFrameMax = 4;
__projectileQueued = false;
}
}
if (__damageFrameMin > 1) {
__isDangerous = false;
} else {
onStartDangerous();
}
__isAttacking = true;
}
function cancelAttack() {
__isAttacking = false;
__isHatless = false;
onUnroot();
onEndDangerous();
__projectileQueued = false;
}
function onStartDangerous() {
__isDangerous = true;
hdWidth = (__DEF_HD_WIDTH / 2) + __ATTACK_WIDTH;
hdReg.x = __baseRegX + (__facingDirectionLeft ? (-__ATTACK_WIDTH) : (__ATTACK_WIDTH));
}
function onEndDangerous() {
__isDangerous = false;
hdWidth = __DEF_HD_WIDTH / 2;
hdReg.x = __baseRegX;
}
function dealDamage() {
onEndDangerous();
__damageFrameMin = -1;
__damageFrameMax = -1;
if (!__isAirborne) {
velocity.x = 0;
}
}
function getIsDangerous() {
if (!__isAttacking) {
return(false);
}
return(__isDangerous);
}
function getIsDangerousToEntity(pEnt) {
if (!__isAttacking) {
return(false);
}
if ((__facingDirectionLeft && (pEnt.x < x)) || ((!__facingDirectionLeft) && (pEnt.x > x))) {
return(__isDangerous);
}
return(false);
}
function getIsKnocked() {
return(__isKnocked);
}
function getCurrentAttackDamage() {
return(__attackDamage);
}
function getCurrentAttackForce() {
return(__attackForce);
}
function setComboTimer() {
if (__combo == 2) {
__comboTimer = 0;
onUnroot();
} else {
__comboTimer = __COMBO_SPEED;
}
}
function hitReactHostile(pSource) {
switch (pSource.TYPE) {
case "lava" :
takeLavaDamage(pSource);
break;
default :
takeMonsterDamage(pSource);
}
}
function hitReactDeath(pSource) {
hitReactHostile(pSource);
isAlive = false;
}
function hitReactFriendly(pSource) {
switch (pSource.TYPE) {
case "coin" :
break;
case "gem" :
}
}
function takeDamage() {
cancelAttack();
onEndDangerous();
animateLoop("hit");
setInvincible();
}
function takeMonsterDamage(pSource) {
takeDamage();
onKnockback((((x - pSource.x) < 0) ? true : false));
}
function takeLavaDamage(pLava) {
y = pLava.top;
moveVector.y = 0;
onTorched();
takeDamage();
}
function setInvincible() {
isInvincible = true;
__invincibleTimer = __INVINCIBLE_DURATION;
}
function removeInvincible() {
isInvincible = false;
__invincibleTimer = 0;
}
function onLand() {
__isAirborne = false;
if (__isHatless) {
onRoot();
__isAttacking = false;
animateLoop("wait");
__isAttacking = true;
} else {
cancelAttack();
animate("jumpLand");
}
velocity.y = 0;
smashing.rampage.Messenger.sendMessage("world", "generateEffect", {type:"land", x:x, y:y});
}
function onHang() {
__isAirborne = false;
__isHanging = true;
cancelAttack();
animateLoop("hang");
velocity.y = 0;
velocity.x = 0;
}
function onSlide() {
animateLoop("jump1Down");
}
function onReleaseHang() {
fallOffSurface();
y = y + 5;
updateCollisionLines();
}
function onJump() {
if (__isAttacking || (__isRooted)) {
return(undefined);
}
__isAirborne = true;
animateLoop("jump1");
__currentSurface.severEntityConnection();
velocity.y = __JUMP_LAUNCH;
__jumpCharge = 1;
chargeDoubleJump();
smashing.rampage.Messenger.sendMessage("world", "generateEffect", {type:"jump", x:x, y:y});
}
function onDoubleJump() {
if (__isAttacking && (!__isHatless)) {
cancelAttack();
}
animateLoop("jumpDouble");
velocity.y = __JUMP_LAUNCH;
nick.eltigre.mcm.Sounds.getInstance().p("spin");
__jumpCharge = 0;
__doubleJumpCharge = 0;
__doubleJumpAvailable = false;
smashing.rampage.Messenger.sendMessage("world", "generateEffect", {type:"doublejump", x:x, y:y});
}
function onKnockback(pLeft) {
__isKnocked = true;
__isAirborne = true;
__isHanging = false;
cancelAttack();
velocity.y = __KNOCKBACK_LAUNCH;
chargeDoubleJump();
if (pLeft) {
velocity.x = -__KNOCKBACK_MAX_SPEED;
} else {
velocity.x = __KNOCKBACK_MAX_SPEED;
}
}
function onTorched() {
__isKnocked = true;
__isAirborne = true;
__isHanging = false;
cancelAttack();
velocity.y = __KNOCKBACK_LAUNCH * 5;
chargeDoubleJump();
velocity.x = 0;
}
function onKnockbackComplete() {
__isKnocked = false;
}
function onPullUp() {
animateLoop("idle");
snapToSurface();
__isHanging = false;
}
function onRoot() {
__isRooted = true;
}
function onUnroot() {
__isRooted = false;
}
function chargeDoubleJump() {
__doubleJumpCharge = 1;
__doubleJumpAvailable = false;
}
function runPlatformHD(pPlatform) {
if (__isAirborne) {
__hdresult = runFullHDAgainstPlatform(pPlatform);
if (__hdresult.result) {
runAirbornePlatformReaction(__hdresult);
}
return(undefined);
}
if (pPlatform == __currentPlatform) {
if (__isHanging) {
if (__currentSurface.getIsWalkable() == true) {
requestUpdateFromSurface();
} else {
onReleaseHang();
}
} else {
updateForPlatform();
}
return(undefined);
}
}
function runAirbornePlatformReaction(pData) {
collideWithSurface(pData);
if (__isKnocked) {
onKnockbackComplete();
}
if (pData.surface.getIsWalkable()) {
if (pData.guiltyLine.id == "foot") {
landOnSurface(pData);
return(undefined);
}
if ((pData.guiltyLine.id == "head") && (pData.platform.IS_HANGABLE)) {
grabOnSurface(pData);
return(undefined);
}
} else if (pData.guiltyLine.id != "head") {
slideAlongSurface(pData);
return(undefined);
}
if (!pData.surface.getIsSlidable()) {
velocity.y = 0;
__jumpCharge = 0;
}
}
function fallOffSurface() {
super.fallOffSurface();
__isAirborne = true;
__isHanging = false;
chargeDoubleJump();
animateLoop("jump1down");
velocity.y = velocity.y + 20;
}
function landOnSurface(pData) {
super.landOnSurface(pData.platform, pData.surface);
__currentPlatform.onPlayerTouch();
moveVector = new smashing.Point3D(0, 0, 0);
onLand();
}
function grabOnSurface(pData) {
__currentPlatform = pData.platform;
__currentSurface = pData.surface;
__currentPlatform.onPlayerTouch();
__currentSurface.openEntityConnection(this);
moveVector = new smashing.Point3D(0, 0, 0);
onHang();
}
function slideAlongSurface(pData) {
moveVector = pData.surface.vector.copy();
if (pData.surface.vector.y < 0) {
moveVector.reverseMe();
}
velocity.x = 0;
if (velocity.y < 0) {
velocity.y = ((velocity.y = velocity.y * -1)) / 3;
}
moveVector.__set__length(velocity.__get__length() * __dt);
if (pData.surface.getIsSlidable()) {
onSlide();
}
}
function collideWithSurface(pData) {
super.collideWithSurface(pData);
if (pData.guiltyLine.id == "left") {
x = x - __leftSource.x;
y = y - __leftSource.y;
} else if (pData.guiltyLine.id == "right") {
x = x - __rightSource.x;
y = y - __rightSource.y;
} else if (pData.guiltyLine.id == "head") {
x = x - __headSource.x;
y = y - __headSource.y;
}
}
function runFullHDAgainstPlatform(pPlatform) {
return(pPlatform.testLinesAgainstSurfaces([__headLine, __rightLine, __leftLine, __footLine]));
}
function runHeadHDAgainstPlatform(pPlatform) {
return(pPlatform.testLinesAgainstSurfaces([__headLine]));
}
function animate(frame) {
if (velocity.x < 0) {
__facingDirectionLeft = true;
mc._xscale = 100;
} else if (velocity.x > 0) {
__facingDirectionLeft = false;
mc._xscale = -100;
}
if (frame == __animation) {
return(undefined);
}
super.animate(frame);
}
function animateLoop(frame) {
if (velocity.x < 0) {
__facingDirectionLeft = true;
mc._xscale = 100;
} else if (velocity.x > 0) {
__facingDirectionLeft = false;
mc._xscale = -100;
}
if ((frame == __animation) || (__isAttacking)) {
return(undefined);
}
super.animateLoop(frame);
}
function onCatchHat() {
if (!__isHatless) {
return(undefined);
}
__isHatless = false;
if (__isAirborne) {
animate("catch");
} else {
animate("airCatch");
}
}
function updateAnim() {
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
switch (__animation) {
case __DEATH_ANIMATION :
endDie();
break;
case "pullUp" :
onPullUp();
break;
case "catch" :
case "airCatch" :
cancelAttack();
case "attack" :
case "combo1" :
case "combo2" :
__isAttacking = false;
setComboTimer();
if (__isAirborne) {
animateLoop("jump1down");
} else {
animateLoop(__IDLE_ANIMATION);
}
break;
case "jumpAttack" :
__isAttacking = false;
setComboTimer();
animateLoop("jump1Down");
break;
default :
animateLoop(__IDLE_ANIMATION);
}
}
}
if (__isAttacking) {
if (!__isDangerous) {
if ((mc.anim._currentFrame >= __damageFrameMin) && (mc.anim._currentFrame <= __damageFrameMax)) {
onStartDangerous();
}
} else if ((mc.anim._currentFrame < __damageFrameMin) || (mc.anim._currentFrame > __damageFrameMax)) {
onEndDangerous();
}
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -16;
__baseRegX = hdReg.x;
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
animateLoop("jump1down");
}
function getCurrentPlatform() {
return(__currentPlatform);
}
var TYPE = "player";
var DRAWTYPE = "player";
var __DEF_ASSET = "player_mc";
var __DEF_WIDTH = 52;
var __DEF_HEIGHT = 47;
var __DEF_HD_WIDTH = 30;
var __DEF_HD_HEIGHT = 40;
var CUSTOMDRAW = true;
var __GROUND_ACCEL_RATE = 600;
var __GROUND_DECCEL_RATE = 390;
var __GROUND_MAX_SPEED = 185;
var __AIR_ACCEL_RATE = 565;
var __AIR_DECCEL_RATE = 320;
var __AIR_MAX_SPEED = 180;
var __SLIDE_SPEED = 150;
var __ATTACK_WIDTH = 25;
var __KNOCKBACK_LAUNCH = -90;
var __KNOCKBACK_MAX_SPEED = 180;
var __JUMP_CHARGE_DECAY = 1.5;
var __JUMP_ACCELERATION = 50;
var __JUMP_LAUNCH = -205;
var __COMBO_SPEED = 0.75;
var __STANDARD_ATTACK_DAMAGE = 1;
var __STRONG_ATTACK_DAMAGE = 2;
var __STANDARD_ATTACK_FORCE = 220;
var __STRONG_ATTACK_FORCE = 350;
var __INVINCIBLE_DURATION = 1.5;
}
Symbol 1570 MovieClip [__Packages.smashing.sound.SoundEngine] Frame 0
class smashing.sound.SoundEngine
{
var __mc, o_sounds, o_groups, __a_soundQueue, __flag_muted, __flag_overwrite, __groupCount, __callbackPath, __callbackFunc;
function SoundEngine () {
}
function generateSounds(t_path, t_depth, t_overwrite) {
if (t_path == undefined) {
}
__mc = t_path.createEmptyMovieClip(__DEFAULTMCNAME, t_depth);
o_sounds = {};
o_groups = {};
__a_soundQueue = [];
__flag_muted = false;
if (t_overwrite == undefined) {
t_overwrite = false;
}
__flag_overwrite = t_overwrite;
__groupCount = 0;
createGroup(__DEFAULTGROUPNAME);
}
function setCallback(path, func) {
__callbackPath = path;
__callbackFunc = func;
}
function createGroup(t_name) {
__groupCount++;
var _local2 = __mc.createEmptyMovieClip(t_name, __groupCount);
_local2.soundObject = new Sound(_local2);
o_groups[t_name] = _local2;
}
function createSound(t_name, t_assetID, t_groupName, doCallback) {
var _local4;
if (((t_groupName == undefined) || (t_groupName == "")) || (t_groupName == null)) {
_local4 = o_groups[__DEFAULTGROUPNAME];
} else {
_local4 = o_groups[t_groupName];
}
if (_local4 != undefined) {
var _local2 = {};
_local2.soundEffect = new Sound(_local4);
_local2.soundEffect.attachSound(t_assetID);
if (doCallback == undefined) {
doCallback = false;
}
_local2.doCallback = doCallback;
o_sounds[t_name] = _local2;
}
}
function playSound(t_soundName, t_loops, t_queued) {
if (__flag_muted) {
return(undefined);
}
var _local2 = o_sounds[t_soundName];
if (_local2 != undefined) {
if (t_loops == undefined) {
t_loops = 1;
} else if (t_loops == 0) {
t_loops = 100000 /* 0x0186A0 */;
}
if (__flag_overwrite) {
_local2.soundEffect.stop();
}
if (t_queued == true) {
__a_soundQueue[0].doCallback = _local2.doCallback;
_local2.soundEffect.onSoundComplete = mx.utils.Delegate.create(this, onQueuedSoundComplete);
} else if (_local2.doCallback) {
_local2.soundEffect.owner = this;
_local2.soundEffect.myName = t_soundName;
_local2.soundEffect.onSoundComplete = function () {
this.owner.onCallbackSoundComplete(this.myName);
};
}
_local2.soundEffect.start(0, t_loops);
}
}
function stopSound(t_soundName) {
o_sounds[t_soundName].soundEffect.stop();
}
function stopAll() {
clearQueue();
stopAllSounds();
}
function changeVolume(t_vol, t_groupName) {
if (t_groupName == undefined) {
t_groupName = __DEFAULTGROUPNAME;
}
o_groups[t_groupName].soundObject.setVolume(t_vol);
}
function toggleSound() {
if (__flag_muted) {
soundOn();
} else {
soundOff();
}
return(!__flag_muted);
}
function soundOff() {
__flag_muted = true;
}
function soundOn() {
__flag_muted = false;
}
function callbackSound(t_soundName, t_loops, path, func) {
playSound(t_soundName, t_loops, false);
var _local2 = o_sounds[t_soundName];
_local2.soundEffect.cbpath = path;
_local2.soundEffect.cbfunc = func;
_local2.soundEffect.onSoundComplete = function () {
this.onSoundComplete = null;
this.cbpath[func]();
};
}
function onCallbackSoundComplete(name) {
__callbackPath[__callbackFunc](name);
}
function queueSound(t_soundName) {
__a_soundQueue.push({soundName:t_soundName, isPlaying:false, doCallback:false});
__playQueue();
}
function __playQueue() {
if (__a_soundQueue.length == 0) {
return(undefined);
}
if (!__a_soundQueue[0].isPlaying) {
playSound(__a_soundQueue[0].soundName, 1, true);
__a_soundQueue[0].isPlaying = true;
}
}
function onQueuedSoundComplete() {
if (__a_soundQueue[0].doCallback) {
onCallbackSoundComplete(__a_soundQueue[0].soundName);
}
__a_soundQueue.splice(0, 1);
__playQueue();
}
function clearQueue() {
__a_soundQueue = [__a_soundQueue[0]];
}
function get queueLength() {
return(__a_soundQueue.length);
}
function get isQueuePlaying() {
if (__a_soundQueue.length == 0) {
return(false);
}
return(true);
}
var __DEFAULTMCNAME = "soundEngine_MC";
var __DEFAULTGROUPNAME = "sound";
}
Symbol 1571 MovieClip [__Packages.mx.utils.Delegate] Frame 0
class mx.utils.Delegate extends Object
{
var func;
function Delegate (f) {
super();
func = f;
}
static function create(obj, func) {
var _local2 = function () {
var _local2 = arguments.callee.target;
var _local3 = arguments.callee.func;
return(_local3.apply(_local2, arguments));
};
_local2.target = obj;
_local2.func = func;
return(_local2);
}
function createDelegate(obj) {
return(create(obj, func));
}
}
Symbol 1572 MovieClip [__Packages.nick.eltigre.mcm.Sounds] Frame 0
class nick.eltigre.mcm.Sounds extends smashing.sound.SoundEngine
{
static var __instance;
var createGroup, createSound, changeVolume, __currentMusic, muteSound, queueSound, callbackSound, muteMusic, stopSound, __get__isQueuePlaying;
function Sounds () {
super();
}
static function init() {
__instance = new nick.eltigre.mcm.Sounds();
}
static function getInstance() {
return(__instance);
}
function generateSounds(path) {
super.generateSounds(path, __DEPTH, __DO_OVERWRITE);
createGroup("music");
createSound("menu", "el_tigre_loop01a.wav", "music");
createSound("gameplay", "el_tigre_loop03.wav", "music");
createSound("boss", "el_tigre_loop04.wav", "music");
createSound("sky", "el_tigre_loop02.wav", "music");
changeVolume(35, "music");
createSound("spin", "jump_spin.wav");
createSound("shake", "screen_shake.wav");
createSound("bonk", "SFX_ElTigre_Die");
createSound("nogem", "roach zap.wav");
__currentMusic = "";
}
function playSound(name, loops) {
if (muteSound == true) {
return(undefined);
}
super.playSound(name, loops);
}
function p(name) {
playSound(name, 1);
}
function q(name) {
queueSound(name);
}
function c(name, cbpath, cbfunc) {
callbackSound(name, 1, cbpath, cbfunc);
}
function playMusic(name) {
if (muteMusic) {
if (name != "undefined") {
__currentMusic = name;
}
return(undefined);
}
if (name == undefined) {
name = __currentMusic;
}
if ((__currentMusic != "") && (__currentMusic != undefined)) {
stopMusic();
}
__currentMusic = name;
playSound(__currentMusic, 0);
}
function stopMusic() {
stopSound(__currentMusic);
}
function playOptional(t_name) {
if (!__get__isQueuePlaying()) {
queueSound(t_name);
}
}
function toggleMusic() {
if (muteMusic) {
muteMusic = false;
playMusic();
} else {
muteMusic = true;
stopMusic();
}
}
var __DEPTH = 20;
var __DO_OVERWRITE = false;
}
Symbol 1573 MovieClip [__Packages.nick.eltigre.mcm.libraries.base.ExpanseLibrary] Frame 0
class nick.eltigre.mcm.libraries.base.ExpanseLibrary
{
var __expanses, __matchingExpanses, __i;
function ExpanseLibrary () {
__expanses = [];
}
function getExpanse(pType) {
__matchingExpanses = [];
var _local4 = 0;
__i = __expanses.length;
if (__i == 0) {
__i++;
}
while (__i--) {
if (__expanses[__i].containsType(pType)) {
__matchingExpanses.push(__expanses[__i]);
}
}
__i = Math.floor(Math.random() * __matchingExpanses.length);
if (__i == __matchingExpanses.length) {
__i = __matchingExpanses.length - 1;
}
var _local2 = __matchingExpanses[__i];
__i = __expanses.length;
while (__i--) {
if (__expanses[__i].ID == _local2.ID) {
__expanses.splice(__i, 1);
__i = 0;
}
}
_local2.generate();
return(_local2);
}
function getExpanseWithID(pID) {
__i = __expanses.length;
while (__i--) {
if (__expanses[__i].containsType(pID)) {
var _local2 = __expanses[__i];
_local2.generate();
return(_local2);
}
}
}
}
Symbol 1574 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Expanse] Frame 0
class nick.eltigre.mcm.levels.expanses.Expanse
{
var platforms, monsters, pickups, __i, TYPES, ID;
function Expanse () {
}
function generate() {
platforms = [];
monsters = [];
pickups = [];
}
function containsType(pType) {
__i = TYPES.length;
while (__i--) {
if (TYPES[__i] == pType) {
return(true);
}
}
return(false);
}
function addPlatform(pData) {
pData.id = ID;
platforms.push(pData);
}
function addMonster(pData) {
pData.id = ID;
monsters.push(pData);
}
function addPickup(pData) {
pData.id = ID;
pickups.push(pData);
}
var HAS_LAVA_BUBBLES = false;
var HAS_LAVA_GEYSERS = false;
}
Symbol 1575 MovieClip [__Packages.nick.eltigre.mcm.libraries.base.ConnectorLibrary] Frame 0
class nick.eltigre.mcm.libraries.base.ConnectorLibrary
{
var __connectors, __matchingConnectors, __i;
function ConnectorLibrary () {
__connectors = [];
}
function getConnector(pType) {
__matchingConnectors = [];
var _local4 = 0;
__i = __connectors.length;
if (__i == 0) {
__i++;
}
while (__i--) {
if (__connectors[__i].containsType(pType)) {
__matchingConnectors.push(__connectors[__i]);
}
}
__i = Math.floor(Math.random() * __matchingConnectors.length);
if (__i == __matchingConnectors.length) {
__i = __matchingConnectors.length - 1;
}
var _local3 = __matchingConnectors[__i];
_local3.generate();
return(_local3);
}
function getConnectorWithID(pID) {
__i = __connectors.length;
while (__i--) {
if (__connectors[__i].containsType(pID)) {
var _local2 = __connectors[__i];
_local2.generate();
return(_local2);
}
}
}
}
Symbol 1576 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.Connector] Frame 0
class nick.eltigre.mcm.levels.connectors.Connector
{
var platforms, monsters, pickups, __i, TYPES, ID;
function Connector () {
}
function generate() {
platforms = [];
monsters = [];
pickups = [];
}
function containsType(pType) {
__i = TYPES.length;
while (__i--) {
if (TYPES[__i] == pType) {
return(true);
}
}
return(false);
}
function addPlatform(pData) {
pData.id = ID;
pData.special = true;
platforms.push(pData);
}
function addMonster(pData) {
pData.id = ID;
monsters.push(pData);
}
function addPickup(pData) {
pData.id = ID;
pickups.push(pData);
}
}
Symbol 1577 MovieClip [__Packages.nick.eltigre.mcm.Scroller] Frame 0
class nick.eltigre.mcm.Scroller extends nick.eltigre.mcm.ents.Entity
{
var __halfWidth, __camera, __halfHeight, __width, __height, __dblwidth, __dblheight, __offx, __offy, __lastx, __lasty, __startx, __starty, __bgAsset, __isSky, updateDraw, mc, __bl, __br, __tl, __tr;
function Scroller (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__halfWidth = __camera.__get__sc().x;
__halfHeight = __camera.__get__sc().y;
__width = __halfWidth * 2;
__height = __halfHeight * 2;
__dblwidth = __width * 2;
__dblheight = __height * 2;
__offx = 0;
__offy = 0;
__lastx = __camera.x;
__lasty = __camera.y;
__startx = __camera.x;
__starty = __camera.y;
__bgAsset = pData.bg;
if (pData.sky == true) {
__isSky = true;
} else {
__isSky = false;
}
updateDraw();
}
function updateAndRender(dt) {
if (__isSky) {
__offx = __offx + ((__lastx - __camera.x) * 0.6);
__offy = __offy + (((__lasty - __camera.y) * 0.6) - (700 * dt));
__lastx = __camera.x;
__lasty = __camera.y;
} else {
__offx = (__startx - __camera.x) % __width;
__offy = (__starty - __camera.y) % __height;
}
if (__offx > 0) {
__offx = __offx - __width;
} else if (__offx < (-__width)) {
__offx = __offx + __width;
}
if (__offy > 0) {
__offy = __offy - __height;
} else if (__offy < (-__height)) {
__offy = __offy + __height;
}
__offx = Math.floor(__offx * 100) / 100;
__offy = Math.floor(__offy * 100) / 100;
mc._x = __halfWidth + __offx;
mc._y = __halfHeight + __offy;
}
function onDraw(tNewMC) {
super.onDraw(tNewMC);
__bl = mc.attachMovie(__bgAsset, "bl", 1);
__br = mc.attachMovie(__bgAsset, "br", 2);
__tl = mc.attachMovie(__bgAsset, "tl", 3);
__tr = mc.attachMovie(__bgAsset, "tr", 4);
__tl._x = -__halfWidth;
__tl._y = -__halfHeight;
__bl._x = -__halfWidth;
__bl._y = __halfHeight;
__tr._x = __halfWidth;
__tr._y = -__halfHeight;
__br._x = __halfWidth;
__br._y = __halfHeight;
mc.cacheAsBitmap = true;
}
var TYPE = "scroller";
var DRAWTYPE = "bg";
var __DEF_ASSET = "_empty";
var CUSTOMDRAW = true;
}
Symbol 1578 MovieClip [__Packages.nick.eltigre.mcm.libraries.base.EntityLibrary] Frame 0
class nick.eltigre.mcm.libraries.base.EntityLibrary
{
function EntityLibrary () {
}
static function createEntity(pType, pData) {
switch (pType) {
case "hulk" :
return(new nick.eltigre.mcm.ents.monsters.LavaHulk(pData));
case "lilflame" :
case "flame" :
return(new nick.eltigre.mcm.ents.monsters.LilFlame(pData));
case "bat" :
return(new nick.eltigre.mcm.ents.monsters.Bat(pData));
case "pukey" :
return(new nick.eltigre.mcm.ents.monsters.Pukey(pData));
case "bubble" :
return(new nick.eltigre.mcm.ents.monsters.Bubble(pData));
case "geyser" :
return(new nick.eltigre.mcm.ents.monsters.Geyser(pData));
case "coin" :
return(new nick.eltigre.mcm.ents.pickups.Coin(pData));
case "diamond" :
return(new nick.eltigre.mcm.ents.pickups.Diamond(pData));
case "burro" :
return(new nick.eltigre.mcm.ents.pickups.Burro(pData));
case "oso" :
return(new nick.eltigre.mcm.ents.monsters.Oso(pData));
case "rockpile" :
return(new nick.eltigre.mcm.ents.monsters.RockPile(pData));
case "osorock" :
return(new nick.eltigre.mcm.ents.monsters.OsoRock(pData));
case "deathrock" :
return(new nick.eltigre.mcm.ents.monsters.DeathRock(pData));
case "cuervo" :
return(new nick.eltigre.mcm.ents.monsters.Cuervo(pData));
case "cuervoshot" :
return(new nick.eltigre.mcm.ents.monsters.CuervoShot(pData));
}
}
static function createEffect(pType, pData) {
switch (pType) {
case "jump" :
pData.asset = "jump_dust";
return(new nick.eltigre.mcm.ents.Effect(pData));
case "land" :
pData.asset = "dust_land";
return(new nick.eltigre.mcm.ents.Effect(pData));
case "doublejump" :
pData.asset = "puff_ani";
return(new nick.eltigre.mcm.ents.Effect(pData));
case "coin" :
pData.asset = "coin_main";
return(new nick.eltigre.mcm.ents.GravityEffect(pData));
case "diamond" :
pData.asset = "diamond_main";
return(new nick.eltigre.mcm.ents.GravityEffect(pData));
case "gravity" :
return(new nick.eltigre.mcm.ents.GravityEffect(pData));
}
}
static function createProjectile(pType, pData) {
switch (pType) {
case "kick" :
return(new nick.eltigre.mcm.ents.projectiles.KickAttack(pData));
case "sombrero" :
return(new nick.eltigre.mcm.ents.projectiles.Sombrero(pData));
}
}
static function createScenery(pData) {
var _local2 = ["bg_detail_01", "bg_detail_02", "bg_detail_03", "bg_detail_04", "bg_detail_05"];
var _local1 = Math.floor(_local2.length * Math.random());
if (_local1 == _local2.length) {
_local1--;
}
return(new nick.eltigre.mcm.ents.Scenery({asset:_local2[_local1], x:pData.x, y:pData.y, id:pData.id}));
}
static function createPlayer(pData) {
return(new nick.eltigre.mcm.ents.Player(pData));
}
static function createLava(pData) {
return(new nick.eltigre.mcm.ents.Lava(pData));
}
static function createCeiling(pData) {
return(new nick.eltigre.mcm.ents.Ceiling(pData));
}
}
Symbol 1579 MovieClip [__Packages.nick.eltigre.mcm.ents.Monster] Frame 0
class nick.eltigre.mcm.ents.Monster extends nick.eltigre.mcm.ents.Humanoid
{
var __facingDirectionLeft, expanseID, platformFlag, health, __flaggedForRemoval, __isKnocked, y, x, landOnSurface, snapToSurface, startX, startY, __dt, velocity, moveVector, isDrawn, doRemove, __knockbackTimer, __animation, __isAnimating, mc, __DEATH_ANIMATION, __IDLE_ANIMATION, isAlive;
function Monster (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
if (pData.left == true) {
__facingDirectionLeft = true;
} else {
__facingDirectionLeft = false;
}
expanseID = pData.id;
if (pData.platform == undefined) {
platformFlag = "";
if (IS_PLATFORM_BOUND) {
}
} else {
platformFlag = pData.platform;
}
health = __MAX_HEALTH;
__flaggedForRemoval = false;
__isKnocked = false;
}
function takeDamage(pDamage, pForce, pSource) {
health = health - pDamage;
if (health <= 0) {
animate("die");
startDie();
} else {
animate("hit");
onKnockback(pForce, pSource);
}
}
function startDie() {
super.startDie();
nick.eltigre.mcm.GameState.getInstance().addMonsterScore(TYPE);
if (__DROPS_DIAMOND) {
smashing.rampage.Messenger.sendMessage("world", "spawnMonsterDiamond", {x:x, y:y + __DIAMOND_OFFSET_Y});
}
}
function linkToPlatform(pPlatform, pSurface) {
x = pPlatform.x;
landOnSurface(pPlatform, pSurface);
snapToSurface();
}
function adjustToExpanse(tx, ty) {
x = x + tx;
y = y + ty;
startX = startX + tx;
startY = startY + ty;
}
function update(dt, pPlayer) {
__dt = dt;
updateAnim();
if (__isKnocked) {
updateKnockback();
}
}
function fallOffSurface() {
if (__isKnocked) {
velocity.x = 0;
snapToSurface();
return(undefined);
}
snapToSurface();
moveVector.reverseMe();
moveVector.length = moveVector.length * 2;
onTurnAround();
}
function onTurnAround() {
__facingDirectionLeft = !__facingDirectionLeft;
}
function flagForRemoval() {
if (isDrawn) {
__flaggedForRemoval = true;
} else {
doRemove = true;
}
}
function updateKnockback() {
__knockbackTimer = __knockbackTimer - __dt;
if (velocity.x < 0) {
velocity.x = velocity.x + (__GROUND_DECCEL_RATE * __dt);
if (velocity.x > 0) {
velocity.x = 0;
}
} else if (velocity.x > 0) {
velocity.x = velocity.x - (__GROUND_DECCEL_RATE * __dt);
if (velocity.x < 0) {
velocity.x = 0;
}
} else if (__knockbackTimer < 0) {
onKnockbackComplete();
}
}
function onKnockback(pForce, pSource) {
__isKnocked = true;
if (x < pSource.x) {
velocity.x = -pForce;
if (__facingDirectionLeft) {
onTurnAround();
}
} else {
velocity.x = pForce;
if (!__facingDirectionLeft) {
onTurnAround();
}
}
__knockbackTimer = __MIN_KNOCKBACK_DURATION;
}
function onKnockbackComplete() {
__isKnocked = false;
}
function onErase() {
super.onErase();
if (__flaggedForRemoval) {
doRemove = true;
}
__animation = "";
}
function endDie() {
__flaggedForRemoval = true;
super.endDie();
}
function updateAnim() {
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
} else {
animateLoop(__IDLE_ANIMATION);
}
}
}
}
function hitReact(pSource) {
}
function getIsDangerous() {
if (__isKnocked || (isAlive == false)) {
return(false);
}
return(true);
}
function animate(frame) {
if (frame == "hit") {
if (__animation == frame) {
mc.anim.gotoAndPlay(1);
}
}
super.animate(frame);
}
function animateLoop(frame) {
super.animateLoop(frame);
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
if (!__facingDirectionLeft) {
mc._xscale = -100;
}
}
var TYPE = "monster";
var DRAWTYPE = "entity";
var __DEF_ASSET = "";
var __DEF_WIDTH = 40;
var __DEF_HEIGHT = 60;
var __USE_ACTUAL_DIMENSIONS = false;
var __DEF_HD_WIDTH = 40;
var __DEF_HD_HEIGHT = 60;
var __USE_DIMENSIONS_AS_HD = false;
var IS_PLATFORM_BOUND = true;
var IS_FRIENDLY = false;
var DAMAGE = 2;
var __DROPS_DIAMOND = true;
var __DIAMOND_OFFSET_Y = -30;
var __MIN_KNOCKBACK_DURATION = 0.8;
var __GROUND_ACCEL_RATE = 600;
var __GROUND_DECCEL_RATE = 340;
var __GROUND_MAX_SPEED = 110;
var __MAX_HEALTH = 1;
}
Symbol 1580 MovieClip [__Packages.nick.eltigre.mcm.ents.MonsterWalker] Frame 0
class nick.eltigre.mcm.ents.MonsterWalker extends nick.eltigre.mcm.ents.Monster
{
var runPlatformHD, __currentPlatform, isAlive, __isKnocked, __facingDirectionLeft, velocity, mc;
function MonsterWalker (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
engageWalking();
}
function update(dt, pPlayer) {
super.update(dt);
runPlatformHD(__currentPlatform);
}
function onTurnAround() {
super.onTurnAround();
if (isAlive && (!__isKnocked)) {
engageWalking();
}
updateAnimationFacing();
}
function engageWalking() {
if (!isAlive) {
return(undefined);
}
if (__facingDirectionLeft) {
velocity.x = -__GROUND_MAX_SPEED;
} else {
velocity.x = __GROUND_MAX_SPEED;
}
}
function animate(frame) {
updateAnimationFacing();
super.animate(frame);
}
function animateLoop(frame) {
updateAnimationFacing();
super.animateLoop(frame);
}
function updateAnimationFacing() {
if (__facingDirectionLeft) {
mc._xscale = 100;
} else {
mc._xscale = -100;
}
}
function onKnockbackComplete() {
super.onKnockbackComplete();
engageWalking();
}
var __IDLE_ANIMATION = "walk";
var __GROUND_MAX_SPEED = 70;
}
Symbol 1581 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.LavaHulk] Frame 0
class nick.eltigre.mcm.ents.monsters.LavaHulk extends nick.eltigre.mcm.ents.MonsterWalker
{
var hdReg;
function LavaHulk (pData) {
super(pData);
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -40;
}
var TYPE = "hulk";
var __DEF_ASSET = "monster_lava";
var __DEF_WIDTH = 134;
var __DEF_HEIGHT = 138;
var __DEF_HD_WIDTH = 40;
var __DEF_HD_HEIGHT = 80;
var __GROUND_MAX_SPEED = 70;
var __MAX_HEALTH = 6;
}
Symbol 1582 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.LilFlame] Frame 0
class nick.eltigre.mcm.ents.monsters.LilFlame extends nick.eltigre.mcm.ents.MonsterWalker
{
var __attackTimer, __isAttacking, __isCharging, isDrawn, x, __isKnocked, isAlive, velocity, animate, hdHeight, baseHeight, __baseRegY, hdReg, engageWalking, __isAnimating, mc, __DEATH_ANIMATION, __animation, endDie, animateLoop, __IDLE_ANIMATION;
function LilFlame (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__attackTimer = 0;
__isAttacking = false;
__isCharging = false;
}
function update(dt, pPlayer) {
super.update(dt);
if ((__isAttacking || (__isCharging)) || (!isDrawn)) {
return(undefined);
}
if (__attackTimer > 0) {
__attackTimer = __attackTimer - dt;
} else if (Math.abs(pPlayer.x - x) < 60) {
onCharge();
}
}
function onCharge() {
if ((__isKnocked || (!isAlive)) || (!isDrawn)) {
return(undefined);
}
__isCharging = true;
velocity.x = 0;
animate("charge");
}
function takeDamage(pDamage, pForce, pSource) {
super.takeDamage(pDamage, pForce, pSource);
__isCharging = false;
__isAttacking = false;
}
function onAttack() {
if (__isKnocked || (!isAlive)) {
return(undefined);
}
__isCharging = false;
__isAttacking = true;
velocity.x = 0;
animate("attack");
hdHeight = (baseHeight / 2) + 40;
hdReg.y = __baseRegY - 20;
}
function endAttack() {
__isAttacking = false;
__attackTimer = __ATTACK_DELAY;
engageWalking();
hdHeight = baseHeight / 2;
hdReg.y = __baseRegY;
}
function updateAnim() {
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
} else if (__animation == "charge") {
onAttack();
} else {
if (__animation == "attack") {
endAttack();
}
animateLoop(__IDLE_ANIMATION);
}
}
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -10;
__baseRegY = hdReg.y;
}
function onErase() {
super.onErase();
endAttack();
}
var TYPE = "flame";
var __DEF_ASSET = "monster_lilFlame";
var __DEF_WIDTH = 22;
var __DEF_HEIGHT = 33;
var __DEF_HD_WIDTH = 12;
var __DEF_HD_HEIGHT = 30;
var __GROUND_MAX_SPEED = 90;
var __MAX_HEALTH = 2;
var __ATTACK_DELAY = 2;
}
Symbol 1583 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.Bat] Frame 0
class nick.eltigre.mcm.ents.monsters.Bat extends nick.eltigre.mcm.ents.Monster
{
var __movementDistance, __movementDir, __movementSpeed, __moved, __movementSpeedMax, __bob, __bobRate, __bobHeight, __dp, x, y, startY, hdReg;
function Bat (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
if (pData.dist == undefined) {
__movementDistance = __DEFAULT_MOVE_DIST;
} else {
__movementDistance = pData.dist;
}
__movementDir = 1;
__movementSpeed = 0;
__moved = 0;
if (pData.speed == undefined) {
__movementSpeedMax = __DEF_MOVE_SPEED;
} else {
__movementSpeedMax = pData.speed;
}
__bob = 0;
__bobRate = __BOB_RATE;
if (pData.bob == undefined) {
__bobHeight = __DEF_BOB_HEIGHT;
} else {
__bobHeight = pData.bob;
}
}
function update(dt, pPlayer) {
if (__movementSpeed < __movementSpeedMax) {
__movementSpeed = __movementSpeed + (__MOVE_ACCEL * dt);
if (__movementSpeed > __movementSpeedMax) {
__movementSpeed = __movementSpeedMax;
}
}
__dp = (__movementSpeed * dt) * __movementDir;
if ((__moved + Math.abs(__dp)) >= __movementDistance) {
__dp = __movementDistance - __moved;
__movementSpeed = 0;
__moved = __moved + Math.abs(__dp);
__movementDir = __movementDir * -1;
__moved = 0;
} else {
__moved = __moved + Math.abs(__dp);
}
x = x + __dp;
__bob = __bob + (__bobRate * dt);
y = startY + (Math.sin(__bob) * __bobHeight);
super.update(dt);
}
function updateSourceLines() {
}
function startDie() {
super.startDie();
__bobRate = 0;
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -7;
}
var TYPE = "bat";
var __DEF_ASSET = "monster_bat";
var __DEF_WIDTH = 91;
var __DEF_HEIGHT = 24;
var __DEF_HD_WIDTH = 30;
var __DEF_HD_HEIGHT = 22;
var __IDLE_ANIMATION = "fly";
var IS_PLATFORM_BOUND = false;
var __DEFAULT_MOVE_DIST = 200;
var __DEF_MOVE_SPEED = 70;
var __MOVE_ACCEL = 100;
var __BOB_RATE = 1;
var __DEF_BOB_HEIGHT = 60;
}
Symbol 1584 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.Pukey] Frame 0
class nick.eltigre.mcm.ents.monsters.Pukey extends nick.eltigre.mcm.ents.Monster
{
var __attackTimer, __isAttacking, __isCharging, isDrawn, x, health, animate, startDie, isAlive, hdWidth, __facingDirectionLeft, __baseRegX, hdReg, __isAnimating, mc, __DEATH_ANIMATION, __animation, endDie, animateLoop, __IDLE_ANIMATION;
function Pukey (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__attackTimer = __ATTACK_DELAY;
__isAttacking = false;
__isCharging = false;
}
function update(dt, pPlayer) {
super.update(dt);
if (__isAttacking || (!isDrawn)) {
return(undefined);
}
if (__attackTimer > 0) {
__attackTimer = __attackTimer - dt;
} else if (Math.abs(pPlayer.x - x) < 150) {
onCharge();
}
}
function takeDamage(pDamage, pForce, pSource) {
health = health - pDamage;
if (health <= 0) {
animate("die");
startDie();
} else {
if (__isAttacking || (__isCharging)) {
return(undefined);
}
animate("hit");
}
}
function onCharge() {
if ((!isAlive) || (!isDrawn)) {
return(undefined);
}
__isCharging = true;
animate("charge");
}
function onAttack() {
if (!isAlive) {
return(undefined);
}
__isCharging = false;
__isAttacking = true;
animate("attack");
hdWidth = (__DEF_HD_WIDTH / 2) + __PUKE_DISTANCE;
hdReg.x = __baseRegX + ((__PUKE_DISTANCE * __facingDirectionLeft) ? -1 : 1);
}
function endAttack() {
__isAttacking = false;
__attackTimer = __ATTACK_DELAY;
hdWidth = __DEF_HD_WIDTH / 2;
hdReg.x = __baseRegX;
}
function updateAnim() {
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
} else if (__animation == "charge") {
onAttack();
} else {
if (__animation == "attack") {
endAttack();
}
animateLoop(__IDLE_ANIMATION);
}
}
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -46;
__baseRegX = hdReg.x;
}
function onErase() {
super.onErase();
endAttack();
}
var TYPE = "pukey";
var __DEF_ASSET = "monster_lava2";
var __DEF_WIDTH = 90;
var __DEF_HEIGHT = 93;
var __DEF_HD_WIDTH = 75;
var __DEF_HD_HEIGHT = 80;
var __MAX_HEALTH = 8;
var __ATTACK_DELAY = 2.7;
var __PUKE_DISTANCE = 58;
}
Symbol 1585 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.Bubble] Frame 0
class nick.eltigre.mcm.ents.monsters.Bubble extends nick.eltigre.mcm.ents.Monster
{
var __movementDistance, __moved, __movementSpeed, __bob, __bobRate, __bobWidth, __noDrawTimer, __isSpawning, y, __dp, x, startX, mc, animate, animateLoop, isAlive, isDrawn, __isAnimating, __DEATH_ANIMATION, __animation, endDie;
function Bubble (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
if (pData.dist == undefined) {
__movementDistance = 400 + (Math.random() * 1300);
} else {
__movementDistance = pData.dist;
}
__moved = 0;
if (pData.speed == undefined) {
__movementSpeed = __DEF_MOVE_SPEED;
} else {
__movementSpeed = pData.speed;
}
__bob = 0;
__bobRate = __BOB_RATE;
if (pData.bob == undefined) {
__bobWidth = __DEF_BOB_WIDTH;
} else {
__bobWidth = pData.bob;
}
__noDrawTimer = 0;
__isSpawning = true;
y = y - 125;
}
function update(dt, pPlayer) {
if (__isSpawning) {
updateAnim();
return(undefined);
}
__dp = (-__movementSpeed) * dt;
if ((__moved + Math.abs(__dp)) >= __movementDistance) {
startDie();
} else {
__moved = __moved + Math.abs(__dp);
}
y = y + __dp;
__bob = __bob + (__bobRate * dt);
x = startX + (Math.sin(__bob) * __bobWidth);
super.update(dt);
}
function updateSourceLines() {
}
function startDie() {
mc.cacheAsBitmap = false;
super.startDie();
__movementSpeed = 0;
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
if (__isSpawning) {
mc.cacheAsBitmap = false;
animate("spawn");
} else {
animateLoop(__IDLE_ANIMATION);
mc.cacheAsBitmap = true;
}
}
function getIsDangerous() {
if (__isSpawning || (isAlive == false)) {
return(false);
}
return(true);
}
function updateAnim() {
if (__isSpawning && (!isDrawn)) {
__noDrawTimer++;
if (__noDrawTimer > 10) {
__isSpawning = false;
}
return(undefined);
}
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
} else {
if (__animation == "spawn") {
__isSpawning = false;
}
animateLoop(__IDLE_ANIMATION);
mc.cacheAsBitmap = true;
}
}
}
}
var TYPE = "bubble";
var __DEF_ASSET = "bubble_main";
var __DEF_WIDTH = 34;
var __DEF_HEIGHT = 32;
var __DEF_HD_WIDTH = 28;
var __DEF_HD_HEIGHT = 28;
var __IDLE_ANIMATION = "idle";
var IS_PLATFORM_BOUND = false;
var __DROPS_DIAMOND = false;
var __DEF_MOVE_SPEED = 60;
var __BOB_RATE = 0.6;
var __DEF_BOB_WIDTH = 60;
}
Symbol 1586 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.Geyser] Frame 0
class nick.eltigre.mcm.ents.monsters.Geyser extends nick.eltigre.mcm.ents.Monster
{
var __noDrawTimer, mc, doRemove, isDrawn, endDie, hdReg;
function Geyser (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__noDrawTimer = 0;
}
function update(dt, pPlayer) {
updateAnim(dt);
}
function updateSourceLines() {
}
function animate(pFrame) {
}
function animateLoop(pFrame) {
}
function takeDamage(pDamage, pForce, pPlayer) {
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc.gotoAndPlay(1);
}
function onErase() {
super.onErase();
doRemove = true;
}
function getIsDangerous() {
if ((!isDrawn) || (mc._currentFrame < 20)) {
return(false);
}
return(true);
}
function updateAnim(dt) {
if (!isDrawn) {
__noDrawTimer = __noDrawTimer + dt;
if (__noDrawTimer > 3) {
endDie();
}
return(undefined);
}
if (mc._currentFrame == mc._totalFrames) {
endDie();
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -200;
}
var TYPE = "geyser";
var __DEF_ASSET = "geyser_mc";
var __DEF_WIDTH = 41;
var __DEF_HEIGHT = 400;
var __DEF_HD_WIDTH = 37;
var __DEF_HD_HEIGHT = 400;
var __DROPS_DIAMOND = false;
var IS_PLATFORM_BOUND = false;
}
Symbol 1587 MovieClip [__Packages.nick.eltigre.mcm.ents.Pickup] Frame 0
class nick.eltigre.mcm.ents.Pickup extends nick.eltigre.mcm.ents.Entity
{
var expanseID, __flaggedForRemoval, mc, startDie, isAlive, doRemove, __isAnimating, __animation, endDie, isDrawn;
function Pickup (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
expanseID = pData.id;
__flaggedForRemoval = false;
}
function hitReact() {
mc.cacheAsBitmap = false;
startDie();
}
function onErase() {
super.onErase();
if ((!isAlive) || (__flaggedForRemoval)) {
doRemove = true;
}
}
function updateAnim() {
if (__isAnimating) {
if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
}
}
}
}
function flagForRemoval() {
if (isDrawn) {
__flaggedForRemoval = true;
} else {
doRemove = true;
}
}
var TYPE = "pickup";
var DRAWTYPE = "entity";
var __DEATH_ANIMATION = "pickup";
}
Symbol 1588 MovieClip [__Packages.nick.eltigre.mcm.ents.pickups.Coin] Frame 0
class nick.eltigre.mcm.ents.pickups.Coin extends nick.eltigre.mcm.ents.Pickup
{
var __bobCounter, __baseY, y, isAlive, animate, mc;
function Coin (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__bobCounter = Math.random() * 2;
__baseY = y;
}
function updateAndRender(dt) {
if (isAlive) {
__bobCounter = __bobCounter + (__BOB_RATE * dt);
y = __baseY + (Math.sin(__bobCounter) * __MAX_BOB);
}
super.updateAndRender(dt);
}
function hitReact() {
isAlive = false;
animate("pickup");
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc.cacheAsBitmap = true;
}
var TYPE = "coin";
var DRAWTYPE = "entity";
var __DEF_WIDTH = 20;
var __DEF_HEIGHT = 20;
var __DEF_HD_WIDTH = 25;
var __DEF_HD_HEIGHT = 25;
var __DEF_ASSET = "coin_main";
var __BOB_RATE = 2;
var __MAX_BOB = 6;
}
Symbol 1589 MovieClip [__Packages.nick.eltigre.mcm.ents.pickups.Diamond] Frame 0
class nick.eltigre.mcm.ents.pickups.Diamond extends nick.eltigre.mcm.ents.pickups.Coin
{
var __isMini, mc;
function Diamond (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
if (pData.isMini == true) {
__isMini = true;
} else {
__isMini = false;
}
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
if (__isMini) {
mc._xscale = (mc._yscale = 60);
}
}
function get isMini() {
return(__isMini);
}
var TYPE = "diamond";
var __DEF_ASSET = "diamond_main";
}
Symbol 1590 MovieClip [__Packages.nick.eltigre.mcm.ents.pickups.Burro] Frame 0
class nick.eltigre.mcm.ents.pickups.Burro extends nick.eltigre.mcm.ents.Pickup
{
var __isAirborne, __targetX, x, __targetY, y, __path, __pathProgress, __pathRatio, __targetPlat, render, startX, startY, isAlive, animate, mc;
function Burro (pData) {
super(pData);
__isAirborne = true;
if (pData.settled == true) {
__targetX = x;
__targetY = y;
__path = new smashing.Point3D(0, 0, 0);
__pathProgress = (__pathRatio = 0);
return;
}
__targetPlat = pData.platform;
__targetX = __targetPlat.x;
__targetY = __targetPlat.y;
var _local4 = __targetX - x;
var _local3 = __targetY - y;
__path = new smashing.Point3D(_local4, _local3, 0);
__pathProgress = (__pathRatio = 0);
}
function init(pData) {
super.init(pData);
}
function updateAndRender(dt) {
if (!__isAirborne) {
render(dt);
return(undefined);
}
__pathProgress = __pathProgress + (__PATH_RATE * dt);
__pathRatio = __pathProgress / __path.__get__length();
if (__pathRatio >= 1) {
x = __targetX;
y = __targetY;
__isAirborne = false;
} else {
x = startX + (__path.x * __pathRatio);
y = (startY + (__path.y * __pathRatio)) - (Math.sin(__pathRatio * 3.5) * (__path.__get__length() / 2));
}
render(dt);
}
function getIsPickupable() {
return(isAlive && (!__isAirborne));
}
function hitReact() {
isAlive = false;
animate("pickup");
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc.cacheAsBitmap = true;
}
function flagForRemoval() {
}
var TYPE = "burro";
var DRAWTYPE = "entity";
var __DEF_WIDTH = 30;
var __DEF_HEIGHT = 60;
var __DEF_HD_WIDTH = 30;
var __DEF_HD_HEIGHT = 55;
var __DEF_ASSET = "mule_main";
var __PATH_RATE = 250;
}
Symbol 1591 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.Oso] Frame 0
class nick.eltigre.mcm.ents.monsters.Oso extends nick.eltigre.mcm.ents.MonsterWalker
{
var __isArmed, __hasActed, __stateIncrement, __stateTimer, x, landOnSurface, snapToSurface, startX, __state, mc, animateLoop, velocity, __currentPlatform, health, animate, __facingDirectionLeft, isAlive, hdWidth, __baseRegX, hdReg;
function Oso (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
changeState("idle");
__isArmed = false;
__hasActed = false;
smashing.rampage.Messenger.sendMessage("world", "onAnnounceOso", {oso:this});
}
function onBattleBegin() {
__stateIncrement = 2;
__stateTimer = 1;
changeState("preprock");
}
function linkToPlatform(pPlatform, pSurface) {
x = pPlatform.x + 180;
landOnSurface(pPlatform, pSurface);
snapToSurface();
startX = x;
}
function update(dt, pPlayer) {
switch (__state) {
case "throwrock" :
if (__isArmed && (mc.anim._currentFrame > 9)) {
smashing.rampage.Messenger.sendMessage("world", "generateOsoRock", {oso:this});
onAttack();
__hasActed = true;
__isArmed = false;
} else if (__hasActed && (mc.anim._currentFrame > 18)) {
endAttack();
__hasActed = false;
} else if (mc.anim._currentFrame == mc.anim._totalFrames) {
animateLoop("idle");
__stateTimer = 0.6;
changeState("preprock");
}
break;
case "preprock" :
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
__stateIncrement++;
if (__stateIncrement < 4) {
changeState("throwrock");
} else {
changeState("precharge");
}
}
if (Math.abs(pPlayer.x - x) < 120) {
changeState("stomp");
}
break;
case "precharge" :
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
changeState("charge");
}
break;
case "charge" :
if (velocity.x < 0) {
if (x < (__currentPlatform.x - 210)) {
changeState("slide");
}
} else if (x > (__currentPlatform.x + 127)) {
changeState("crash");
}
x = x + (velocity.x * dt);
break;
case "stomp" :
if ((!__hasActed) && (mc.anim._currentFrame > 5)) {
onAttack();
__hasActed = true;
} else if (mc.anim._currentFrame == mc.anim._totalFrames) {
animateLoop("idle");
changeState("preprock");
endAttack();
}
break;
case "slide" :
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
changeState("charge");
}
break;
case "crash" :
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
changeState("standup");
}
break;
case "standup" :
if ((__stateIncrement == 1) && (mc.anim._currentFrame >= 35)) {
__stateIncrement++;
onAttack();
smashing.rampage.Messenger.sendMessage("world", "onOsoLand", {health:health});
} else if ((__stateIncrement == 2) && (mc.anim._currentFrame >= 48)) {
__stateIncrement++;
endAttack();
} else if (mc.anim._currentFrame == mc.anim._totalFrames) {
__stateIncrement = 0;
__stateTimer = 0.4;
changeState("preprock");
}
break;
case "hit" :
if (mc.anim._currentFrame == mc.anim._totalFrames) {
__stateIncrement = 0;
changeState("standup");
}
break;
case "defeat" :
if ((__stateIncrement == 0) && (mc.anim._currentFrame == mc.anim._totalFrames)) {
smashing.rampage.Messenger.sendMessage("world", "callEventRemote", {event:"osodead"});
__stateIncrement++;
}
break;
}
}
function changeState(pId) {
__state = pId;
switch (__state) {
case "preprock" :
break;
case "throwrock" :
__isArmed = true;
animate("throw");
break;
case "precharge" :
__stateTimer = 0.6;
__stateIncrement = 0;
animate("charge");
break;
case "charge" :
if (x > __currentPlatform.x) {
velocity.x = -__CHARGE_SPEED;
__facingDirectionLeft = true;
} else {
velocity.x = __CHARGE_SPEED;
__facingDirectionLeft = false;
}
animateLoop("charge");
break;
case "stomp" :
animate("stomp");
__hasActed = false;
break;
case "crash" :
animateLoop("dizzy");
nick.eltigre.mcm.Sounds.getInstance().p("bonk");
smashing.rampage.Messenger.sendMessage("world", "onShakeRockPiles");
__stateTimer = 2.7;
velocity.x = 0;
break;
case "slide" :
if (x > __currentPlatform.x) {
__facingDirectionLeft = false;
} else {
__facingDirectionLeft = true;
}
animateLoop("idle");
velocity.x = 0;
__stateTimer = 0.5;
break;
case "standup" :
__stateIncrement = 1;
__facingDirectionLeft = true;
animate("standUp");
break;
case "hit" :
animate("hit");
break;
case "defeat" :
animateLoop("defeat");
isAlive = false;
__stateIncrement = 0;
smashing.rampage.Messenger.sendMessage("world", "generateOsoPlatform", {oso:this});
break;
default :
__stateIncrement = 0;
__stateTimer = 0;
}
}
function updateForEvent(dt, pStep) {
if (pStep == 3) {
if (!__hasActed) {
animate("stomp");
__hasActed = true;
}
}
}
function getIsDangerous() {
if (((__state == "hit") || (__state == "crash")) || (isAlive == false)) {
return(false);
}
return(true);
}
function onAttack() {
hdWidth = (__DEF_HD_WIDTH / 2) + __REACH_DISTANCE;
hdReg.x = __baseRegX + (((__REACH_DISTANCE / 2) * __facingDirectionLeft) ? -1 : 1);
}
function endAttack() {
hdWidth = __DEF_HD_WIDTH / 2;
hdReg.x = __baseRegX;
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -35;
__baseRegX = hdReg.x;
}
function takeDamage(pDamage, pForce, pSource) {
if (__state != "crash") {
return(undefined);
}
health = health - pDamage;
changeState("hit");
}
var TYPE = "oso";
var __DEF_ASSET = "_boss_elOso";
var __DEF_WIDTH = 174;
var __DEF_HEIGHT = 138;
var __DEF_HD_WIDTH = 85;
var __DEF_HD_HEIGHT = 70;
var __GROUND_MAX_SPEED = 70;
var __MAX_HEALTH = 3;
var __CHARGE_SPEED = 180;
var __REACH_DISTANCE = 55;
var __DROPS_DIAMOND = false;
var __IDLE_ANIMATION = "idle";
}
Symbol 1592 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.RockPile] Frame 0
class nick.eltigre.mcm.ents.monsters.RockPile extends nick.eltigre.mcm.ents.Monster
{
var x, landOnSurface, snapToSurface, y, animate;
function RockPile (pData) {
super(pData);
}
function getIsDangerous() {
return(false);
}
function linkToPlatform(pPlatform, pSurface) {
x = pPlatform.x + 178;
landOnSurface(pPlatform, pSurface);
snapToSurface();
y = y - 6;
}
function takeDamage(pDamage, pForce, pSource) {
}
function onShake() {
animate("shake");
}
var TYPE = "rockpile";
var DRAWTYPE = "scenery";
var __DEF_ASSET = "oso_rockpile";
var __DROPS_DIAMOND = false;
var __DEF_WIDTH = 50;
var __DEF_HEIGHT = 50;
var __DEF_HD_WIDTH = 50;
var __DEF_HD_HEIGHT = 50;
var __IDLE_ANIMATION = "idle";
}
Symbol 1593 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.OsoRock] Frame 0
class nick.eltigre.mcm.ents.monsters.OsoRock extends nick.eltigre.mcm.ents.Monster
{
var __flaggedForRemoval, velocity, x, y, hdReg;
function OsoRock (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__flaggedForRemoval = true;
velocity.x = (-__THROW_SPEED) * (1 + Math.random());
velocity.y = -10 - (Math.random() * 80);
}
function update(dt, pPlayer) {
velocity.y = velocity.y + (390 * dt);
super.update(dt);
x = x + (velocity.x * dt);
y = y + (velocity.y * dt);
}
function updateSourceLines() {
}
function startDie() {
super.startDie();
}
function hitReact(pSource) {
startDie();
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
var TYPE = "osorock";
var __DEF_ASSET = "oso_rock";
var __DEF_WIDTH = 46;
var __DEF_HEIGHT = 44;
var __DEF_HD_WIDTH = 28;
var __DEF_HD_HEIGHT = 28;
var __IDLE_ANIMATION = "throw";
var __DEATH_ANIMATION = "hit";
var __DROPS_DIAMOND = false;
var DAMAGE = 1;
var IS_PLATFORM_BOUND = false;
var __THROW_SPEED = 200;
}
Symbol 1594 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.DeathRock] Frame 0
class nick.eltigre.mcm.ents.monsters.DeathRock extends nick.eltigre.mcm.ents.Monster
{
var hdReg, animate, __hasCrushed, mc, __isAnimating, __animation, endDie, animateLoop;
function DeathRock (pData) {
super(pData);
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
function onShake() {
animate("shake");
}
function onFall() {
animate("fall");
__hasCrushed = false;
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc._xscale = -100;
}
function updateAnim() {
if (__isAnimating) {
if ((!__hasCrushed) && (__animation == "fall")) {
if (mc.anim._currentFrame >= 23) {
__hasCrushed = true;
smashing.rampage.Messenger.sendMessage("world", "onOsoSmoosh");
}
} else if (mc.anim._currentFrame == mc.anim._totalFrames) {
if (__animation == __DEATH_ANIMATION) {
endDie();
} else {
animateLoop(__IDLE_ANIMATION);
}
}
}
}
function getIsDangerous() {
return(false);
}
function takeDamage(pDamage, pForce, pSource) {
}
var TYPE = "deathrock";
var DRAWTYPE = "scenery";
var __DEF_ASSET = "oso_rock_ultimateDemise";
var __DEF_WIDTH = 55;
var __DEF_HEIGHT = 53;
var __DEF_HD_WIDTH = 28;
var __DEF_HD_HEIGHT = 28;
var __IDLE_ANIMATION = "idle";
var __DEATH_ANIMATION = "fall";
var IS_PLATFORM_BOUND = false;
}
Symbol 1595 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.Cuervo] Frame 0
class nick.eltigre.mcm.ents.monsters.Cuervo extends nick.eltigre.mcm.ents.Monster
{
var __stateIncrement, __stateTimer, __isArmed, __isInvincible, __distanceTraveled, __centerX, x, __state, __targetX, __targetY, y, __camera, mc, isDrawn, health, velocity, updateDraw, __onscreen, doRender, __facingDirectionLeft, isAlive, hdReg, baseWidth, baseHeight, __animation;
function Cuervo (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__stateIncrement = 2;
__stateTimer = 1;
changeState("enter");
__isArmed = true;
__isInvincible = false;
__distanceTraveled = 0;
}
function adjustToExpanse(tx, ty) {
super.adjustToExpanse(tx, ty);
__centerX = x + 300;
}
function update(dt, pPlayer) {
switch (__state) {
case "enter" :
if ((x == __targetX) && (y == __targetY)) {
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
changeState("dive");
}
} else {
__targetY = __camera.y - 100;
}
break;
case "dive" :
if ((x == __targetX) && (y == __targetY)) {
changeState("fire", pPlayer);
}
break;
case "draw" :
if ((mc.anim._currentFrame == mc.anim._totalFrames) || (!isDrawn)) {
changeState("fire", pPlayer);
}
break;
case "gunaway" :
if ((mc.anim._currentFrame == mc.anim._totalFrames) || (!isDrawn)) {
changeState("escape", pPlayer);
}
break;
case "fire" :
if ((mc.anim._currentFrame == mc.anim._totalFrames) || (!isDrawn)) {
changeState("gunaway", pPlayer);
}
break;
case "escape" :
if (!isDrawn) {
changeState("reposition", pPlayer);
}
break;
case "reposition" :
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
changeState("enter", pPlayer);
}
break;
case "hit" :
if ((x == __targetX) && (y == __targetY)) {
__stateTimer = __stateTimer - dt;
if (__stateTimer < 0) {
if (health <= 0) {
smashing.rampage.Messenger.sendMessage("world", "onPlayerTouchEventPlatform", {id:"win"});
} else if (__isArmed) {
changeState("fire", pPlayer);
} else {
changeState("escape", pPlayer);
}
}
}
break;
}
velocity = new smashing.Point3D(__targetX - x, __targetY - y, 0);
velocity.__set__length(__FLY_SPEED);
__distanceTraveled = __distanceTraveled + Math.abs(velocity.x * dt);
x = x + (velocity.x * dt);
if ((velocity.x > 0) && (x > __targetX)) {
x = __targetX;
} else if ((velocity.x < 0) && (x < __targetX)) {
x = __targetX;
}
y = y + (velocity.y * dt);
if ((velocity.y > 0) && (y > __targetY)) {
y = __targetY;
} else if ((velocity.y < 0) && (y < __targetY)) {
y = __targetY;
}
}
function move() {
updateDraw();
if (__onscreen) {
doRender = true;
} else {
doRender = false;
}
}
function changeState(pId, pPlayer) {
__state = pId;
__distanceTraveled = 0;
switch (__state) {
case "enter" :
__stateTimer = 1;
if (x < __camera.x) {
__facingDirectionLeft = false;
__targetX = __camera.x - 270;
} else {
__facingDirectionLeft = true;
__targetX = __camera.x + 270;
}
animateLoop("hover");
break;
case "dive" :
__isArmed = true;
if (x > __centerX) {
__facingDirectionLeft = true;
__targetX = __centerX - 110;
__targetY = __camera.y + 80;
} else {
__facingDirectionLeft = false;
__targetX = __centerX + 110;
__targetY = __camera.y + 80;
}
animateLoop("dive");
break;
case "draw" :
if (!isDrawn) {
changeState("reposition");
return(undefined);
}
__targetX = x;
__targetY = y;
animate("draw");
break;
case "fire" :
if (!isDrawn) {
changeState("reposition");
return(undefined);
}
__isArmed = false;
if (pPlayer.x > x) {
__facingDirectionLeft = false;
} else {
__facingDirectionLeft = true;
}
__targetX = x;
__targetY = y;
animate("shoot");
onAttack();
break;
case "gunaway" :
if (!isDrawn) {
changeState("reposition");
return(undefined);
}
__targetX = x;
__targetY = y;
animate("gunAway");
break;
case "escape" :
animateLoop("dive");
__distanceTraveled = 0;
if (x > __centerX) {
__facingDirectionLeft = false;
__targetX = __centerX + 350;
__targetY = __camera.y - 90;
} else {
__facingDirectionLeft = true;
__targetX = __centerX - 350;
__targetY = __camera.y - 90;
}
break;
case "reposition" :
if (x > __camera.x) {
x = (__camera.x + __camera.__get__sc().x) + 45;
} else if (x < __camera.x) {
x = (__camera.x - __camera.__get__sc().x) - 45;
}
y = (pPlayer.y + 90) - (Math.random() * 70);
if (y < ((__camera.y - __camera.__get__sc().y) + 40)) {
y = ((__camera.y - __camera.__get__sc().y) + 40) + (Math.random() * 40);
}
__stateTimer = 1.4;
__isInvincible = false;
__isArmed = true;
break;
case "hit" :
animateLoop("hitDive");
__isInvincible = true;
if (health <= 0) {
__targetX = (((x - pPlayer.x) > 0) ? (x + __KNOCKBACK_DIST) : (x - (__KNOCKBACK_DIST / 2)));
__targetY = y - 200;
} else {
__targetX = (((x - pPlayer.x) > 0) ? (x + __KNOCKBACK_DIST) : (x - __KNOCKBACK_DIST));
__targetY = y;
}
__stateTimer = 1.2;
}
}
function getIsDangerous() {
if ((__state == "hit") || (isAlive == false)) {
return(false);
}
return(true);
}
function onAttack() {
smashing.rampage.Messenger.sendMessage("world", "generateCuervoShot", {x:x + (__facingDirectionLeft ? -60 : 60), y:y});
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
function takeDamage(pDamage, pForce, pSource) {
if (__isInvincible) {
return(undefined);
}
health = health - pDamage;
changeState("hit");
}
function onErase() {
isDrawn = false;
}
function animate(frame) {
updateAnimationFacing();
super.animate(frame);
}
function animateLoop(frame) {
updateAnimationFacing();
super.animateLoop(frame);
}
function updateAnimationFacing() {
if (__facingDirectionLeft) {
mc._xscale = -100;
} else {
mc._xscale = 100;
}
}
function onDraw(t_newmc) {
isDrawn = true;
mc = t_newmc;
mc._x = -1000 - baseWidth;
mc._y = -1000 - baseHeight;
animateLoop(__animation);
updateAnimationFacing();
}
var TYPE = "cuervo";
var __DEF_ASSET = "_cuervo";
var IS_PLATFORM_BOUND = false;
var __DEF_WIDTH = 90;
var __DEF_HEIGHT = 52;
var __DEF_HD_WIDTH = 60;
var __DEF_HD_HEIGHT = 30;
var __MAX_HEALTH = 4;
var __FLY_SPEED = 270;
var __DIVE_SPEED = 260;
var __DIVE_DEPTH = 180;
var __KNOCKBACK_DIST = 80;
var __DROPS_DIAMOND = false;
var __IDLE_ANIMATION = "idle";
}
Symbol 1596 MovieClip [__Packages.nick.eltigre.mcm.ents.monsters.CuervoShot] Frame 0
class nick.eltigre.mcm.ents.monsters.CuervoShot extends nick.eltigre.mcm.ents.Monster
{
var __angle, y, x, velocity, magnitudeToVector, mc, __flaggedForRemoval, hdReg;
function CuervoShot (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__angle = Math.atan2(pData.player.y - y, pData.player.x - x) * 57.2957795130823;
velocity = magnitudeToVector(__FIRE_SPEED, __angle);
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc._rotation = __angle;
__flaggedForRemoval = true;
}
function update(dt, pPlayer) {
super.update(dt);
x = x + (velocity.x * dt);
y = y + (velocity.y * dt);
}
function updateSourceLines() {
}
function startDie() {
super.startDie();
}
function takeDamage(pDamage, pForce, pSource) {
}
function hitReact(pSource) {
startDie();
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
var TYPE = "cuervoshot";
var __DEF_ASSET = "cuervo_laserBolt";
var __DEF_WIDTH = 46;
var __DEF_HEIGHT = 44;
var __DEF_HD_WIDTH = 28;
var __DEF_HD_HEIGHT = 28;
var __IDLE_ANIMATION = "laser";
var __DEATH_ANIMATION = "hit";
var __DROPS_DIAMOND = false;
var DAMAGE = 1;
var IS_PLATFORM_BOUND = false;
var __FIRE_SPEED = 190;
}
Symbol 1597 MovieClip [__Packages.nick.eltigre.mcm.ents.Effect] Frame 0
class nick.eltigre.mcm.ents.Effect extends nick.eltigre.mcm.ents.Entity
{
var isDrawn, mc, doRemove;
function Effect (pData) {
super(pData);
}
function updateAndRender(dt) {
if (isDrawn && (mc._currentFrame == mc._totalFrames)) {
requestErase();
return(undefined);
}
super.updateAndRender(dt);
}
function requestErase() {
doRemove = true;
super.requestErase();
}
var TYPE = "effect";
var DRAWTYPE = "effect";
}
Symbol 1598 MovieClip [__Packages.nick.eltigre.mcm.ents.GravityEffect] Frame 0
class nick.eltigre.mcm.ents.GravityEffect extends nick.eltigre.mcm.ents.Effect
{
var velocity, __lifeSpan, __gravity, x, y, mc, requestErase;
function GravityEffect (pData) {
super(pData);
velocity.y = -150 - (Math.random() * 200);
velocity.x = 120 - (Math.random() * 260);
__lifeSpan = __LIFE_SPAN;
__gravity = pData.gravity;
}
function updateAndRender(dt) {
x = x + (velocity.x * dt);
y = y + (velocity.y * dt);
velocity.y = velocity.y + ((__gravity.y * dt) * 1.5);
mc._rotation = mc._rotation + (__ROTATION_RATE * dt);
__lifeSpan = __lifeSpan - dt;
if (__lifeSpan <= 0) {
requestErase();
return(undefined);
}
super.updateAndRender(dt);
}
var TYPE = "effect";
var DRAWTYPE = "effect";
var __DEF_ASSET = "";
var __LIFE_SPAN = 4;
var __ROTATION_RATE = 60;
}
Symbol 1599 MovieClip [__Packages.nick.eltigre.mcm.ents.Projectile] Frame 0
class nick.eltigre.mcm.ents.Projectile extends nick.eltigre.mcm.ents.Entity
{
var isDangerous, isDrawn, mc, x, velocity, y, doRemove, hdReg;
function Projectile (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
isDangerous = true;
}
function hitReact(pSource) {
isDangerous = false;
}
function updateAndRender(dt) {
if (isDrawn && (mc._currentFrame == mc._totalFrames)) {
requestErase();
return(undefined);
}
x = x + (velocity.x * dt);
y = y + (velocity.y * dt);
super.updateAndRender(dt);
}
function requestErase() {
doRemove = true;
super.requestErase();
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
var TYPE = "projectile";
var DRAWTYPE = "projectile";
var __DEF_ASSET = "";
var __USES_VELOCITY = true;
}
Symbol 1600 MovieClip [__Packages.nick.eltigre.mcm.ents.projectiles.KickAttack] Frame 0
class nick.eltigre.mcm.ents.projectiles.KickAttack extends nick.eltigre.mcm.ents.Projectile
{
var damage, force, velocity, mc, hdReg;
function KickAttack (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
damage = 1;
force = 70;
if (pData.left) {
velocity = new smashing.Point3D(-__FLIGHT_SPEED, 0, 0);
} else {
velocity = new smashing.Point3D(__FLIGHT_SPEED, 0, 0);
}
}
function updateAndRender(dt) {
super.updateAndRender(dt);
if (velocity.x > 0) {
velocity.x = velocity.x - (__DECCEL * dt);
if (velocity.x < 0) {
velocity.x = 0;
}
} else {
velocity.x = velocity.x + (__DECCEL * dt);
if (velocity.x > 0) {
velocity.x = 0;
}
}
}
function onDraw(tNewMC) {
super.onDraw(tNewMC);
if (velocity.x > 0) {
mc._xscale = -100;
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = -20;
}
var __DEF_ASSET = "projectile_kickAttack";
var __DEF_WIDTH = 52;
var __DEF_HEIGHT = 47;
var __DEF_HD_WIDTH = 36;
var __DEF_HD_HEIGHT = 40;
var __FLIGHT_SPEED = 400;
var __DECCEL = 700;
}
Symbol 1601 MovieClip [__Packages.nick.eltigre.mcm.ents.projectiles.Sombrero] Frame 0
class nick.eltigre.mcm.ents.projectiles.Sombrero extends nick.eltigre.mcm.ents.Projectile
{
var y, damage, force, velocity, __player, __doTrack, __dist, x, isDrawn, requestErase, doRemove, hdReg;
function Sombrero (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
y = y - 20;
damage = 1;
force = 100;
if (pData.left) {
velocity = new smashing.Point3D(-__FLIGHT_SPEED, 0, 0);
} else {
velocity = new smashing.Point3D(__FLIGHT_SPEED, 0, 0);
}
__player = pData.player;
__doTrack = false;
__dist = 0;
}
function updateAndRender(dt) {
if (__doTrack) {
velocity = new smashing.Point3D(__player.x - x, (__player.y - y) - 20, 0);
velocity.__set__length(__FLIGHT_SPEED);
__dist = __dist - Math.abs(velocity.x * dt);
} else {
__dist = __dist + Math.abs(velocity.x * dt);
if (__dist > __MAX_DIST) {
if (velocity.x > 0) {
velocity.x = velocity.x - (__DECCEL * dt);
if (velocity.x <= 0) {
__doTrack = true;
}
} else {
velocity.x = velocity.x + (__DECCEL * dt);
if (velocity.x >= 0) {
__doTrack = true;
}
}
}
}
super.updateAndRender(dt);
if ((__dist <= 0) || (__doTrack && (Math.abs(x - __player.x) < 50))) {
smashing.rampage.Messenger.sendMessage("world", "onSombreroCaught");
if (isDrawn) {
requestErase();
} else {
doRemove = true;
}
}
}
function hitReact(pSource) {
super.hitReact();
if (!__doTrack) {
__doTrack = true;
velocity.x = 0;
}
}
function setHDRegistration() {
hdReg = {};
hdReg.x = 0;
hdReg.y = 0;
}
var __DEF_ASSET = "projectile_sombrero";
var __DEF_WIDTH = 60;
var __DEF_HEIGHT = 30;
var __DEF_HD_WIDTH = 52;
var __DEF_HD_HEIGHT = 30;
var __FLIGHT_SPEED = 780;
var __DECCEL = 1900;
var __MAX_DIST = 100;
var CUSTOMDRAW = true;
}
Symbol 1602 MovieClip [__Packages.nick.eltigre.mcm.ents.Scenery] Frame 0
class nick.eltigre.mcm.ents.Scenery extends nick.eltigre.mcm.ents.Entity
{
var expanseID, isDrawn, __flaggedForRemoval, doRemove, mc;
function Scenery (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
expanseID = pData.id;
}
function flagForRemoval() {
if (isDrawn) {
__flaggedForRemoval = true;
} else {
doRemove = true;
}
}
function onDraw(tNewMC) {
super.onDraw(tNewMC);
mc.cacheAsBitmap = true;
var _local4 = new flash.filters.BlurFilter(2, 2, 1);
var _local3 = [];
_local3.push(_local4);
mc.filters = _local3;
}
function onErase() {
super.onErase();
if (__flaggedForRemoval) {
doRemove = true;
}
}
var TYPE = "scenery";
var DRAWTYPE = "scenery";
var __DEF_WIDTH = 400;
var __DEF_HEIGHT = 400;
}
Symbol 1603 MovieClip [__Packages.nick.eltigre.mcm.ents.Lava] Frame 0
class nick.eltigre.mcm.ents.Lava extends nick.eltigre.mcm.ents.Entity
{
var __targetY, y, __riseRate, __raceRate, __prevRise, __lastX, __camera, __offsetX, top, x, mc;
function Lava (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
__targetY = y - 50;
__riseRate = 5;
__raceRate = 50;
__prevRise = __riseRate;
__lastX = __camera.x;
__offsetX = 0;
top = y + __ASSET_TOP_OFFSET;
}
function levelUp() {
__riseRate = __riseRate + 1.8;
__raceRate = __raceRate + 9;
}
function lockTo(pY) {
__prevRise = __riseRate;
__riseRate = 0;
__targetY = pY;
}
function releaseLock() {
if (__riseRate != 0) {
return(undefined);
}
__riseRate = __prevRise;
}
function updateAndRender(dt) {
__offsetX = __offsetX + (__lastX - __camera.x);
if (__offsetX < (-__ASSET_WIDTH)) {
__offsetX = __offsetX + (__ASSET_WIDTH * 2);
} else if (__offsetX > __ASSET_WIDTH) {
__offsetX = __offsetX - (__ASSET_WIDTH * 2);
}
x = __camera.x + __offsetX;
super.render(dt);
__lastX = __camera.x;
}
function rise(dt) {
__targetY = __targetY - (__riseRate * dt);
if (__targetY < y) {
y = y - (__raceRate * dt);
if (y < __targetY) {
y = __targetY;
}
}
top = y + __ASSET_TOP_OFFSET;
}
function catchUp(pY) {
__targetY = pY + 160;
}
function runHD(pEnt) {
if (pEnt.y > top) {
return(true);
}
return(false);
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc.cacheAsBitmap = true;
}
var TYPE = "lava";
var DRAWTYPE = "lava";
var __DEF_ASSET = "lava_mc";
var CUSTOMDRAW = true;
var DAMAGE = 5;
var __ASSET_TOP_OFFSET = -77;
var __ASSET_WIDTH = 300;
}
Symbol 1604 MovieClip [__Packages.nick.eltigre.mcm.ents.Ceiling] Frame 0
class nick.eltigre.mcm.ents.Ceiling
{
var y, __targetY, __riseRate, __raceRate;
function Ceiling (pData) {
init(pData);
}
function init(pData) {
y = pData.y;
__targetY = y - 50;
__riseRate = 39;
__raceRate = 50;
}
function levelUp() {
}
function update(dt) {
}
function rise(dt, pCamera) {
y = y + (__riseRate * dt);
}
function catchUp(pY) {
__targetY = pY - 160;
}
function runHD(pEnt) {
if (pEnt.y < y) {
return(true);
}
return(false);
}
var TYPE = "ceiling";
var DRAWTYPE = "";
var __DEF_ASSET = "_empty";
}
Symbol 1605 MovieClip [__Packages.nick.eltigre.mcm.libraries.base.PlatformLibrary] Frame 0
class nick.eltigre.mcm.libraries.base.PlatformLibrary
{
function PlatformLibrary () {
}
static function createPlatform(pType, pData) {
switch (pType) {
case "basic" :
return(new nick.eltigre.mcm.ents.platforms.Basic(pData));
case "wobbly" :
return(new nick.eltigre.mcm.ents.platforms.Wobbly(pData));
case "wanderer" :
case "horizontal" :
return(new nick.eltigre.mcm.ents.platforms.WandererHorizontal(pData));
case "vertical" :
return(new nick.eltigre.mcm.ents.platforms.WandererVertical(pData));
case "crumbly" :
return(new nick.eltigre.mcm.ents.platforms.Crumbly(pData));
case "seesaw" :
return(new nick.eltigre.mcm.ents.platforms.SeeSaw(pData));
case "invis" :
return(new nick.eltigre.mcm.ents.platforms.Invis(pData));
}
}
}
Symbol 1606 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.Basic] Frame 0
class nick.eltigre.mcm.ents.platforms.Basic extends nick.eltigre.mcm.ents.platforms.Platform
{
var baseWidth, assetID, __slopeAngle, rotateSurfaces, baseHeight, addSurface, platHalfWidth, x, y, mc;
function Basic (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
var _local3;
if (baseWidth < 100) {
_local3 = __NARROWASSETS;
} else {
_local3 = __WIDEASSETS;
}
var _local4 = Math.floor(Math.random() * _local3.length);
if (_local4 == _local3.length) {
_local4--;
}
assetID = _local3[_local4];
if (pData.sky == true) {
assetID = assetID + "_sky";
}
if (pData.angle == undefined) {
__slopeAngle = 0;
} else {
__slopeAngle = pData.angle;
rotateSurfaces(__slopeAngle);
}
if (Math.abs(__slopeAngle) > 20) {
baseHeight = baseHeight * 2;
}
}
function generateSurfaces() {
addSurface(new smashing.Point3D(x - platHalfWidth, y, 0), new smashing.Point3D(x + platHalfWidth, y, 0), "top");
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc._rotation = __slopeAngle;
mc.cacheAsBitmap = true;
}
var __WIDEASSETS = ["plat_03", "plat_03b", "plat_04"];
var __NARROWASSETS = ["plat_01", "plat_06", "plat_07"];
}
Symbol 1607 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.Wobbly] Frame 0
class nick.eltigre.mcm.ents.platforms.Wobbly extends nick.eltigre.mcm.ents.platforms.Platform
{
var baseHeight, baseWidth, assetID, __slopeAngle, __slopeDir, __slopeChanges, __defSlope, rotateSurfaces, platWidth, mc, addSurface, platHalfWidth, x, y;
function Wobbly (pData) {
super(pData);
}
function init(pData) {
pData.sky = true;
super.init(pData);
baseHeight = 80;
var _local3;
if (baseWidth < 100) {
_local3 = __NARROWASSETS;
} else {
_local3 = __WIDEASSETS;
}
var _local4 = Math.floor(Math.random() * _local3.length);
if (_local4 == _local3.length) {
_local4--;
}
assetID = _local3[_local4] + "_sky";
__slopeAngle = 0;
__slopeDir = 1;
__slopeChanges = 0;
if (pData.angle == undefined) {
__defSlope = 0;
} else {
__defSlope = pData.angle;
rotateSurfaces(__defSlope);
}
}
function update(dt) {
super.update(dt);
__slopeAngle = __slopeAngle + ((((Math.random() * 110) / (1 + (platWidth / 400))) * dt) * __slopeDir);
rotateSurfaces(__slopeAngle);
mc._rotation = __slopeAngle;
__slopeChanges++;
if (__slopeChanges > 1) {
__slopeDir = __slopeDir * -1;
__slopeChanges = 0;
__slopeAngle = __defSlope;
}
}
function generateSurfaces() {
addSurface(new smashing.Point3D(x - platHalfWidth, y, 0), new smashing.Point3D(x + platHalfWidth, y, 0), "top");
}
var IS_HANGABLE = true;
var __CACHE_AS_BITMAP = false;
var __WIDEASSETS = ["plat_03", "plat_03b", "plat_04"];
var __NARROWASSETS = ["plat_01", "plat_06"];
}
Symbol 1608 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.Wanderer] Frame 0
class nick.eltigre.mcm.ents.platforms.Wanderer extends nick.eltigre.mcm.ents.platforms.Platform
{
var __movementSpeed, __movementDistance, assetID, __slopeAngle, rotateSurfaces, __moved, __movementDir, __dp, addSurface, platHalfWidth, x, y, mc;
function Wanderer (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
if (pData.speed == undefined) {
__movementSpeed = __DEFAULT_MOVE_SPEED;
} else {
__movementSpeed = pData.speed;
}
if (pData.dist == undefined) {
__movementDistance = __DEFAULT_MOVE_DIST;
} else {
__movementDistance = pData.dist;
}
var _local4 = Math.floor(Math.random() * __ASSETS.length);
if (_local4 == __ASSETS.length) {
_local4--;
}
assetID = __ASSETS[_local4];
if (pData.sky == true) {
assetID = assetID + "_sky";
}
if (pData.angle == undefined) {
__slopeAngle = 0;
} else {
__slopeAngle = pData.angle;
rotateSurfaces(__slopeAngle);
}
__moved = 0;
__movementDir = 1;
}
function updateWander(dt) {
__dp = (__movementSpeed * dt) * __movementDir;
if ((__moved + Math.abs(__dp)) >= __movementDistance) {
__dp = __movementDistance - __moved;
__moved = __moved + Math.abs(__dp);
__movementDir = __movementDir * -1;
__moved = 0;
} else {
__moved = __moved + Math.abs(__dp);
}
}
function generateSurfaces() {
addSurface(new smashing.Point3D(x - platHalfWidth, y, 0), new smashing.Point3D(x + platHalfWidth, y, 0), "top");
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc._rotation = __slopeAngle;
mc.cacheAsBitmap = true;
}
var __DEFAULT_MOVE_SPEED = 44;
var __DEFAULT_MOVE_DIST = 150;
var __ASSETS = ["plat_03", "plat_03b"];
}
Symbol 1609 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.WandererHorizontal] Frame 0
class nick.eltigre.mcm.ents.platforms.WandererHorizontal extends nick.eltigre.mcm.ents.platforms.Wanderer
{
var updateWander, x, __dp, translateSurfaces, y;
function WandererHorizontal (pData) {
super(pData);
}
function update(dt) {
updateWander(dt);
x = x + __dp;
translateSurfaces(x, y);
super.update(dt);
}
}
Symbol 1610 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.WandererVertical] Frame 0
class nick.eltigre.mcm.ents.platforms.WandererVertical extends nick.eltigre.mcm.ents.platforms.Wanderer
{
var updateWander, y, __dp, translateSurfaces, x, addSurface, platHalfWidth;
function WandererVertical (pData) {
super(pData);
}
function update(dt) {
updateWander(dt);
y = y + __dp;
translateSurfaces(x, y);
super.update(dt);
}
function generateSurfaces() {
addSurface(new smashing.Point3D(x - platHalfWidth, y + 5, 0), new smashing.Point3D(x + platHalfWidth, y + 5, 0), "top");
}
}
Symbol 1611 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.Crumbly] Frame 0
class nick.eltigre.mcm.ents.platforms.Crumbly extends nick.eltigre.mcm.ents.platforms.Platform
{
var assetID, __isCrumbling, __surfaces, clearSurfaces, addSurface, platHalfWidth, x, y, __hasSurface, mc;
function Crumbly (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
assetID = "plat_02";
if (pData.sky == true) {
assetID = assetID + "_sky";
}
__isCrumbling = false;
}
function generateSurfaces() {
if (__surfaces.length > 0) {
clearSurfaces();
}
addSurface(new smashing.Point3D(x - platHalfWidth, y, 0), new smashing.Point3D(x + platHalfWidth, y, 0), "top");
__hasSurface = true;
}
function onDraw(pNewMC) {
super.onDraw(pNewMC);
mc.cacheAsBitmap = true;
}
function onPlayerTouch() {
super.onPlayerTouch();
if (__isCrumbling) {
return(undefined);
}
startCrumble();
}
function update(dt) {
super.update(dt);
if (__isCrumbling) {
if (__hasSurface) {
if (mc._currentFrame >= __CRUMBLED_FRAME) {
__hasSurface = false;
clearSurfaces();
}
} else if ((mc._currentFrame == 1) || (mc._currentFrame > 61)) {
endCrumble();
generateSurfaces();
}
}
}
function onErase() {
if (__isCrumbling) {
endCrumble();
}
super.onErase();
if (!__hasSurface) {
generateSurfaces();
}
}
function startCrumble() {
__isCrumbling = true;
mc.cacheAsBitmap = false;
mc.gotoAndPlay("crumble");
}
function endCrumble() {
__isCrumbling = false;
mc.gotoAndStop("idle");
}
function getHasSurface() {
return(__hasSurface);
}
var __CACHE_AS_BITMAP = false;
var __CRUMBLED_FRAME = 38;
}
Symbol 1612 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.SeeSaw] Frame 0
class nick.eltigre.mcm.ents.platforms.SeeSaw extends nick.eltigre.mcm.ents.platforms.Platform
{
var assetID, __slopeAngle, __slopeDir, __dt, __hasPressure, __i, __surfaces, __pressureTimer, rotateSurfaces, mc, addSurface, platHalfWidth, x, y;
function SeeSaw (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
assetID = "plat_08";
if (pData.sky == true) {
assetID = assetID + "_sky";
}
__slopeAngle = 0;
__slopeDir = 1;
}
function update(dt) {
super.update(dt);
__dt = dt;
__hasPressure = false;
__i = __surfaces.length;
while (__i--) {
applyPressure(__surfaces[__i].getEntityPressure());
}
if (__hasPressure) {
__pressureTimer = __PRESSURE_TIMER_DEF;
} else {
__pressureTimer = __pressureTimer - dt;
if (__pressureTimer <= 0) {
if (__slopeAngle <= 180) {
__slopeAngle = __slopeAngle - (__RIGHT_RATE * dt);
if (__slopeAngle < 0) {
__slopeAngle = 0;
}
} else if (__slopeAngle > 180) {
__slopeAngle = __slopeAngle + (__RIGHT_RATE * dt);
if (__slopeAngle > 360) {
__slopeAngle = 0;
}
}
}
}
rotateSurfaces(__slopeAngle);
mc._rotation = __slopeAngle;
}
function applyPressure(pData) {
if (pData.result != true) {
return(undefined);
}
if (pData.left) {
__slopeAngle = __slopeAngle - (pData.mag * __dt);
} else {
__slopeAngle = __slopeAngle + (pData.mag * __dt);
}
if (pData.mag > 5) {
__hasPressure = true;
}
if (__slopeAngle > 360) {
__slopeAngle = __slopeAngle - 360;
} else if (__slopeAngle < 0) {
__slopeAngle = __slopeAngle + 360;
}
}
function generateSurfaces() {
addSurface(new smashing.Point3D(x - platHalfWidth, y, 0), new smashing.Point3D(x + platHalfWidth, y, 0), "top");
}
var IS_HANGABLE = true;
var __CACHE_AS_BITMAP = false;
var __RIGHT_RATE = 40;
var __PRESSURE_TIMER_DEF = 0.5;
}
Symbol 1613 MovieClip [__Packages.nick.eltigre.mcm.ents.platforms.Invis] Frame 0
class nick.eltigre.mcm.ents.platforms.Invis extends nick.eltigre.mcm.ents.platforms.Platform
{
var assetID, __slopeAngle, rotateSurfaces, addSurface, platHalfWidth, x, y;
function Invis (pData) {
super(pData);
}
function init(pData) {
super.init(pData);
assetID = "_empty";
if (pData.angle == undefined) {
__slopeAngle = 0;
} else {
__slopeAngle = pData.angle;
rotateSurfaces(__slopeAngle);
}
}
function generateSurfaces() {
addSurface(new smashing.Point3D(x - platHalfWidth, y, 0), new smashing.Point3D(x + platHalfWidth, y, 0), "top");
}
var IS_HANGABLE = false;
}
Symbol 1614 MovieClip [__Packages.nick.eltigre.mcm.ui.UI] Frame 0
class nick.eltigre.mcm.ui.UI
{
static var __instance;
var engine, __nextScreenID, __hasActiveScreen, __doesActiveScreenUpdate, __activeScreen, __previousScreenID, __activeScreenID;
function UI () {
}
static function init() {
__instance = new nick.eltigre.mcm.ui.UI();
}
static function getInstance() {
return(__instance);
}
function linkEngine(t_engine) {
engine = t_engine;
smashing.rampage.Messenger.registerAddress("ui", this);
}
function reset() {
__nextScreenID = "";
__hasActiveScreen = false;
__doesActiveScreenUpdate = false;
}
function update(dt) {
if (__doesActiveScreenUpdate) {
__activeScreen.update(dt);
}
}
function returnToPreviousScreen() {
__nextScreenID = __previousScreenID;
__activeScreen.close();
}
function goScreen(id) {
if (__hasActiveScreen) {
__nextScreenID = id;
__activeScreen.close();
} else {
openScreen(id);
}
}
function openScreen(id) {
if (id == undefined) {
id = __nextScreenID;
}
if (id == "") {
return(undefined);
}
__nextScreenID = "";
__previousScreenID = __activeScreenID;
__activeScreenID = id;
engine.gotoAndStop(__activeScreenID);
switch (__activeScreenID) {
case "splash" :
__activeScreen = new nick.eltigre.mcm.ui.Splash(engine.screen_mc, this);
break;
case "gameplay" :
__activeScreen = new nick.eltigre.mcm.ui.GamePlay(engine.screen_mc, this);
break;
case "intro" :
__activeScreen = new nick.eltigre.mcm.ui.Intro(engine.screen_mc, this, false);
break;
case "partner" :
__activeScreen = new nick.eltigre.mcm.ui.Intro(engine.screen_mc, this, true);
break;
case "helpIntro" :
__activeScreen = new nick.eltigre.mcm.ui.HelpIntro(engine.screen_mc, this);
break;
case "helpGameplay" :
__activeScreen = new nick.eltigre.mcm.ui.HelpGameplay(engine.screen_mc, this);
break;
case "lose" :
__activeScreen = new nick.eltigre.mcm.ui.Lose(engine.screen_mc, this);
break;
case "win" :
__activeScreen = new nick.eltigre.mcm.ui.Win(engine.screen_mc, this);
break;
case "eruption" :
__activeScreen = new nick.eltigre.mcm.ui.Eruption(engine.screen_mc, this);
break;
case "highscore" :
__activeScreen = new nick.eltigre.mcm.ui.Highscores(engine.highscore_mc, this);
break;
default :
return(undefined);
}
smashing.rampage.Messenger.registerAddress("screen", __activeScreen);
__activeScreen.init();
__activeScreen.open();
__hasActiveScreen = true;
__doesActiveScreenUpdate = __activeScreen.DOES_UPDATE;
}
function onScreenClosed() {
if (__nextScreenID != "") {
openScreen(__nextScreenID);
}
}
function goScreenRemote(t_data) {
if (t_data.screen == undefined) {
return(undefined);
}
goScreen(t_data.screen);
}
function onMessageReceived(message, args) {
this[message](args);
}
function get currentScreenID() {
return(__activeScreenID);
}
}
Symbol 1615 MovieClip [__Packages.nick.eltigre.mcm.ui.Screen] Frame 0
class nick.eltigre.mcm.ui.Screen
{
var __mc, ui, __outroCallbackID, __outroCallbackPath, __isOpening, __isClosing, __isClosed, __outroCallbackArgs;
function Screen (mc, t_ui) {
__mc = mc;
ui = t_ui;
__outroCallbackID = (__outroCallbackPath = "");
}
function update(dt) {
if (__isOpening) {
if (__mc._currentFrame >= __OPENED_FRAME) {
onOpened();
}
} else if (__isClosing) {
if (__mc._currentFrame == __mc._totalFrames) {
onClosed();
}
}
}
function init() {
__isOpening = (__isClosing = false);
__isClosed = true;
}
function open() {
__isClosed = false;
if (__HAS_INTRO) {
__isOpening = true;
__mc.gotoAndPlay(__INTRO_FRAME);
} else {
onOpened();
}
}
function onOpened() {
__isOpening = false;
__mc.gotoAndStop(__OPENED_FRAME);
}
function close() {
if (__isClosed) {
ui.onScreenClosed();
return(undefined);
}
if (__HAS_OUTRO) {
__isClosing = true;
__mc.gotoAndPlay(__OUTRO_FRAME);
} else {
onClosed();
}
}
function onClosed() {
__isClosing = false;
__isClosed = true;
if (__outroCallbackID != "") {
smashing.rampage.Messenger.sendMessage(__outroCallbackPath, __outroCallbackID, __outroCallbackArgs);
__outroCallbackID = (__outroCallbackPath = "");
} else {
ui.onScreenClosed();
}
}
function closeThenCallback(callbackPath, callbackID, callbackArgs) {
__outroCallbackPath = callbackPath;
__outroCallbackID = callbackID;
__outroCallbackArgs = callbackArgs;
close();
}
function makeButton(mc) {
mc.screen = this;
}
function onMessageReceived(message, args) {
this[message](args);
}
function toString() {
return("Screen");
}
var __INTRO_FRAME = "intro";
var __OUTRO_FRAME = "outro";
var __HAS_INTRO = false;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 10;
var DOES_UPDATE = true;
}
Symbol 1616 MovieClip [__Packages.nick.eltigre.mcm.ui.Splash] Frame 0
class nick.eltigre.mcm.ui.Splash extends nick.eltigre.mcm.ui.Screen
{
var __mc;
function Splash (mc, ui) {
super(mc, ui);
}
function onOpened() {
super.onOpened();
nick.eltigre.mcm.Sounds.getInstance().playMusic("menu");
__mc.btn_play.onRelease = function () {
smashing.rampage.Messenger.sendMessage("engine", "onPressSplashPlay");
};
__mc.btn_highscore.onRelease = function () {
smashing.rampage.Messenger.sendMessage("engine", "onPressViewScores");
};
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 5;
}
Symbol 1617 MovieClip [__Packages.nick.eltigre.mcm.ui.GamePlay] Frame 0
class nick.eltigre.mcm.ui.GamePlay extends nick.eltigre.mcm.ui.Screen
{
var __state, __mc;
function GamePlay (mc, ui, fromHelpScreen) {
super(mc, ui);
__state = nick.eltigre.mcm.GameState.getInstance();
}
function onOpened() {
super.onOpened();
update(0, true);
__mc.btn_menu.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressMenu");
};
if (__state.hasBurro) {
__mc.burro_mc.gotoAndStop(1);
} else {
__mc.burro_mc.gotoAndStop(__mc.burro_mc._totalFrames);
}
__mc.cutscene_mc.gotoAndStop("hidden");
__mc.dialog1_mc.gotoAndStop("hidden");
__mc.dialog2_mc.gotoAndStop("hidden");
}
function onPressMenu() {
smashing.rampage.Messenger.sendMessage("engine", "pauseForMenu");
__mc.menu_mc.gotoAndPlay("intro");
generateMenu();
}
function generateMenu() {
__mc.menu_mc.options_mc.btn_help.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressMenuHelp");
};
__mc.menu_mc.options_mc.btn_resume.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressMenuResume");
};
__mc.menu_mc.options_mc.btn_quit.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressMenuQuit");
};
__mc.menu_mc.options_mc.music_mc.gotoAndStop((nick.eltigre.mcm.Sounds.getInstance().muteMusic ? "off" : "on"));
__mc.menu_mc.options_mc.music_mc.btn_music.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressMenuMusic");
};
}
function onPressMenuHelp() {
smashing.rampage.Messenger.sendMessage("engine", "goInGameHelp");
}
function onPressMenuMusic() {
nick.eltigre.mcm.Sounds.getInstance().toggleMusic();
__mc.menu_mc.options_mc.music_mc.gotoAndStop((nick.eltigre.mcm.Sounds.getInstance().muteMusic ? "off" : "on"));
__mc.menu_mc.options_mc.music_mc.btn_music.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressMenuMusic");
};
}
function onPressMenuResume() {
__mc.menu_mc.gotoAndPlay("outro");
}
function onMenuOutroComplete() {
smashing.rampage.Messenger.sendMessage("engine", "unpauseForMenu");
__mc.menu_mc.gotoAndStop("off");
}
function onPressMenuQuit() {
__mc.menu_mc.gotoAndPlay("quit_confirm");
__mc.menu_mc.quit_mc.no_btn.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressQuitNo");
};
__mc.menu_mc.quit_mc.yes_btn.onRelease = function () {
smashing.rampage.Messenger.sendMessage("screen", "onPressQuitYes");
};
}
function onPressQuitNo() {
__mc.menu_mc.gotoAndPlay("go_back");
generateMenu();
}
function onPressQuitYes() {
smashing.rampage.Messenger.sendMessage("engine", "onGoGameOver");
}
function update(dt, forceUpdate) {
if (__state.hasChanged || (forceUpdate == true)) {
__mc.txt_score.text = __state.score;
__mc.coins_mc.gotoAndStop(101 - (__state.coins * 4));
}
}
function onLoseBurro() {
__mc.burro_mc.gotoAndPlay(2);
}
function onRegainBurro() {
__mc.burro_mc.gotoAndStop(1);
}
function showCutscene() {
__mc.cutscene_mc.gotoAndPlay("in");
}
function hideCutscene() {
__mc.cutscene_mc.gotoAndPlay("out");
}
function showDialog(pData) {
var _local2 = __mc[("dialog" + __state.partner) + "_mc"];
_local2.speechFrame = pData.frame;
if (_local2._currentFrame > 10) {
_local2.gotoAndPlay("in");
} else {
_local2.gotoAndStop("idle");
}
}
var DOES_UPDATE = true;
}
Symbol 1618 MovieClip [__Packages.nick.eltigre.mcm.ui.Intro] Frame 0
class nick.eltigre.mcm.ui.Intro extends nick.eltigre.mcm.ui.Screen
{
var __mc;
function Intro (mc, ui, pSkip) {
super(mc, ui);
if (pSkip) {
mc.gotoAndStop(mc._totalFrames);
}
}
function onOpened() {
super.onOpened();
__mc.choose_mc.btn_puma.onRelease = function () {
smashing.rampage.Messenger.sendMessage("engine", "onSelectPartner", {num:2});
};
__mc.choose_mc.btn_pantera.onRelease = function () {
smashing.rampage.Messenger.sendMessage("engine", "onSelectPartner", {num:1});
};
}
function onPressSkip() {
onOpened();
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 51;
}
Symbol 1619 MovieClip [__Packages.nick.eltigre.mcm.ui.HelpIntro] Frame 0
class nick.eltigre.mcm.ui.HelpIntro extends nick.eltigre.mcm.ui.Screen
{
var __isOpening, __mc;
function HelpIntro (mc, ui) {
super(mc, ui);
}
function onOpened() {
__isOpening = false;
__mc.help_mc.attack_mc.gotoAndStop(((nick.eltigre.mcm.GameState.getInstance().partner == 1) ? "boots" : "sombrero"));
}
function onPressGo() {
smashing.rampage.Messenger.sendMessage("engine", "startGame");
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 23;
}
Symbol 1620 MovieClip [__Packages.nick.eltigre.mcm.ui.HelpGameplay] Frame 0
class nick.eltigre.mcm.ui.HelpGameplay extends nick.eltigre.mcm.ui.Screen
{
var __isOpening, __mc;
function HelpGameplay (mc, ui) {
super(mc, ui);
}
function onOpened() {
__isOpening = false;
__mc.help_mc.attack_mc.gotoAndStop(((nick.eltigre.mcm.GameState.getInstance().partner == 1) ? "boots" : "sombrero"));
}
function onPressGo() {
smashing.rampage.Messenger.sendMessage("engine", "closeGameHelp");
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 23;
}
Symbol 1621 MovieClip [__Packages.nick.eltigre.mcm.ui.Lose] Frame 0
class nick.eltigre.mcm.ui.Lose extends nick.eltigre.mcm.ui.Screen
{
var __isOpening, __mc;
function Lose (mc, ui) {
super(mc, ui);
nick.eltigre.mcm.Sounds.getInstance().playMusic("menu");
}
function onOpened() {
__isOpening = false;
__mc.txt_score.text = nick.eltigre.mcm.GameState.getInstance().score;
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 28;
}
Symbol 1622 MovieClip [__Packages.nick.eltigre.mcm.ui.Win] Frame 0
class nick.eltigre.mcm.ui.Win extends nick.eltigre.mcm.ui.Screen
{
var __isOpening, __mc;
function Win (mc, ui) {
super(mc, ui);
nick.eltigre.mcm.Sounds.getInstance().playMusic("menu");
}
function onOpened() {
__isOpening = false;
__mc.txt_score.text = nick.eltigre.mcm.GameState.getInstance().score;
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 42;
}
Symbol 1623 MovieClip [__Packages.nick.eltigre.mcm.ui.Eruption] Frame 0
class nick.eltigre.mcm.ui.Eruption extends nick.eltigre.mcm.ui.Screen
{
function Eruption (mc, ui) {
super(mc, ui);
}
function open() {
super.open();
nick.eltigre.mcm.Sounds.getInstance().playMusic("sky");
}
function onOpened() {
smashing.rampage.Messenger.sendMessage("engine", "onEruptionComplete");
}
var __HAS_INTRO = true;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 86;
}
Symbol 1624 MovieClip [__Packages.nick.eltigre.mcm.ui.Highscores] Frame 0
class nick.eltigre.mcm.ui.Highscores extends nick.eltigre.mcm.ui.Screen
{
var __isClosed, __isOpening;
function Highscores (mc, ui) {
super(mc, ui);
}
function open() {
__isClosed = false;
__isOpening = false;
}
function onOpened() {
}
var __HAS_INTRO = false;
var __HAS_OUTRO = false;
var __OPENED_FRAME = 1;
}
Symbol 1625 MovieClip [__Packages.nick.eltigre.mcm.WorldVolcano] Frame 0
class nick.eltigre.mcm.WorldVolcano extends nick.eltigre.mcm.World
{
var __gravity, onPlayerTakeDamage, __lava, update, updateDeathEvent, __eruptTimer, __camera, __player, __eventStep, __eventBurro, __i, __platforms, obj, __pickups, __effects, __scroller, __activeEvent, __eventOso, __renderArray, resolvePlayerEntityCollision, onAdvanceEvent, __entitys, __spawnBubbles, __bubbleTimer, __spawnGeysers, __geyserTimer, __doUpdateProjectiles, __friendlyProjectiles, __c, __scenery, clear, __expanseLibrary, __connectorLibrary, __state, generateBurro, __expanseCount, generatePlatform, __endPlatform, __expanseCleaningStep, generateConnector, __currentExpanseID;
function WorldVolcano () {
super();
}
function init(pData) {
super.init(pData);
__gravity = new smashing.Point3D(0, 390, 0);
}
function resolvePlayerLavaCollision() {
onPlayerTakeDamage(__lava);
}
function start() {
onBeginEvent("intro");
}
function callEventRemote(pData) {
onBeginEvent(pData.event);
}
function onBeginEvent(pEvent) {
super.onBeginEvent(pEvent);
switch (pEvent) {
case "death" :
update = updateDeathEvent;
break;
case "erupt" :
nick.eltigre.mcm.Sounds.getInstance().stopMusic();
nick.eltigre.mcm.Sounds.getInstance().p("shake");
update = updateEruptEvent;
__eruptTimer = 3;
smashing.rampage.Messenger.sendMessage("screen", "showCutscene");
__camera.goShakeMode();
break;
case "intro" :
update = updateIntro;
smashing.rampage.Messenger.sendMessage("screen", "showCutscene");
break;
case "oso" :
update = updateOso;
var _local3 = __player.getCurrentPlatform();
__camera.lockTo(_local3.x, _local3.y - 100);
__lava.lockTo(_local3.y + 110);
nick.eltigre.mcm.Sounds.getInstance().playMusic("boss");
smashing.rampage.Messenger.sendMessage("screen", "showCutscene");
break;
case "osodead" :
__camera.releaseLock();
__lava.releaseLock();
nick.eltigre.mcm.Sounds.getInstance().playMusic("gameplay");
onCompleteEvent();
}
}
function updateEruptEvent(dt) {
if (dt > 0.2) {
dt = 0.2;
}
__eruptTimer = __eruptTimer - dt;
if (__eruptTimer < 0) {
smashing.rampage.Messenger.sendMessage("engine", "onErupt");
return(undefined);
}
__player.updateForErupt(dt, __eventStep, __eventBurro);
__i = __platforms.length;
while (__i--) {
obj = __platforms[__i];
__player.runPlatformHD(__platforms[__i]);
obj.update(dt);
if (obj.doRemove) {
__platforms.splice(__i, 1);
} else {
obj.render(dt);
}
}
__player.move(dt);
__camera.update(dt, __player, __lava);
__player.render(dt);
__i = __pickups.length;
while (__i--) {
obj = __pickups[__i];
if (obj.doRemove) {
__pickups.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__i = __effects.length;
while (__i--) {
obj = __effects[__i];
if (obj.doRemove) {
__effects.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__scroller.updateAndRender(dt);
}
function onCompleteEvent() {
switch (__activeEvent) {
case "intro" :
smashing.rampage.Messenger.sendMessage("screen", "hideCutscene");
smashing.rampage.Messenger.sendMessage("screen", "showDialog", {frame:"intro"});
__camera.goTrackMode();
break;
case "oso" :
smashing.rampage.Messenger.sendMessage("screen", "hideCutscene");
__eventOso.onBattleBegin();
}
super.onCompleteEvent();
}
function updateIntro(dt) {
if (dt > 0.2) {
dt = 0.2;
}
__lava.updateAndRender(dt);
__player.updateForIntro(dt, __eventStep, __eventBurro);
__renderArray = [];
__i = __platforms.length;
while (__i--) {
obj = __platforms[__i];
__player.runPlatformHD(__platforms[__i]);
obj.update(dt);
if (obj.doRemove) {
__platforms.splice(__i, 1);
} else if (obj.doRender) {
__renderArray.push(obj);
}
}
__player.move(dt);
__camera.update(dt, __player, __lava);
__player.render(dt);
__i = __renderArray.length;
while (__i--) {
__renderArray[__i].render(dt);
}
__i = __pickups.length;
while (__i--) {
obj = __pickups[__i];
if (obj.runHD(__player, dt)) {
resolvePlayerEntityCollision(obj);
onAdvanceEvent();
}
if (obj.doRemove) {
__pickups.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__i = __effects.length;
while (__i--) {
obj = __effects[__i];
if (obj.doRemove) {
__effects.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__scroller.updateAndRender(dt);
}
function updateOso(dt) {
if (dt > 0.2) {
dt = 0.2;
}
__camera.update(dt, __player, __lava);
__lava.updateAndRender(dt);
__player.updateForOso(dt, __eventStep);
__i = __platforms.length;
while (__i--) {
obj = __platforms[__i];
__player.runPlatformHD(__platforms[__i]);
obj.update(dt);
if (obj.doRemove) {
__platforms.splice(__i, 1);
} else {
obj.render(dt);
}
}
__i = __entitys.length;
while (__i--) {
obj = __entitys[__i];
if (obj == __eventOso) {
__eventOso.updateForEvent(dt, __eventStep);
obj.move(dt);
obj.render(dt);
} else {
obj.update(dt, __player);
obj.move(dt);
obj.render(dt);
}
if (obj.doRemove) {
__entitys.splice(__i, 1);
}
}
__player.move(dt);
__player.render(dt);
__i = __pickups.length;
while (__i--) {
obj = __pickups[__i];
if (obj.doRemove) {
__pickups.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__i = __effects.length;
while (__i--) {
obj = __effects[__i];
if (obj.doRemove) {
__effects.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__scroller.updateAndRender(dt);
}
function updateGameplay(dt) {
if (dt > 0.2) {
dt = 0.2;
}
__lava.rise(dt);
__player.update(dt);
__renderArray = [];
__i = __platforms.length;
while (__i--) {
obj = __platforms[__i];
obj.update(dt);
__player.runPlatformHD(__platforms[__i]);
if (obj.doRemove) {
__platforms.splice(__i, 1);
} else if (obj.doRender) {
__renderArray.push(obj);
}
}
if (__spawnBubbles) {
__bubbleTimer = __bubbleTimer - dt;
if (__bubbleTimer <= 0) {
resetBubbleTimer();
generateBubble();
}
}
if (__spawnGeysers) {
__geyserTimer = __geyserTimer - dt;
if (__geyserTimer <= 0) {
resetGeyserTimer();
generateGeyser();
}
}
__doUpdateProjectiles = true;
__i = __entitys.length;
if (__i == 0) {
__i = __friendlyProjectiles.length;
while (__i--) {
__friendlyProjectiles[__i].updateAndRender(dt);
if (__friendlyProjectiles[__i].doRemove) {
__friendlyProjectiles.splice(__i, 1);
}
}
} else {
while (__i--) {
obj = __entitys[__i];
obj.update(dt, __player);
if (obj.runHD(__player, dt)) {
resolvePlayerEntityCollision(obj);
}
__c = __friendlyProjectiles.length;
while (__c--) {
if (__doUpdateProjectiles) {
__friendlyProjectiles[__c].updateAndRender(dt);
if (__friendlyProjectiles[__c].doRemove) {
__friendlyProjectiles.splice(__c, 1);
continue;
}
}
if (__friendlyProjectiles[__c].isDangerous == false) {
continue;
}
if (obj.runHD(__friendlyProjectiles[__c], dt)) {
obj.takeDamage(__friendlyProjectiles[__c].damage, __friendlyProjectiles[__c].force, __friendlyProjectiles[__c]);
__friendlyProjectiles[__c].hitReact();
}
}
__doUpdateProjectiles = false;
obj.move(dt);
if (obj.doRender) {
__renderArray.push(obj);
}
if (obj.doRemove) {
__entitys.splice(__i, 1);
}
}
}
if (__lava.runHD(__player)) {
resolvePlayerLavaCollision();
}
__player.move(dt);
__camera.update(dt, __player, __lava);
__player.render(dt);
__lava.updateAndRender(dt);
__i = __renderArray.length;
while (__i--) {
__renderArray[__i].render(dt);
}
__i = __pickups.length;
while (__i--) {
obj = __pickups[__i];
if (obj.runHD(__player, dt)) {
resolvePlayerEntityCollision(obj);
}
if (obj.doRemove) {
__pickups.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__i = __scenery.length;
while (__i--) {
obj = __scenery[__i];
if (obj.doRemove) {
__scenery.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__i = __effects.length;
while (__i--) {
obj = __effects[__i];
if (obj.doRemove) {
__effects.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__scroller.updateAndRender(dt);
}
function generate() {
var _local3 = 300000 /* 0x0493E0 */;
var _local2 = 500000 /* 0x07A120 */;
clear();
__expanseLibrary = new nick.eltigre.mcm.libraries.volcano.ExpanseLibrary();
__connectorLibrary = new nick.eltigre.mcm.libraries.volcano.ConnectorLibrary();
__camera = nick.eltigre.mcm.GameCamera.getInstance();
__camera.generate({x:_local3 + 140, y:_local2 - 2150});
__camera.goIntroMode();
__lava = nick.eltigre.mcm.libraries.base.EntityLibrary.createLava({y:_local2 + 150});
__player = nick.eltigre.mcm.libraries.base.EntityLibrary.createPlayer({x:_local3 + 140, y:_local2 - 2250, partner:__state.partner, gravity:__gravity});
generateBurro({x:_local3 - 120, y:_local2 - 60, settled:true});
__eventBurro = __pickups[__pickups.length - 1];
__scroller = new nick.eltigre.mcm.Scroller({bg:"volc_int_bg"});
__expanseCount = 0;
generatePlatform({x:_local3 + 30, y:_local2 - 50, width:400, id:"base", type:"basic"});
__endPlatform = __platforms[__platforms.length - 1];
nextExpanse();
nextConnector();
__expanseCleaningStep = 0;
}
function onShakeRockPiles() {
var _local2 = __entitys.length;
while (_local2--) {
if ((__entitys[_local2].TYPE == "rockpile") || (__entitys[_local2].TYPE == "deathrock")) {
__entitys[_local2].onShake();
}
}
}
function onDislodgeDeathRock() {
var _local2 = __entitys.length;
while (_local2--) {
if (__entitys[_local2].TYPE == "deathrock") {
__entitys[_local2].onFall();
}
}
}
function onOsoLand(pData) {
onShakeRockPiles();
if (pData.health <= 0) {
onDislodgeDeathRock();
}
}
function onOsoSmoosh(pData) {
var _local2 = __entitys.length;
while (_local2--) {
if (__entitys[_local2].TYPE == "oso") {
__entitys[_local2].changeState("defeat");
}
}
}
function onAnnounceOso(pData) {
__eventOso = pData.oso;
}
function onCheatErupt() {
__expanseCount = 9;
}
function onCheatOso() {
__expanseCount = 6;
}
function nextExpanse() {
super.nextExpanse();
var _local3;
switch (__expanseCount) {
case 0 :
_local3 = "intro";
break;
case 1 :
case 2 :
case 3 :
_local3 = "leftright";
break;
case 4 :
case 5 :
_local3 = "rightleft";
break;
case 6 :
_local3 = "oso";
break;
case 7 :
case 8 :
_local3 = "downup";
break;
case 9 :
_local3 = "erupt";
break;
default :
_local3 = "leftright";
}
generateExpanse(_local3);
}
function nextConnector() {
var _local2;
switch (__expanseCount) {
case 0 :
case 1 :
_local2 = "intro";
break;
case 2 :
case 3 :
_local2 = "leftright";
break;
case 4 :
case 6 :
case 7 :
case 8 :
case 9 :
case 10 :
_local2 = "downup";
break;
case 5 :
_local2 = "rightleft";
break;
default :
_local2 = "leftright";
}
generateConnector(_local2);
}
function generateExpanse(pID) {
var _local3 = super.generateExpanse(pID);
__spawnBubbles = _local3.HAS_LAVA_BUBBLES;
resetBubbleTimer();
__spawnGeysers = _local3.HAS_LAVA_GEYSERS;
resetGeyserTimer();
generateScenery(__player.x, __endPlatform.x, __player.y, __endPlatform.y);
generateScenery(__player.x, __endPlatform.x, __player.y, __endPlatform.y);
}
function generateScenery(pMinX, pMaxX, pMinY, pMaxY) {
var _local3;
var _local2;
if (pMinX < pMaxX) {
_local3 = (pMinX + __camera.__get__sc().x) + 400;
_local3 = _local3 + (Math.random() * (pMaxX - _local3));
} else {
_local3 = (pMinX - __camera.__get__sc().x) - 400;
_local3 = _local3 - (Math.random() * (pMaxX - _local3));
}
if (pMinX < pMaxX) {
_local2 = (pMinY + __camera.__get__sc().y) + 400;
_local2 = _local2 + (Math.random() * (pMaxY - _local2));
} else {
_local2 = (pMinY - __camera.__get__sc().y) - 400;
_local2 = _local2 - (Math.random() * (pMaxY - _local2));
}
__scenery.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createScenery({x:_local3, y:_local2, id:__currentExpanseID}));
}
function resetBubbleTimer() {
__bubbleTimer = 6 - (__expanseCount / 6);
}
function generateBubble() {
__entitys.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity("bubble", {x:__player.x + (220 - (Math.random() * 440)), y:__lava.top + 20}));
}
function resetGeyserTimer() {
__geyserTimer = 5 - (__expanseCount / 6);
}
function generateOsoRock(pData) {
__entitys.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity("osorock", {x:pData.oso.x - 120, y:pData.oso.y - 102}));
}
function generateOsoPlatform(pData) {
generatePlatform({x:pData.oso.x, y:pData.oso.y - 46, width:98, id:"oso", type:"invis"});
}
function generateGeyser() {
var _local2 = Math.floor(Math.random() * 100);
__entitys.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity("geyser", {x:__player.x + ((Math.random() < 0.5) ? (-170 + _local2) : (170 - _local2)), y:__lava.top + 15}));
}
function onPlayerTouchSpecialPlatform(pData) {
super.onPlayerTouchSpecialPlatform(pData);
__lava.catchUp(pData.platform.y);
}
}
Symbol 1626 MovieClip [__Packages.nick.eltigre.mcm.libraries.volcano.ExpanseLibrary] Frame 0
class nick.eltigre.mcm.libraries.volcano.ExpanseLibrary extends nick.eltigre.mcm.libraries.base.ExpanseLibrary
{
var __expanses;
function ExpanseLibrary () {
super();
__expanses = [new nick.eltigre.mcm.levels.expanses.Intro(), new nick.eltigre.mcm.levels.expanses.EnemyTest(), new nick.eltigre.mcm.levels.expanses.Easy1(), new nick.eltigre.mcm.levels.expanses.Easy2(), new nick.eltigre.mcm.levels.expanses.Easy3(), new nick.eltigre.mcm.levels.expanses.Easy4(), new nick.eltigre.mcm.levels.expanses.Easy5(), new nick.eltigre.mcm.levels.expanses.Medium1(), new nick.eltigre.mcm.levels.expanses.Medium2(), new nick.eltigre.mcm.levels.expanses.Medium3(), new nick.eltigre.mcm.levels.expanses.Hard1(), new nick.eltigre.mcm.levels.expanses.Hard2(), new nick.eltigre.mcm.levels.expanses.Oso(), new nick.eltigre.mcm.levels.expanses.Erupt()];
}
}
Symbol 1627 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Intro] Frame 0
class nick.eltigre.mcm.levels.expanses.Intro extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addPickup;
function Intro () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:-40, y:-960, width:80, angle:98});
addPlatform({type:"basic", x:310, y:-1300, width:110, angle:-120});
addPlatform({type:"basic", x:200, y:-80, width:120, angle:-26});
addPlatform({type:"basic", x:-20, y:-110, width:90, angle:10});
addPlatform({type:"basic", x:60, y:-293, width:50, angle:3});
addPlatform({type:"basic", x:290, y:-180, width:250, angle:-8});
addPlatform({type:"basic", x:507, y:-260, width:100, angle:-22});
addPlatform({type:"basic", x:630, y:-120, width:95, angle:-37});
addPlatform({type:"basic", x:560, y:-80, width:60, angle:35});
addPlatform({type:"basic", x:740, y:-210, width:200, angle:-10, end:true});
addPickup({type:"coin", x:-30, y:-141});
addPickup({type:"coin", x:2, y:-130});
addPickup({type:"diamond", x:60, y:-334});
addPickup({type:"coin", x:544, y:-120});
addPickup({type:"coin", x:544, y:-150});
}
var TYPES = ["intro"];
var ID = "intro";
}
Symbol 1628 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.EnemyTest] Frame 0
class nick.eltigre.mcm.levels.expanses.EnemyTest extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform;
function EnemyTest () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:0, y:-175, width:160, angle:125});
addPlatform({type:"basic", x:120, y:-75, width:160, angle:-11});
addPlatform({type:"basic", x:320, y:-215, width:100, angle:-36});
addPlatform({type:"basic", x:470, y:-325, width:100, angle:-105});
addPlatform({type:"basic", x:130, y:-345, width:90, angle:33});
addPlatform({type:"basic", x:260, y:-450, width:100, angle:-10, event:"erupt"});
addPlatform({type:"basic", x:1260, y:-1450, width:100, end:true});
}
var TYPES = ["enemytest"];
var ID = "enemytest";
var HAS_LAVA_GEYSERS = false;
var HAS_LAVA_BUBBLES = false;
}
Symbol 1629 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Easy1] Frame 0
class nick.eltigre.mcm.levels.expanses.Easy1 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Easy1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:290, y:-80, width:420, angle:-10, flag:"monster1"});
addPlatform({type:"basic", x:540, y:-200, width:200, angle:11});
addPlatform({type:"horizontal", x:208, y:-280, width:89});
addPlatform({type:"basic", x:110, y:-350, width:110, angle:-3});
addPlatform({type:"basic", x:0, y:-440, width:60, angle:21});
addPlatform({type:"basic", x:-50, y:-290, width:80, angle:-18});
addPlatform({type:"basic", x:-263, y:-425, width:300, angle:19, flag:"monster2"});
addPlatform({type:"horizontal", x:80, y:-528, width:109, dist:186});
addPlatform({type:"basic", x:420, y:-570, width:90, angle:-31, end:true});
addMonster({type:"flame", platform:"monster1"});
addMonster({type:"flame", platform:"monster2"});
addPickup({type:"coin", x:-400, y:-500});
addPickup({type:"coin", x:-400, y:-540});
addPickup({type:"diamond", x:-400, y:-585});
addPickup({type:"diamond", x:408, y:-500});
}
var TYPES = ["leftright"];
var ID = "easy1";
var HAS_LAVA_BUBBLES = true;
}
Symbol 1630 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Easy2] Frame 0
class nick.eltigre.mcm.levels.expanses.Easy2 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Easy2 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:180, y:-65, width:210, angle:3});
addPlatform({type:"vertical", x:370, y:-330, dist:250, speed:55, width:100});
addPlatform({type:"basic", x:366, y:53, width:70, angle:-15});
addPlatform({type:"basic", x:600, y:-260, angle:25, width:350, flag:"monster1"});
addPlatform({type:"basic", x:790, y:-80, angle:-28, width:120});
addPlatform({type:"basic", x:585, y:-378, angle:-6, width:78});
addPlatform({type:"basic", x:755, y:-520, angle:-26, width:260});
addPlatform({type:"vertical", x:940, y:-770, dist:230, speed:70, width:80});
addPlatform({type:"basic", x:740, y:-710, angle:6, width:125});
addPlatform({type:"basic", x:840, y:-910, angle:-14, width:143, end:true});
addMonster({type:"flame", platform:"monster1"});
addMonster({type:"bat", x:630, y:-910, dist:120});
addPickup({type:"coin", x:740, y:-110});
addPickup({type:"coin", x:740, y:-90});
addPickup({type:"diamond", x:610, y:-990});
}
var TYPES = ["leftright"];
var ID = "easy2";
}
Symbol 1631 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Easy3] Frame 0
class nick.eltigre.mcm.levels.expanses.Easy3 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Easy3 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:310, y:-60, width:400, angle:1, flag:"monster1"});
addPlatform({type:"basic", x:640, y:-45, width:66, angle:8});
addPlatform({type:"basic", x:760, y:-105, width:94, angle:-6});
addPlatform({type:"basic", x:850, y:-55, width:102, angle:-13});
addPlatform({type:"basic", x:980, y:-133, width:85, angle:13});
addPlatform({type:"horizontal", x:1110, y:-124, dist:120, width:90, angle:-15});
addPlatform({type:"basic", x:1350, y:-85, width:68, angle:3});
addPlatform({type:"vertical", x:1480, y:-250, dist:100, width:108, angle:-5});
addPlatform({type:"basic", x:1620, y:-120, width:200, angle:-24});
addMonster({type:"bat", x:1270, y:-190, dist:120});
addMonster({type:"bat", x:1700, y:-250, dist:120});
addMonster({type:"flame", platform:"monster1"});
addPickup({type:"coin", x:710, y:-240});
addPickup({type:"coin", x:980, y:-270});
addPickup({type:"diamond", x:845, y:-310});
addPlatform({type:"basic", x:1920, y:-228, width:93, angle:-6, end:true});
}
var TYPES = ["leftright"];
var ID = "easy3";
var HAS_LAVA_GEYSERS = true;
}
Symbol 1632 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Easy4] Frame 0
class nick.eltigre.mcm.levels.expanses.Easy4 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Easy4 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:120, y:-65, width:150, angle:18});
addPlatform({type:"horizontal", x:266, y:-25, dist:152, speed:80, angle:-8, width:95});
addPlatform({type:"basic", x:640, y:-95, width:300, angle:-11, flag:"monster2"});
addPlatform({type:"seesaw", x:905, y:-141, width:130});
addPlatform({type:"basic", x:1090, y:-160, width:80, angle:13});
addPlatform({type:"basic", x:1200, y:-245, width:110, angle:-11});
addPlatform({type:"basic", x:1380, y:-140, width:200, angle:-68});
addPlatform({type:"basic", x:1310, y:-357, width:80, flag:"monster1"});
addPlatform({type:"basic", x:1202, y:-357, width:60});
addPlatform({type:"basic", x:1500, y:-334, width:70, angle:-23});
addMonster({type:"pukey", platform:"monster1", left:true});
addMonster({type:"flame", platform:"monster2"});
addPlatform({type:"seesaw", x:960, y:-357, width:150});
addPlatform({type:"basic", x:760, y:-420, width:110, angle:19});
addPlatform({type:"basic", x:610, y:-480, width:70, angle:3});
addPlatform({type:"basic", x:720, y:-570, width:88, angle:19});
addPlatform({type:"basic", x:810, y:-690, width:135, angle:-34, end:true});
addPickup({type:"diamond", x:1530, y:-400});
addPickup({type:"coin", x:1530, y:-430});
addPickup({type:"coin", x:1530, y:-460});
}
var TYPES = ["leftright"];
var ID = "easy4";
}
Symbol 1633 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Easy5] Frame 0
class nick.eltigre.mcm.levels.expanses.Easy5 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Easy5 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:280, y:15, width:300, angle:13, flag:"monster1"});
addPlatform({type:"seesaw", x:565, y:-15, width:150});
addPlatform({type:"basic", x:830, y:-65, width:240, angle:-21, flag:"monster2"});
addPlatform({type:"basic", x:930, y:45, width:80, angle:8});
addMonster({type:"flame", platform:"monster1"});
addMonster({type:"flame", platform:"monster2"});
addPlatform({type:"basic", x:990, y:-218, width:100, angle:11});
addMonster({type:"bat", x:1100, y:-320});
addPlatform({type:"basic", x:1180, y:-320, width:135, angle:-22, end:true});
addPickup({type:"diamond", x:930, y:-15});
}
var TYPES = ["leftright"];
var ID = "easy5";
}
Symbol 1634 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Medium1] Frame 0
class nick.eltigre.mcm.levels.expanses.Medium1 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Medium1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:-50, y:-102, width:120, angle:-5});
addPlatform({type:"basic", x:-150, y:-207, width:65, angle:14});
addPlatform({type:"basic", x:-260, y:-288, width:58, angle:-9});
addPlatform({type:"basic", x:-50, y:-321, width:74, angle:8, flag:"monster1"});
addPlatform({type:"crumbly", x:-340, y:-381, width:100});
addPlatform({type:"crumbly", x:90, y:-391, width:100});
addMonster({type:"flame", platform:"monster1"});
addPlatform({type:"seesaw", x:-530, y:-440, width:200});
addPlatform({type:"basic", x:-720, y:-540, width:110, angle:20, flag:"monster2"});
addPlatform({type:"basic", x:-910, y:-630, width:100, angle:38, end:true});
addMonster({type:"flame", platform:"monster2"});
addPlatform({type:"basic", x:160, y:-475, width:52, angle:-12});
addPlatform({type:"crumbly", x:205, y:-565, width:55});
addPlatform({type:"basic", x:65, y:-647, width:67, angle:14});
addPlatform({type:"crumbly", x:-125, y:-665, width:90});
addMonster({type:"bat", x:-125, y:-730});
addPickup({type:"coin", x:-140, y:-695});
addPickup({type:"coin", x:-140, y:-725});
}
var TYPES = ["rightleft"];
var ID = "medium1";
var HAS_LAVA_BUBBLES = true;
}
Symbol 1635 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Medium2] Frame 0
class nick.eltigre.mcm.levels.expanses.Medium2 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Medium2 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:-240, y:-55, width:220, angle:6});
addPlatform({type:"basic", x:-630, y:-145, width:400, angle:20, flag:"monster1"});
addPlatform({type:"basic", x:-1000, y:0, width:360, angle:-39});
addPlatform({type:"basic", x:-1380, y:0, width:280, angle:31});
addPlatform({type:"basic", x:-1030, y:-180, width:90, angle:84});
addPlatform({type:"basic", x:-1530, y:-210, width:190, angle:-24});
addPlatform({type:"basic", x:-1920, y:-120, width:400, angle:25});
addPlatform({type:"crumbly", x:-2280, y:-150, width:100});
addPlatform({type:"basic", x:-2420, y:-265, width:80, angle:21, end:true});
addMonster({type:"hulk", platform:"monster1"});
addPickup({type:"diamond", x:-1680, y:-240});
}
var TYPES = ["rightleft"];
var ID = "medium2";
var HAS_LAVA_GEYSERS = true;
}
Symbol 1636 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Medium3] Frame 0
class nick.eltigre.mcm.levels.expanses.Medium3 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Medium3 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:-200, y:-45, width:170, angle:16});
addPlatform({type:"crumbly", x:-352, y:-205, width:90, angle:0});
addPlatform({type:"basic", x:-395, y:25, width:110, angle:3});
addPlatform({type:"basic", x:-585, y:65, width:180, angle:5});
addPlatform({type:"basic", x:-815, y:-75, width:270, angle:25, flag:"monster1"});
addPlatform({type:"basic", x:-1065, y:15, width:170, angle:-7});
addPlatform({type:"crumbly", x:-1200, y:-75, width:90, angle:12});
addPlatform({type:"crumbly", x:-1320, y:-155, width:80, angle:2});
addPlatform({type:"basic", x:-475, y:-290, width:85, angle:11, flag:"monster2"});
addPlatform({type:"crumbly", x:-367, y:-292, width:60, angle:2});
addPlatform({type:"basic", x:-710, y:-340, width:205, angle:7});
addPlatform({type:"basic", x:-1470, y:-250, width:80, angle:21, end:true});
addMonster({type:"pukey", platform:"monster2", left:false});
addMonster({type:"hulk", platform:"monster1"});
addPickup({type:"diamond", x:-710, y:-370});
addPickup({type:"coin", x:-740, y:-370});
addPickup({type:"coin", x:-680, y:-370});
}
var TYPES = ["rightleft"];
var ID = "medium3";
var HAS_LAVA_GEYSERS = true;
}
Symbol 1637 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Hard1] Frame 0
class nick.eltigre.mcm.levels.expanses.Hard1 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Hard1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:90, y:-105, width:120, angle:-18});
addPlatform({type:"basic", x:-90, y:-225, width:220, angle:40});
addPlatform({type:"basic", x:270, y:-225, width:220, angle:-40});
addMonster({type:"bat", x:-50, y:-290, dist:300});
addPlatform({type:"vertical", x:90, y:-480, dist:200, speed:65, width:100, angle:6});
addPlatform({type:"basic", x:-90, y:-575, width:220, angle:40});
addPlatform({type:"basic", x:270, y:-585, width:220, angle:-35, flag:"monster1"});
addPlatform({type:"vertical", x:455, y:-880, dist:210, speed:65, width:100, angle:-9});
addPlatform({type:"crumbly", x:200, y:-905, width:90});
addPlatform({type:"crumbly", x:0, y:-955, width:100});
addPlatform({type:"crumbly", x:-220, y:-875, width:80});
addPlatform({type:"basic", x:-378, y:-965, width:75, angle:22, end:true});
addMonster({type:"hulk", platform:"monster1"});
addPlatform({type:"basic", x:-250, y:-735, width:110, angle:69});
addPlatform({type:"basic", x:300, y:30, width:50, angle:44});
addPlatform({type:"basic", x:495, y:45, width:40, angle:-29});
addPickup({type:"diamond", x:120, y:-1105});
addPickup({type:"diamond", x:-120, y:-1105});
addPickup({type:"coin", x:515, y:5});
addPickup({type:"coin", x:515, y:-25});
}
var TYPES = ["downup"];
var ID = "hard1";
var HAS_LAVA_BUBBLES = true;
}
Symbol 1638 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Hard2] Frame 0
class nick.eltigre.mcm.levels.expanses.Hard2 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Hard2 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:90, y:-90, width:80, angle:-11});
addPlatform({type:"basic", x:190, y:-135, width:78, angle:6});
addPlatform({type:"basic", x:40, y:-165, width:91, angle:16});
addPlatform({type:"basic", x:-120, y:-215, width:97, angle:-6});
addPlatform({type:"basic", x:0, y:-305, width:100, angle:8});
addPlatform({type:"seesaw", x:190, y:-340, width:130});
addPlatform({type:"basic", x:-90, y:-410, width:76, angle:4, flag:"monster1"});
addPlatform({type:"basic", x:18, y:-410, width:76, angle:-7});
addPlatform({type:"basic", x:90, y:-495, width:90, angle:-11});
addPlatform({type:"basic", x:220, y:-525, width:89, angle:-14});
addPlatform({type:"basic", x:10, y:-610, width:100, angle:5});
addPlatform({type:"basic", x:-110, y:-735, width:95, angle:-9});
addPlatform({type:"basic", x:145, y:-825, width:91, angle:14});
addPlatform({type:"basic", x:-20, y:-935, width:92, angle:-33, end:true});
addMonster({type:"pukey", platform:"monster1", left:false});
addMonster({type:"bat", x:-50, dist:150, y:-255});
addMonster({type:"bat", x:-140, dist:190, y:-655});
addPickup({type:"diamond", x:-140, y:-520});
}
var TYPES = ["downup"];
var ID = "hard2";
var HAS_LAVA_BUBBLES = true;
var HAS_LAVA_GEYSERS = true;
}
Symbol 1639 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Oso] Frame 0
class nick.eltigre.mcm.levels.expanses.Oso extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Oso () {
super();
}
function generate() {
super.generate();
addPlatform({type:"crumbly", x:50, y:-100, width:90});
addPlatform({type:"basic", x:225, y:-200, width:520, event:"oso", flag:"oso"});
addPlatform({type:"basic", x:450, y:-420, width:100, end:true});
addMonster({type:"rockpile", platform:"oso"});
addMonster({type:"deathrock", x:409, y:-373});
addMonster({type:"oso", platform:"oso", left:true});
addPickup({type:"coin", x:37, y:-230});
addPickup({type:"coin", x:62, y:-230});
}
var TYPES = ["oso"];
var ID = "oso";
}
Symbol 1640 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Erupt] Frame 0
class nick.eltigre.mcm.levels.expanses.Erupt extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster, addPickup;
function Erupt () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:0, y:-175, width:160, angle:125});
addPlatform({type:"basic", x:120, y:-75, width:160, angle:-11, flag:"monster1"});
addPlatform({type:"basic", x:320, y:-215, width:100, angle:-36});
addPlatform({type:"basic", x:470, y:-325, width:100, angle:-105});
addPlatform({type:"basic", x:130, y:-345, width:90, angle:33});
addPlatform({type:"basic", x:260, y:-450, width:100, angle:-10, event:"erupt"});
addMonster({type:"hulk", platform:"monster1"});
addPickup({type:"coin", x:350, y:-265});
addPickup({type:"coin", x:350, y:-295});
addPickup({type:"coin", x:100, y:-385});
addPickup({type:"coin", x:100, y:-415});
addPlatform({type:"basic", x:1260, y:-1450, width:100, end:true});
}
var TYPES = ["erupt"];
var ID = "erupt";
}
Symbol 1641 MovieClip [__Packages.nick.eltigre.mcm.libraries.volcano.ConnectorLibrary] Frame 0
class nick.eltigre.mcm.libraries.volcano.ConnectorLibrary extends nick.eltigre.mcm.libraries.base.ConnectorLibrary
{
var __connectors;
function ConnectorLibrary () {
super();
__connectors = [new nick.eltigre.mcm.levels.connectors.Intro(), new nick.eltigre.mcm.levels.connectors.LeftRight1(), new nick.eltigre.mcm.levels.connectors.RightLeft1(), new nick.eltigre.mcm.levels.connectors.DownUp1(), new nick.eltigre.mcm.levels.connectors.DownUp2(), new nick.eltigre.mcm.levels.connectors.DownUp3()];
}
}
Symbol 1642 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.Intro] Frame 0
class nick.eltigre.mcm.levels.connectors.Intro extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function Intro () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:250, y:-70, width:130, angle:-22});
addPlatform({type:"basic", x:420, y:-150, width:107, angle:5, end:true});
}
var TYPES = ["intro"];
var ID = "introconnect";
}
Symbol 1643 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.LeftRight1] Frame 0
class nick.eltigre.mcm.levels.connectors.LeftRight1 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function LeftRight1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:128, width:60, y:43, angle:-11});
addPlatform({type:"basic", x:230, width:70, y:-63, angle:5});
addPlatform({type:"basic", x:420, width:100, y:-15, end:true});
}
var TYPES = ["leftright"];
var ID = "leftright1";
}
Symbol 1644 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.RightLeft1] Frame 0
class nick.eltigre.mcm.levels.connectors.RightLeft1 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function RightLeft1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:-160, width:98, y:-22, angle:13});
addPlatform({type:"basic", x:-355, width:65, y:-105, angle:33, end:true});
}
var TYPES = ["rightleft"];
var ID = "rightleft1";
}
Symbol 1645 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.DownUp1] Frame 0
class nick.eltigre.mcm.levels.connectors.DownUp1 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function DownUp1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:0, width:108, y:-162, angle:10});
addPlatform({type:"basic", x:-70, width:94, y:-238, angle:-8, end:true});
}
var TYPES = ["downup"];
var ID = "downup1";
var HAS_LAVA_BUBBLES = true;
}
Symbol 1646 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.DownUp2] Frame 0
class nick.eltigre.mcm.levels.connectors.DownUp2 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function DownUp2 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"vertical", x:140, width:95, y:-210, dist:200, angle:-5});
addPlatform({type:"basic", x:250, width:75, y:-250, angle:-11, end:true});
}
var TYPES = ["downup"];
var ID = "downup2";
var HAS_LAVA_BUBBLES = true;
}
Symbol 1647 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.DownUp3] Frame 0
class nick.eltigre.mcm.levels.connectors.DownUp3 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function DownUp3 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"basic", x:-180, width:200, y:-162, angle:20});
addPlatform({type:"basic", x:-240, width:94, y:-302, angle:-8, end:true});
}
var TYPES = ["downup"];
var ID = "downup3";
var HAS_LAVA_BUBBLES = true;
}
Symbol 1648 MovieClip [__Packages.nick.eltigre.mcm.WorldSky] Frame 0
class nick.eltigre.mcm.WorldSky extends nick.eltigre.mcm.World
{
var __gravity, update, updateDeathEvent, __activeEvent, __player, __camera, __ceiling, __renderArray, __i, __platforms, obj, __currentExpanseID, __doUpdateProjectiles, __entitys, __friendlyProjectiles, resolvePlayerEntityCollision, __c, __pickups, __effects, __scroller, clear, __state, __expanseLibrary, __connectorLibrary, __expanseCount, __endPlatform, __expanseCleaningStep, generateExpanse, generateConnector;
function WorldSky () {
super();
}
function init(pData) {
super.init(pData);
__gravity = new smashing.Point3D(0, 390, 0);
}
function start() {
onBeginEvent("skydive");
}
function onBeginEvent(pEvent) {
super.onBeginEvent(pEvent);
switch (pEvent) {
case "death" :
update = updateDeathEvent;
break;
case "skydive" :
update = updateSkydive;
smashing.rampage.Messenger.sendMessage("screen", "showCutscene");
break;
case "win" :
smashing.rampage.Messenger.sendMessage("engine", "onGoWin");
}
}
function onCompleteEvent() {
if (!(__activeEvent === "skydive")) {
} else {
smashing.rampage.Messenger.sendMessage("screen", "hideCutscene");
var _local3 = __player.getCurrentPlatform();
__camera.goSkyMode(_local3.x, _local3.y - 180);
}
super.onCompleteEvent();
}
function updateGameplay(dt) {
if (dt > 0.2) {
dt = 0.2;
}
__ceiling.rise(dt, __camera);
__player.update(dt);
__renderArray = [];
__i = __platforms.length;
while (__i--) {
obj = __platforms[__i];
obj.update(dt);
__player.runPlatformHD(__platforms[__i]);
if ((obj.isEnd && (obj.isDrawn)) && (__currentExpanseID == obj.expanseID)) {
onPlayerTouchSpecialPlatform({id:""});
}
if (obj.doRemove) {
__platforms.splice(__i, 1);
} else if (obj.doRender) {
__renderArray.push(obj);
}
}
__doUpdateProjectiles = true;
__i = __entitys.length;
if (__i == 0) {
__i = __friendlyProjectiles.length;
while (__i--) {
__friendlyProjectiles[__i].updateAndRender(dt);
if (__friendlyProjectiles[__i].doRemove) {
__friendlyProjectiles.splice(__i, 1);
}
}
} else {
while (__i--) {
obj = __entitys[__i];
obj.update(dt, __player);
if (obj.runHD(__player, dt)) {
resolvePlayerEntityCollision(obj);
}
__c = __friendlyProjectiles.length;
while (__c--) {
if (__doUpdateProjectiles) {
__friendlyProjectiles[__c].updateAndRender(dt);
if (__friendlyProjectiles[__c].doRemove) {
__friendlyProjectiles.splice(__c, 1);
continue;
}
}
if (__friendlyProjectiles[__c].isDangerous == false) {
continue;
}
if (obj.runHD(__friendlyProjectiles[__c], dt)) {
obj.takeDamage(__friendlyProjectiles[__c].damage, __friendlyProjectiles[__c].force, __friendlyProjectiles[__c]);
__friendlyProjectiles[__c].hitReact();
}
}
__doUpdateProjectiles = false;
obj.move(dt);
if (obj.doRender) {
__renderArray.push(obj);
}
if (obj.doRemove) {
__entitys.splice(__i, 1);
}
}
}
if (__ceiling.runHD(__player)) {
resolvePlayerCeilingCollision();
}
__player.move(dt);
__camera.update(dt, __player, __ceiling);
__player.render(dt);
__i = __renderArray.length;
while (__i--) {
__renderArray[__i].render(dt);
}
__i = __pickups.length;
while (__i--) {
obj = __pickups[__i];
if (obj.runHD(__player, dt)) {
resolvePlayerEntityCollision(obj);
}
if (obj.doRemove) {
__pickups.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__i = __effects.length;
while (__i--) {
obj = __effects[__i];
if (obj.doRemove) {
__effects.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__scroller.updateAndRender(dt);
if (__player.y > ((__camera.y + __camera.__get__sc().y) + 120)) {
smashing.rampage.Messenger.sendMessage("engine", "onGameOver");
}
}
function updateSkydive(dt) {
if (dt > 0.2) {
dt = 0.2;
}
__player.updateForSkydive(dt, 1);
__i = __platforms.length;
while (__i--) {
obj = __platforms[__i];
obj.update(dt);
__player.runPlatformHD(__platforms[__i]);
if (obj.doRemove) {
__platforms.splice(__i, 1);
} else {
obj.render(dt);
}
}
__player.move(dt);
__camera.update(dt, __player);
__player.render(dt);
__i = __effects.length;
while (__i--) {
obj = __effects[__i];
if (obj.doRemove) {
__effects.splice(__i, 1);
} else {
obj.updateAndRender(dt);
}
}
__scroller.updateAndRender(dt);
}
function resolvePlayerCeilingCollision() {
}
function generateCuervoShot(pData) {
__entitys.push(nick.eltigre.mcm.libraries.base.EntityLibrary.createEntity("cuervoshot", {x:pData.x, y:pData.y, player:__player}));
}
function generate() {
var _local3 = 300000 /* 0x0493E0 */;
var _local2 = 10000;
clear();
__state.onSwitchToSky();
__expanseLibrary = new nick.eltigre.mcm.libraries.sky.ExpanseLibrary();
__connectorLibrary = new nick.eltigre.mcm.libraries.sky.ConnectorLibrary();
__camera = nick.eltigre.mcm.GameCamera.getInstance();
__camera.generate({x:_local3 + 40, y:_local2 - 100});
__ceiling = nick.eltigre.mcm.libraries.base.EntityLibrary.createCeiling({y:_local2 - 110});
__player = nick.eltigre.mcm.libraries.base.EntityLibrary.createPlayer({x:_local3 + 40, y:_local2 - 51, partner:__state.partner, gravity:__gravity});
__scroller = new nick.eltigre.mcm.Scroller({bg:"sky", sky:true});
__expanseCount = 0;
generatePlatform({x:_local3 + 30, y:_local2 + 180, width:400, type:"wobbly"});
__endPlatform = __platforms[__platforms.length - 1];
nextExpanse();
nextConnector();
__expanseCleaningStep = 0;
}
function generatePlatform(pPlat) {
pPlat.sky = true;
__platforms.push(nick.eltigre.mcm.libraries.base.PlatformLibrary.createPlatform(pPlat.type, pPlat));
}
function nextExpanse() {
var _local2;
switch (__expanseCount) {
case 0 :
_local2 = "drop";
break;
case 1 :
case 2 :
case 3 :
_local2 = "sky";
break;
case 4 :
_local2 = "skyend";
break;
default :
_local2 = "sky";
}
generateExpanse(_local2);
}
function nextConnector() {
generateConnector("sky");
}
function onPlayerTouchSpecialPlatform(pData) {
super.onPlayerTouchSpecialPlatform(pData);
}
}
Symbol 1649 MovieClip [__Packages.nick.eltigre.mcm.libraries.sky.ExpanseLibrary] Frame 0
class nick.eltigre.mcm.libraries.sky.ExpanseLibrary extends nick.eltigre.mcm.libraries.base.ExpanseLibrary
{
var __expanses;
function ExpanseLibrary () {
super();
__expanses = [new nick.eltigre.mcm.levels.expanses.SkyDrop(), new nick.eltigre.mcm.levels.expanses.Sky1(), new nick.eltigre.mcm.levels.expanses.Sky2(), new nick.eltigre.mcm.levels.expanses.Sky3(), new nick.eltigre.mcm.levels.expanses.Sky4(), new nick.eltigre.mcm.levels.expanses.SkyEnd()];
}
}
Symbol 1650 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.SkyDrop] Frame 0
class nick.eltigre.mcm.levels.expanses.SkyDrop extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform, addMonster;
function SkyDrop () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:210, y:80, width:120, angle:-26});
addPlatform({type:"wobbly", x:-20, y:110, width:90, angle:10});
addPlatform({type:"wobbly", x:60, y:263, width:30, angle:3});
addPlatform({type:"wobbly", x:210, y:340, width:250, angle:-8});
addPlatform({type:"wobbly", x:-10, y:463, width:100, angle:3, end:true});
addMonster({type:"cuervo", x:-300, y:-80});
}
var TYPES = ["drop"];
var ID = "drop";
}
Symbol 1651 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Sky1] Frame 0
class nick.eltigre.mcm.levels.expanses.Sky1 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform;
function Sky1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:210, y:80, width:120, angle:-26});
addPlatform({type:"wobbly", x:-20, y:110, width:90, angle:10});
addPlatform({type:"wobbly", x:60, y:263, width:30, angle:3});
addPlatform({type:"wobbly", x:170, y:340, width:250, angle:-8});
addPlatform({type:"wobbly", x:-60, y:463, width:100, angle:3, end:true});
}
var TYPES = ["sky"];
var ID = "sky1";
}
Symbol 1652 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Sky2] Frame 0
class nick.eltigre.mcm.levels.expanses.Sky2 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform;
function Sky2 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:210, y:120, width:85, angle:-11});
addPlatform({type:"wobbly", x:-210, y:160, width:78, angle:14});
addPlatform({type:"wobbly", x:-80, y:250, width:90, angle:20});
addPlatform({type:"wobbly", x:160, y:333, width:30, angle:3});
addPlatform({type:"wobbly", x:210, y:390, width:250, angle:-8});
addPlatform({type:"wobbly", x:20, y:503, width:100, angle:3, end:true});
}
var TYPES = ["sky"];
var ID = "sky2";
}
Symbol 1653 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Sky3] Frame 0
class nick.eltigre.mcm.levels.expanses.Sky3 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform;
function Sky3 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:-90, y:180, width:390, angle:24});
addPlatform({type:"wobbly", x:220, y:340, width:250, angle:-29});
addPlatform({type:"wobbly", x:-30, y:500, width:330, angle:33});
addPlatform({type:"wobbly", x:20, y:702, width:100, angle:-11, end:true});
}
var TYPES = ["sky"];
var ID = "sky3";
}
Symbol 1654 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.Sky4] Frame 0
class nick.eltigre.mcm.levels.expanses.Sky4 extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform;
function Sky4 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:-120, y:200, width:70, angle:-8});
addPlatform({type:"wobbly", x:130, y:230, width:74, angle:8});
addPlatform({type:"wobbly", x:198, y:380, width:67, angle:4});
addPlatform({type:"wobbly", x:-80, y:310, width:64, angle:-9});
addPlatform({type:"wobbly", x:-140, y:410, width:80, angle:11});
addPlatform({type:"wobbly", x:20, y:543, width:100, angle:-11, end:true});
}
var TYPES = ["sky"];
var ID = "Sky4";
}
Symbol 1655 MovieClip [__Packages.nick.eltigre.mcm.levels.expanses.SkyEnd] Frame 0
class nick.eltigre.mcm.levels.expanses.SkyEnd extends nick.eltigre.mcm.levels.expanses.Expanse
{
var addPlatform;
function SkyEnd () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:160, y:110, width:320, angle:16, event:"win"});
addPlatform({type:"wobbly", x:160, y:2580, width:120, end:true});
}
var TYPES = ["skyend"];
var ID = "skyend";
}
Symbol 1656 MovieClip [__Packages.nick.eltigre.mcm.libraries.sky.ConnectorLibrary] Frame 0
class nick.eltigre.mcm.libraries.sky.ConnectorLibrary extends nick.eltigre.mcm.libraries.base.ConnectorLibrary
{
var __connectors;
function ConnectorLibrary () {
super();
__connectors = [new nick.eltigre.mcm.levels.connectors.SkyCon1(), new nick.eltigre.mcm.levels.connectors.SkyCon2(), new nick.eltigre.mcm.levels.connectors.SkyCon3()];
}
}
Symbol 1657 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.SkyCon1] Frame 0
class nick.eltigre.mcm.levels.connectors.SkyCon1 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function SkyCon1 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:-60, width:108, y:92, angle:10});
addPlatform({type:"wobbly", x:20, width:94, y:148, angle:-8, end:true});
}
var TYPES = ["sky"];
var ID = "skycon1";
}
Symbol 1658 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.SkyCon2] Frame 0
class nick.eltigre.mcm.levels.connectors.SkyCon2 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function SkyCon2 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:-80, width:78, y:110, angle:8});
addPlatform({type:"wobbly", x:80, width:101, y:101, angle:-12});
addPlatform({type:"wobbly", x:0, width:58, y:230, angle:0, end:true});
}
var TYPES = ["sky"];
var ID = "skycon2";
}
Symbol 1659 MovieClip [__Packages.nick.eltigre.mcm.levels.connectors.SkyCon3] Frame 0
class nick.eltigre.mcm.levels.connectors.SkyCon3 extends nick.eltigre.mcm.levels.connectors.Connector
{
var addPlatform;
function SkyCon3 () {
super();
}
function generate() {
super.generate();
addPlatform({type:"wobbly", x:30, width:300, y:200, angle:32});
addPlatform({type:"wobbly", x:280, width:88, y:340, angle:-20});
addPlatform({type:"wobbly", x:10, width:73, y:415, angle:11, end:true});
}
var TYPES = ["sky"];
var ID = "skycon3";
}
Symbol 132 MovieClip Frame 1
stop();
Symbol 135 MovieClip Frame 1
stop();
Symbol 136 MovieClip Frame 5
stop();
Symbol 140 MovieClip Frame 2
stop();
Symbol 140 MovieClip Frame 5
play();
Symbol 140 MovieClip Frame 10
smashing.rampage.Messenger.sendMessage("engine", "onTransitionComplete");
Symbol 155 Button
on (release) {
smashing.rampage.Messenger.sendMessage("screen", "onPressSkip");
}
Symbol 162 MovieClip Frame 1
stop();
Symbol 202 MovieClip Frame 1
stop();
Instance of Symbol 162 MovieClip in Symbol 281 MovieClip Frame 11
on (release) {
_parent.gotoAndPlay(23);
}
Symbol 281 MovieClip Frame 22
stop();
Instance of Symbol 162 MovieClip in Symbol 281 MovieClip Frame 23
on (release) {
_parent.gotoAndPlay(37);
}
Symbol 281 MovieClip Frame 36
stop();
Symbol 281 MovieClip Frame 51
stop();
Symbol 287 MovieClip Frame 1
stop();
Symbol 288 MovieClip Frame 1
stop();
Symbol 288 MovieClip Frame 5
if (transEvent == "gameplay") {
smashing.rampage.Messenger.sendMessage("screen", "onPressGo");
} else {
_parent.help_mc.gotoAndStop(2);
}
Symbol 301 MovieClip Frame 1
stop();
Symbol 403 MovieClip Frame 1
stop();
Symbol 409 MovieClip Frame 1
stop();
Symbol 410 MovieClip Frame 1
gotoAndStop(nick.eltigre.mcm.GameState.getInstance().partner);
Symbol 416 MovieClip Frame 1
stop();
Symbol 418 MovieClip Frame 1
stop();
Symbol 421 MovieClip Frame 1
stop();
Symbol 429 MovieClip Frame 1
gotoAndStop(nick.eltigre.mcm.GameState.getInstance().partner);
Symbol 440 MovieClip Frame 1
stop();
Symbol 440 MovieClip Frame 21
stop();
Symbol 454 MovieClip Frame 1
stop();
Symbol 455 MovieClip Frame 1
stop();
Instance of Symbol 162 MovieClip "btn_next" in Symbol 455 MovieClip Frame 1
on (release) {
_parent._parent.fade_mc.transEvent = "next";
_parent._parent.fade_mc.gotoAndPlay(2);
_parent.btn_next._visible = false;
}
Instance of Symbol 454 MovieClip "btn_go" in Symbol 455 MovieClip Frame 2
on (release) {
_parent._parent.fade_mc.transEvent = "gameplay";
_parent._parent.fade_mc.gotoAndPlay(2);
_parent.btn_go._visible = false;
}
Symbol 456 MovieClip Frame 1
spin_mc.gotoAndStop(nick.eltigre.mcm.GameState.getInstance().partner);
Symbol 456 MovieClip Frame 37
stop();
Symbol 457 MovieClip Frame 37
stop();
Symbol 461 MovieClip Frame 37
stop();
Symbol 469 MovieClip Frame 1
play();
Symbol 469 MovieClip Frame 101
stop();
Symbol 469 MovieClip Frame 121
stop();
Symbol 472 MovieClip Frame 1
stop();
Symbol 479 MovieClip Frame 1
play();
btn.useHandCursor = false;
Symbol 479 MovieClip Frame 5
stop();
btn.useHandCursor = false;
Symbol 479 MovieClip Frame 16
play();
btn.useHandCursor = false;
Symbol 479 MovieClip Frame 21
stop();
Symbol 486 MovieClip Frame 1
stop();
Symbol 498 MovieClip Frame 1
stop();
Symbol 499 MovieClip Frame 2
stop();
Symbol 499 MovieClip Frame 3
speech_mc.gotoAndStop(_parent.speechFrame);
Symbol 499 MovieClip Frame 35
if (_parent.lockText == true) {
stop();
}
Symbol 500 MovieClip Frame 5
speech_mc.gotoAndPlay(3);
Symbol 500 MovieClip Frame 35
stop();
Symbol 504 MovieClip Frame 1
stop();
Symbol 507 MovieClip Frame 1
stop();
Symbol 508 MovieClip Frame 2
stop();
Symbol 508 MovieClip Frame 3
speech_mc.gotoAndStop(_parent.speechFrame);
Symbol 509 MovieClip Frame 5
speech_mc.gotoAndPlay(3);
Symbol 509 MovieClip Frame 35
stop();
Symbol 515 MovieClip Frame 1
stop();
Symbol 518 MovieClip Frame 1
stop();
Symbol 521 MovieClip Frame 1
stop();
Symbol 524 MovieClip Frame 1
stop();
Symbol 525 MovieClip Frame 1
stop();
Symbol 528 MovieClip Frame 1
stop();
Symbol 540 MovieClip Frame 1
stop();
Symbol 543 MovieClip Frame 1
stop();
Symbol 547 MovieClip Frame 1
stop();
Symbol 547 MovieClip Frame 7
play();
btn.useHandCursor = false;
Symbol 547 MovieClip Frame 17
stop();
Symbol 547 MovieClip Frame 27
play();
Symbol 547 MovieClip Frame 36
stop();
smashing.rampage.Messenger.sendMessage("screen", "onMenuOutroComplete");
Symbol 547 MovieClip Frame 39
play();
btn.useHandCursor = false;
Symbol 547 MovieClip Frame 50
stop();
Symbol 547 MovieClip Frame 51
play();
Symbol 547 MovieClip Frame 60
stop();
Symbol 548 Button
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onDumpCode");
}
Symbol 549 MovieClip Frame 1
btn.useHandCursor = false;
Symbol 625 MovieClip Frame 86
stop();
Symbol 727 MovieClip Frame 1
gotoAndStop(nick.eltigre.mcm.GameState.getInstance().partner);
Symbol 729 MovieClip Frame 1
stop();
Symbol 731 MovieClip Frame 1
stop();
Symbol 735 MovieClip Frame 1
stop();
Symbol 745 MovieClip Frame 45
speechFrame = "win";
lockText = true;
speech_mc.gotoAndPlay(3);
Instance of Symbol 729 MovieClip "submit_btn" in Symbol 745 MovieClip Frame 59
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressGameOverSubmitScore");
}
Instance of Symbol 731 MovieClip in Symbol 745 MovieClip Frame 62
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressViewScores");
}
Instance of Symbol 735 MovieClip in Symbol 745 MovieClip Frame 65
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressPlayAgain");
}
Symbol 745 MovieClip Frame 81
stop();
Symbol 759 MovieClip Frame 1
gotoAndStop(nick.eltigre.mcm.GameState.getInstance().partner);
Symbol 760 MovieClip Frame 1
if (!(nick.highscores.HighscoreEngine.__get__isLoggedIn() && (nick.eltigre.mcm.GameState.getInstance().score > 0))) {
submit_btn._visible = false;
}
Symbol 760 MovieClip Frame 7
if (!(nick.highscores.HighscoreEngine.__get__isLoggedIn() && (nick.eltigre.mcm.GameState.getInstance().score > 0))) {
submit_btn._visible = false;
}
Symbol 760 MovieClip Frame 10
if (!(nick.highscores.HighscoreEngine.__get__isLoggedIn() && (nick.eltigre.mcm.GameState.getInstance().score > 0))) {
submit_btn._visible = false;
}
Instance of Symbol 729 MovieClip "submit_btn" in Symbol 760 MovieClip Frame 10
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressGameOverSubmitScore");
}
Instance of Symbol 731 MovieClip in Symbol 760 MovieClip Frame 13
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressViewScores");
}
Instance of Symbol 735 MovieClip in Symbol 760 MovieClip Frame 16
on (release) {
smashing.rampage.Messenger.sendMessage("engine", "onPressPlayAgain");
}
Symbol 760 MovieClip Frame 18
stop();
Symbol 761 MovieClip Frame 34
speechFrame = "lose";
lockText = true;
speech_mc.gotoAndPlay(3);
Symbol 761 MovieClip Frame 69
stop();
Symbol 770 MovieClip [geyser_mc] Frame 31
stop();
Symbol 779 MovieClip Frame 12
stop();
Symbol 782 MovieClip Frame 6
stop();
Symbol 783 MovieClip Frame 6
stop();
Symbol 785 MovieClip Frame 3
stop();
Symbol 795 MovieClip Frame 6
stop();
Symbol 797 MovieClip Frame 6
stop();
Symbol 803 MovieClip Frame 12
stop();
Symbol 815 MovieClip Frame 23
stop();
Symbol 818 MovieClip Frame 4
stop();
Symbol 829 MovieClip Frame 4
stop();
Symbol 830 MovieClip Frame 3
stop();
Symbol 834 MovieClip Frame 4
stop();
Symbol 840 MovieClip Frame 7
stop();
Symbol 843 MovieClip Frame 3
stop();
Symbol 847 MovieClip Frame 1
stop();
Symbol 850 MovieClip Frame 12
stop();
Symbol 851 MovieClip Frame 6
stop();
Symbol 852 MovieClip Frame 6
stop();
Symbol 854 MovieClip Frame 3
stop();
Symbol 855 MovieClip Frame 6
stop();
Symbol 856 MovieClip Frame 6
stop();
Symbol 857 MovieClip Frame 5
stop();
Symbol 859 MovieClip Frame 6
stop();
Symbol 860 MovieClip Frame 1
stop();
Symbol 861 MovieClip Frame 3
stop();
Symbol 862 MovieClip Frame 6
stop();
Symbol 863 MovieClip Frame 4
stop();
Symbol 866 MovieClip Frame 1
stop();
Symbol 868 MovieClip Frame 4
stop();
Symbol 869 MovieClip Frame 3
stop();
Symbol 871 MovieClip Frame 4
stop();
Symbol 872 MovieClip Frame 6
stop();
Symbol 873 MovieClip Frame 1
stop();
Symbol 874 MovieClip Frame 3
stop();
Symbol 884 MovieClip [jump_dust] Frame 8
stop();
Symbol 893 MovieClip [dust_land] Frame 9
stop();
Symbol 897 MovieClip [puff_ani] Frame 6
stop();
Symbol 929 MovieClip Frame 8
stop();
Symbol 934 MovieClip Frame 33
stop();
Symbol 943 MovieClip Frame 1
play();
Symbol 943 MovieClip Frame 9
stop();
Symbol 953 MovieClip Frame 8
stop();
Symbol 954 MovieClip [monster_lilFlame] Frame 1
stop();
Symbol 977 MovieClip Frame 18
stop();
Symbol 995 MovieClip Frame 29
stop();
Symbol 1000 MovieClip Frame 1
play();
Symbol 1000 MovieClip Frame 6
stop();
Symbol 1004 MovieClip Frame 11
stop();
Symbol 1048 MovieClip Frame 1
play();
Symbol 1048 MovieClip Frame 9
stop();
Symbol 1054 MovieClip Frame 14
stop();
Symbol 1055 MovieClip [monster_lava] Frame 1
stop();
Symbol 1070 MovieClip Frame 9
stop();
Symbol 1071 MovieClip [monster_bat] Frame 1
stop();
Symbol 1075 MovieClip Frame 6
stop();
Symbol 1079 MovieClip Frame 5
stop();
Symbol 1082 MovieClip Frame 5
stop();
Symbol 1086 MovieClip [projectile_kickAttack] Frame 12
stop();
Symbol 1088 MovieClip Frame 25
stop();
Symbol 1092 MovieClip Frame 25
stop();
Symbol 1100 MovieClip Frame 20
stop();
Symbol 1105 MovieClip Frame 5
stop();
Symbol 1109 MovieClip Frame 25
stop();
Symbol 1150 MovieClip Frame 1
stop();
Symbol 1170 MovieClip Frame 4
stop();
Symbol 1171 MovieClip Frame 13
stop();
Symbol 1172 MovieClip Frame 30
stop();
Symbol 1173 MovieClip [oso_rock] Frame 1
stop();
Symbol 1176 MovieClip Frame 6
stop();
Symbol 1196 MovieClip Frame 26
stop();
Symbol 1205 MovieClip Frame 20
stop();
Symbol 1206 MovieClip Frame 9
stop();
Symbol 1213 MovieClip Frame 1
stop();
Symbol 1239 MovieClip Frame 8
stop();
Symbol 1246 MovieClip Frame 7
stop();
Symbol 1252 MovieClip Frame 60
stop();
Symbol 1261 MovieClip Frame 12
stop();
Symbol 1262 MovieClip Frame 23
stop();
Symbol 1263 MovieClip [oso_rock_ultimateDemise] Frame 1
stop();
Symbol 1284 MovieClip Frame 23
stop();
Symbol 1296 MovieClip Frame 7
stop();
Symbol 1297 MovieClip [oso_rockpile] Frame 1
stop();
Symbol 1306 MovieClip [projectile_sombrero] Frame 18
stop();
Symbol 1381 MovieClip Frame 9
stop();
Symbol 1389 MovieClip Frame 12
stop();
Symbol 1400 MovieClip Frame 9
stop();
Symbol 1405 MovieClip Frame 8
stop();
Symbol 1406 MovieClip Frame 3
stop();
Symbol 1428 MovieClip Frame 14
stop();
Symbol 1433 MovieClip Frame 8
stop();
Symbol 1441 MovieClip Frame 5
stop();
Symbol 1442 MovieClip [_cuervo] Frame 1
stop();
Symbol 1448 MovieClip Frame 5
stop();
Symbol 1449 MovieClip [cuervo_laserBolt] Frame 1
stop();
Symbol 1524 MovieClip [plat_02] Frame 1
stop();
Symbol 1524 MovieClip [plat_02] Frame 2
play();
Symbol 1545 MovieClip [_Project] Frame 1
#initclip 116
Object.registerClass("_Project", nick.eltigre.mcm.Engine);
#endinitclip