Frame 1
MochiAd.showPreGameAd({id:"c4a23617146f4291", res:"640x480"});
Frame 2
stop();
var loaded_bytes = 0;
var total_bytes = 0;
this.onEnterFrame = function () {
total_bytes = _root.getBytesTotal();
loaded_bytes = _root.getBytesLoaded();
percentage = Math.round((loaded_bytes / total_bytes) * 100);
progressText.text = percentage + "%";
if (loaded_bytes == total_bytes) {
gotoAndStop (3);
}
};
Frame 3
stop();
this.onEnterFrame = function () {
btn_play.onPress = function () {
gotoAndStop (5);
};
btn_instructions.onPress = function () {
gotoAndStop (4);
};
};
Frame 4
btn_back.onPress = function () {
gotoAndStop (3);
};
Frame 5
function reset() {
drawLevel(level);
black_bg._alpha = 0;
description._alpha = 0;
description.enabled = false;
description.descriptionText.text = "";
pauseGame = false;
ball._x = ball_xpos;
ball._y = ball_ypos;
vel.x = 0;
vel.y = 0;
}
function createBlock(number) {
var _local3 = 1;
while (_local3 <= number) {
_root.attachMovie("block", "block" + _local3, 800 + _local3);
_root["block" + _local3].onEnterFrame = function () {
if ((ball.hitTest(this) and (vel.x >= 0)) and (wallHit == false)) {
vel.x = -vel.x;
wallHit = true;
} else if ((ball.hitTest(this) and (vel.x < 0)) and (wallHit == false)) {
vel.x = -vel.x;
wallHit = true;
}
if (ball.hitTest(this)) {
wallHit = false;
}
};
_local3++;
}
}
function createDeathBlock(number) {
var _local3 = 1;
while (_local3 <= number) {
_root.attachMovie("block_red", "block_death" + _local3, 900 + _local3);
_root["block_death" + _local3].onEnterFrame = function () {
if (ball.hitTest(this)) {
reset();
}
};
_local3++;
}
}
function createMovingBlock(speed, size, ypos) {
_root.attachMovie("block", "block_moving", 997);
var t = 0;
var y0 = ypos;
var a = speed;
var _local3 = 2;
var w = ((Math.PI*2) / _local3);
block_moving.onEnterFrame = function () {
this._yscale = size;
this._y = y0 + (a * Math.sin(w * t));
t = t + 0.025;
if (ball.hitTest(this) and (vel.x >= 0)) {
vel.x = -vel.x;
} else if (ball.hitTest(this) and (vel.x < 0)) {
vel.x = -vel.x;
}
};
}
function createCoins(number) {
var _local3 = 1;
while (_local3 <= number) {
_root.attachMovie("coin", "coin" + _local3, _local3);
_root["coin" + _local3].onEnterFrame = function () {
if (this.hitTest(ball)) {
coinsCollected++;
this.removeMovieClip();
}
};
_local3++;
}
}
function createCoinLineX(startCount, endCount, xpos, ypos) {
var _local2 = startCount;
while (_local2 <= endCount) {
_root["coin" + _local2]._x = xpos + (20 * (_local2 - startCount));
_root["coin" + _local2]._y = ypos;
_local2++;
}
}
function drawLevel(lev) {
black_bg._alpha = 25;
description._alpha = 100;
pauseGame = true;
description.enabled = true;
coinsCollected = 0;
switch (lev) {
case 1 :
levelText = ("Level " + level) + "\n\nThe basics of this game, jump from the first sling to the other one.";
ball_xpos = (Stage.width / 2) - 125;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 125;
finish_ypos = 200;
xpos = (Stage.width / 2) - 125;
ypos = 300;
xpos2 = (Stage.width / 2) + 125;
ypos2 = 300;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 2 :
levelText = ("Level " + level) + "\n\nA jump to the other side!";
ball_xpos = (Stage.width / 2) - 225;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 225;
finish_ypos = 200;
xpos = (Stage.width / 2) - 225;
ypos = 300;
xpos2 = (Stage.width / 2) + 225;
ypos2 = 300;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 3 :
levelText = ("Level " + level) + "\n\nBe the sling..";
ball_xpos = 100;
ball_ypos = 75;
finish_xpos = Stage.width - 100;
finish_ypos = 100;
xpos = 100;
ypos = 160;
xpos2 = Stage.width - 100;
ypos2 = 400;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 4 :
levelText = ("Level " + level) + "\n\nGetting up there...";
ball_xpos = 100;
ball_ypos = 100;
finish_xpos = Stage.width - 100;
finish_ypos = 75;
xpos = 100;
ypos = 375;
xpos2 = Stage.width - 100;
ypos2 = 170;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 5 :
levelText = ("Level " + level) + "\n\nGetting the right speed and aim..";
ball_xpos = 100;
ball_ypos = 120;
finish_xpos = Stage.width - 100;
finish_ypos = 150;
xpos = 100;
ypos = 400;
xpos2 = -999;
ypos2 = 0;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 6 :
levelText = ("Level " + level) + "\n\nA more challenging level?";
coins = 0;
ball_xpos = 150;
ball_ypos = 100;
finish_xpos = Stage.width - 100;
finish_ypos = 125;
xpos = 100;
ypos = 300;
xpos2 = 150;
ypos2 = 150;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
createBlock(1);
block1._x = 204;
block1._y = 76;
block1._yscale = 150;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 7 :
levelText = ("Level " + level) + "\n\nWell, just collect all the coins and finish.";
ball_xpos = (Stage.width / 2) - 150;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 225;
finish_ypos = 150;
xpos = (Stage.width / 2) - 150;
ypos = 300;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 300;
coins = 4;
coinsNeeded = coins;
createCoins(coins);
coin1._x = Stage.width / 2;
coin1._y = 160;
coin2._x = Stage.width / 2;
coin2._y = 180;
coin3._x = (Stage.width / 2) - 210;
coin3._y = 160;
coin4._x = (Stage.width / 2) - 210;
coin4._y = 180;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 8 :
levelText = ("Level " + level) + "\n\nCollect all 3 coins and complete the level.";
ball_xpos = (Stage.width / 2) - 225;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 225;
finish_ypos = 150;
xpos = (Stage.width / 2) - 225;
ypos = 300;
xpos2 = (Stage.width / 2) + 225;
ypos2 = 300;
coins = 3;
coinsNeeded = coins;
createCoins(coins);
coin1._x = Stage.width / 2;
coin1._y = 140;
coin2._x = (Stage.width / 2) + 50;
coin2._y = 155;
coin3._x = (Stage.width / 2) - 50;
coin3._y = 155;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 9 :
levelText = ("Level " + level) + "\n\nCoin-o-mania!";
ball_xpos = (Stage.width / 2) - 150;
ball_ypos = 120;
finish_xpos = (Stage.width / 2) + 150;
finish_ypos = 120;
xpos = (Stage.width / 2) - 150;
ypos = 300;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 300;
coins = 60;
coinsNeeded = 50;
createCoins(coins);
createCoinLineX(1, 20, 130, 140);
createCoinLineX(21, 40, 130, 160);
createCoinLineX(41, 60, 130, 180);
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 10 :
levelText = ("Level " + level) + "\n\nJumping to new heights!";
ball_xpos = (Stage.width / 2) - 150;
ball_ypos = 120;
finish_xpos = (Stage.width / 2) + 150;
finish_ypos = 120;
xpos = (Stage.width / 2) - 150;
ypos = 400;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 400;
coins = 1;
coinsNeeded = coins;
createCoins(coins);
coin1._x = Stage.width / 2;
coin1._y = 100;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 11 :
levelText = ("Level " + level) + "\n\nIt's all about the timing...";
ball_xpos = (Stage.width / 2) - 150;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 225;
finish_ypos = 150;
xpos = (Stage.width / 2) - 150;
ypos = 300;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 300;
coins = 2;
coinsNeeded = coins;
createCoins(coins);
coin1._x = (Stage.width / 2) - 120;
coin2._x = (Stage.width / 2) - 180;
coin1._y = 180;
coin2._y = 180;
createBlock(2);
block1._x = Stage.width / 2;
block1._y = 0;
block1._yscale = Stage.height / 2;
block2._x = Stage.width / 2;
block2._y = Stage.height - 100;
block2._yscale = Stage.height / 2;
createMovingBlock(200, Stage.height / 2, (Stage.height - 100) / 2);
block_moving._x = Stage.width / 2;
block_moving._y = (Stage.height / 2) / 2;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 12 :
levelText = ("Level " + level) + "\n\nTiming, timing, timing...";
ball_xpos = (Stage.width / 2) - 150;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 150;
finish_ypos = 150;
xpos = (Stage.width / 2) - 150;
ypos = 300;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 300;
coins = 2;
coinsNeeded = coins;
createCoins(coins);
coin1._x = (Stage.width / 2) - 50;
coin2._x = (Stage.width / 2) + 50;
coin1._y = 180;
coin2._y = 180;
createMovingBlock(200, Stage.height / 2, Stage.height / 2);
block_moving._x = Stage.width / 2;
block_moving._y = (Stage.height / 2) / 2;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 13 :
levelText = ("Level " + level) + "\n\nHow...?";
ball_xpos = (Stage.width / 2) - 225;
ball_ypos = 100;
finish_xpos = (Stage.width / 2) + 150;
finish_ypos = 150;
xpos = (Stage.width / 2) - 225;
ypos = 400;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 400;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
createBlock(2);
block1._x = Stage.width - block1._width;
block1._y = Stage.height / 2;
block1._yscale = Stage.height;
block2._x = (Stage.width / 2) + 100;
block2._y = 100;
block2._yscale = 200;
createDeathBlock(1);
block_death1._x = (Stage.width / 2) + 151.5;
block_death1._y = 199;
block_death1._rotation = 90;
block_death1._yscale = 100;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 14 :
levelText = ("Level " + level) + "\n\nSkills...?";
ball_xpos = 70;
ball_ypos = 100;
finish_xpos = Stage.width - 150;
finish_ypos = 400;
xpos = 70;
ypos = 400;
xpos2 = -900;
ypos2 = 0;
coins = 0;
coinsNeeded = coins;
createCoins(coins);
createBlock(2);
block1._x = 4;
block1._y = Stage.height / 2;
block1._yscale = Stage.height;
block2._x = 130;
block2._y = Stage.height / 2;
block2._yscale = 175;
createDeathBlock(3);
block_death1._x = Stage.width / 2;
block_death1._y = Stage.height;
block_death1._yscale = Stage.height;
block_death2._x = 130;
block_death2._y = (Stage.height / 2) - 90;
block_death2._yscale = 5;
block_death2._xscale = 200;
block_death3._x = 130;
block_death3._y = (Stage.height / 2) + 90;
block_death3._yscale = 5;
block_death3._xscale = 200;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
case 15 :
levelText = ("Level " + level) + "\n\nThe final level!";
ball_xpos = (Stage.width / 2) - 150;
ball_ypos = 150;
finish_xpos = (Stage.width / 2) + 150;
finish_ypos = 150;
xpos = (Stage.width / 2) - 150;
ypos = 400;
xpos2 = (Stage.width / 2) + 150;
ypos2 = 400;
coins = 6;
coinsNeeded = coins;
createCoins(coins);
coin1._x = (Stage.width / 2) - 200;
coin1._y = 160;
coin2._x = (Stage.width / 2) - 200;
coin2._y = 200;
coin3._x = Stage.width / 2;
coin3._y = 160;
coin4._x = Stage.width / 2;
coin4._y = 200;
coin5._x = (Stage.width / 2) + 200;
coin5._y = 160;
coin6._x = (Stage.width / 2) + 200;
coin6._y = 200;
createDeathBlock(2);
block_death1._x = Stage.width / 2;
block_death1._y = (Stage.height / 2) + 100;
block_death1._yscale = 200;
block_death1._xscale = 800;
block_death2._x = Stage.width / 2;
block_death2._y = (Stage.height / 2) + 300;
block_death2._yscale = 200;
block_death2._xscale = 800;
createBlock(1);
block1._x = Stage.width / 2;
block1._y = 20;
block1._yscale = 200;
block1._xscale = 800;
createMovingBlock(100, 200, 40);
block_moving._x = Stage.width / 2;
block_moving._y = (Stage.height / 2) / 2;
block_moving._xscale = 800;
attachMovie("node", "node1_1", -1, {_x:xpos - 50, _y:ypos});
attachMovie("node", "node1_2", -2, {_x:xpos + 50, _y:ypos});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:xpos2 - 50, _y:ypos2});
attachMovie("node", "node2_2", -5, {_x:xpos2 + 50, _y:ypos2});
_root.createEmptyMovieClip("line2", -6);
break;
default :
level--;
drawLevel(level);
}
}
_root.attachMovie("level_info", "level_info", 998, {_x:10, _y:10});
_root.attachMovie("finish", "finish", 999);
_root.attachMovie("ball", "ball", 1000);
_root.createEmptyMovieClip("black_bg", 1001);
_root.attachMovie("description", "description", 1002, {_x:Stage.width / 2, _y:Stage.height / 2});
black_bg.clear();
black_bg.beginFill(0, 100);
black_bg.moveTo(0, 0);
black_bg.lineTo(640, 0);
black_bg.lineTo(640, 480);
black_bg.lineTo(0, 480);
black_bg.endFill();
black_bg._alpha = 0;
var dragging = false;
var acc = {x:0, y:0};
var vel = {x:0, y:0};
var gravity = 0.2;
var radius = ((ball._height / 2) - 1);
var forced = false;
var forced2 = false;
var ready = false;
var ready2 = false;
var angle1 = 0;
var angle2 = 0;
var elasticCoefficient = 0.015;
var pauseGame = false;
var slinging = false;
var slinging2 = false;
var level = 1;
var xpos = 0;
var ypos = 0;
var xpos2 = 0;
var ypos2 = 0;
var ball_xpos = 0;
var ball_ypos = 0;
var finish_xpos = 0;
var finish_ypos = 0;
var coinsCollected = 0;
var wallHit = false;
drawLevel(level);
ball.onEnterFrame = function () {
if (pauseGame) {
ball._x = ball_xpos;
ball._y = ball_ypos;
finish._x = finish_xpos;
finish._y = finish_ypos;
if (Key.isDown(32)) {
black_bg._alpha = 0;
description._alpha = 0;
description.enabled = false;
description.descriptionText.text = "";
pauseGame = false;
}
}
if (Key.isDown(37) and (!pauseGame)) {
vel.x = vel.x - 0.1;
} else if (Key.isDown(39) and (!pauseGame)) {
vel.x = vel.x + 0.1;
}
if ((ball._x - radius) < 0) {
vel.x = vel.x + Math.sqrt(vel.x * vel.x);
} else if ((ball._x + radius) > 640) {
vel.x = vel.x - Math.sqrt(vel.x * vel.x);
}
if ((ball._y > Stage.height) and (!ready2)) {
reset();
}
if (this.hitTest(finish) and (coinsCollected >= coinsNeeded)) {
node1_1.removeMovieClip();
node1_2.removeMovieClip();
node2_1.removeMovieClip();
node2_2.removeMovieClip();
line.removeMovieClip();
line2.removeMovieClip();
var _local3 = 1;
while (_local3 <= coins) {
_root["coin" + _local3].removeMovieClip();
_local3++;
}
_local3 = 1;
while (_local3 <= 10) {
_root["block" + _local3].removeMovieClip();
_local3++;
}
_local3 = 1;
while (_local3 <= 10) {
_root["block_death" + _local3].removeMovieClip();
_local3++;
}
block_moving.removeMovieClip();
if (level == 15) {
ball.removeMovieClip();
finish.removeMovieClip();
level_info.removeMovieClip();
node1_1.removeMovieClip();
node1_2.removeMovieClip();
node2_1.removeMovieClip();
node2_2.removeMovieClip();
_local3 = 1;
while (_local3 <= coins) {
_root["coin" + _local3].removeMovieClip();
_local3++;
}
_local3 = 1;
while (_local3 <= 10) {
_root["block" + _local3].removeMovieClip();
_local3++;
}
_local3 = 1;
while (_local3 <= 10) {
_root["block_death" + _local3].removeMovieClip();
_local3++;
}
block_moving.removeMovieClip();
attachMovie("node", "node1_1", -1, {_x:0, _y:-100});
attachMovie("node", "node1_2", -2, {_x:0, _y:-100});
_root.createEmptyMovieClip("line", -3);
attachMovie("node", "node2_1", -4, {_x:0, _y:-100});
attachMovie("node", "node2_2", -5, {_x:0, _y:-100});
_root.createEmptyMovieClip("line2", -6);
gotoAndStop (6);
} else {
level++;
drawLevel(level);
}
}
ball_radian = Math.atan2(vel.y, vel.x);
ball_angle = (ball_radian * 180) / Math.PI;
ball._x = ball._x + vel.x;
ball._y = ball._y + vel.y;
};
this.onEnterFrame = function () {
line.clear();
line.lineStyle(2, 0);
if ((((ball._y + radius) < node1_1._y) and (ball._x > node1_1._x)) and (ball._x < node1_2._x)) {
ready = true;
} else if ((ball._x < node1_1._x) or (ball._x > node1_2._x)) {
ready = false;
}
if (((((ball._y + radius) > node1_1._y) and (ball._x > node1_1._x)) and (ball._x < node1_2._x)) and ready) {
slinging = true;
} else if (ball._y < node1_1._y) {
slinging = false;
}
if (slinging == true) {
forced = true;
var _local5 = ball._x - node1_1._x;
var _local3 = ball._y - node1_1._y;
var _local4 = node1_2._x - ball._x;
var _local2 = node1_2._y - ball._y;
var _local6 = Math.sqrt((_local5 * _local5) + (_local3 * _local3));
var _local7 = Math.sqrt((_local4 * _local4) + (_local2 * _local2));
_root.angle1 = Math.atan2(_local3, _local5);
_root.angle2 = Math.atan2(_local2, _local4);
var _local11 = Math.cos(angle1 + (Math.PI/2)) * radius;
var _local10 = Math.sin(angle1 + (Math.PI/2)) * radius;
var _local8 = Math.cos(angle2 + (Math.PI/2)) * radius;
var _local9 = Math.sin(angle2 + (Math.PI/2)) * radius;
angle1 = angle1 + Math.sin(radius / _local6);
angle2 = angle2 + (Math.sin(radius / _local7) * -1);
line.moveTo(node1_1._x, node1_1._y);
line.lineTo(ball._x + _local11, ball._y + _local10);
line.moveTo(node1_2._x, node1_2._y);
line.lineTo(ball._x + _local8, ball._y + _local9);
}
if (slinging == false) {
forced = false;
line.moveTo(node1_1._x, node1_1._y);
line.lineTo(node1_2._x, node1_2._y);
}
line2.clear();
line2.lineStyle(2, 0);
if ((((ball._y + radius) < node2_1._y) and (ball._x > node2_1._x)) and (ball._x < node2_2._x)) {
ready2 = true;
} else if ((ball._x < node2_1._x) or (ball._x > node2_2._x)) {
ready2 = false;
}
if (((((ball._y + radius) > node2_1._y) and (ball._x > node2_1._x)) and (ball._x < node2_2._x)) and ready2) {
slinging2 = true;
} else if (ball._y < node2_1._y) {
slinging2 = false;
}
if (slinging2 == true) {
forced2 = true;
var _local5 = ball._x - node2_1._x;
var _local3 = ball._y - node2_1._y;
var _local4 = node2_2._x - ball._x;
var _local2 = node2_2._y - ball._y;
var _local6 = Math.sqrt((_local5 * _local5) + (_local3 * _local3));
var _local7 = Math.sqrt((_local4 * _local4) + (_local2 * _local2));
_root.angle1 = Math.atan2(_local3, _local5);
_root.angle2 = Math.atan2(_local2, _local4);
var _local11 = Math.cos(angle1 + (Math.PI/2)) * radius;
var _local10 = Math.sin(angle1 + (Math.PI/2)) * radius;
var _local8 = Math.cos(angle2 + (Math.PI/2)) * radius;
var _local9 = Math.sin(angle2 + (Math.PI/2)) * radius;
angle1 = angle1 + Math.sin(radius / _local6);
angle2 = angle2 + (Math.sin(radius / _local7) * -1);
line2.moveTo(node2_1._x, node2_1._y);
line2.lineTo(ball._x + _local11, ball._y + _local10);
line2.moveTo(node2_2._x, node2_2._y);
line2.lineTo(ball._x + _local8, ball._y + _local9);
}
if (slinging2 == false) {
forced2 = false;
line2.moveTo(node2_1._x, node2_1._y);
line2.lineTo(node2_2._x, node2_2._y);
}
acc.x = 0;
acc.y = 0;
acc.y = gravity;
if (forced or forced2) {
acc.x = acc.x + ((_local6 * Math.sin(angle2)) * elasticCoefficient);
acc.y = acc.y + (((-_local6) * Math.cos(angle1)) * elasticCoefficient);
acc.x = acc.x + ((_local7 * Math.sin(angle1)) * elasticCoefficient);
acc.y = acc.y + (((-_local7) * Math.cos(angle2)) * elasticCoefficient);
}
vel.x = vel.x + acc.x;
vel.y = vel.y + acc.y;
};
description.onEnterFrame = function () {
if (pauseGame) {
vel.x = 0;
vel.y = 0;
description.descriptionText.text = levelText;
}
};
level_info.onEnterFrame = function () {
this.levelInfo.text = (((("Level " + level) + "\nCoins: ") + coinsCollected) + "/") + coinsNeeded;
};
Frame 6
menu_btn.onPress = function () {
gotoAndStop (3);
};
Symbol 48 MovieClip [__Packages.MochiAd] Frame 0
class MochiAd
{
function MochiAd () {
}
static function getVersion() {
return("2.3");
}
static function showPreGameAd(options) {
var _local27 = {clip:_root, ad_timeout:3000, fadeout_time:250, regpt:"o", method:"showPreloaderAd", color:16747008, background:16777161, outline:13994812, ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}};
options = _parseOptions(options, _local27);
if ("5cc6f7dfb67f2f08341c831480f7c2a7".length == 0) {
options.ad_started();
options.ad_finished();
return(undefined);
}
var clip = options.clip;
var _local23 = 11000;
var _local26 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local14 = _getRes(options);
var _local4 = _local14[0];
var _local13 = _local14[1];
mc._x = _local4 * 0.5;
mc._y = _local13 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk._x = _local4 * -0.5;
chk._y = _local13 * -0.5;
var _local7 = chk.createEmptyMovieClip("_mochiad_bar", 4);
_local7._x = 10;
_local7._y = _local13 - 20;
var _local22 = options.color;
delete options.color;
var _local19 = options.background;
delete options.background;
var _local24 = options.outline;
delete options.outline;
var _local5 = _local7.createEmptyMovieClip("_outline", 1);
_local5.beginFill(_local19);
_local5.moveTo(0, 0);
_local5.lineTo(_local4 - 20, 0);
_local5.lineTo(_local4 - 20, 10);
_local5.lineTo(0, 10);
_local5.lineTo(0, 0);
_local5.endFill();
var _local3 = _local7.createEmptyMovieClip("_inside", 2);
_local3.beginFill(_local22);
_local3.moveTo(0, 0);
_local3.lineTo(_local4 - 20, 0);
_local3.lineTo(_local4 - 20, 10);
_local3.lineTo(0, 10);
_local3.lineTo(0, 0);
_local3.endFill();
_local3._xscale = 0;
var _local6 = _local7.createEmptyMovieClip("_outline", 3);
_local6.lineStyle(0, _local24, 100);
_local6.moveTo(0, 0);
_local6.lineTo(_local4 - 20, 0);
_local6.lineTo(_local4 - 20, 10);
_local6.lineTo(0, 10);
_local6.lineTo(0, 0);
chk.ad_msec = _local23;
chk.ad_timeout = _local26;
chk.started = getTimer();
chk.showing = false;
chk.last_pcnt = 0;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec;
};
chk.onEnterFrame = function () {
var _local6 = this._parent._parent;
var _local12 = this._parent._mochiad_ctr;
var _local5 = getTimer() - this.started;
var _local3 = false;
var _local4 = _local6.getBytesTotal();
var _local8 = _local6.getBytesLoaded();
var _local10 = (100 * _local8) / _local4;
var _local11 = (100 * _local5) / chk.ad_msec;
var _local9 = this._mochiad_bar._inside;
var _local2 = Math.min(100, Math.min(_local10 || 0, _local11));
_local2 = Math.max(this.last_pcnt, _local2);
this.last_pcnt = _local2;
_local9._xscale = _local2;
if (!chk.showing) {
var _local7 = _local12.getBytesTotal();
if ((_local7 > 0) || (typeof(_local7) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local5 > chk.ad_timeout) {
options.ad_failed();
_local3 = true;
}
}
if (_local5 > chk.ad_msec) {
_local3 = true;
}
if (((_local4 > 0) && (_local8 >= _local4)) && (_local3)) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = chk.fadeFunction;
}
}
};
}
static function showInterLevelAd(options) {
var _local13 = {clip:_root, ad_timeout:2000, fadeout_time:250, regpt:"o", method:"showTimedAd", ad_started:function () {
this.clip.stop();
}, ad_finished:function () {
this.clip.play();
}, ad_failed:function () {
trace("[MochAd] Couldn't load an ad, make sure that your game's local security sandbox is configured for Access Network Only and that you are not using ad blocking software");
}, ad_loaded:function (width, height) {
}};
options = _parseOptions(options, _local13);
var clip = options.clip;
var _local10 = 11000;
var _local12 = options.ad_timeout;
delete options.ad_timeout;
var fadeout_time = options.fadeout_time;
delete options.fadeout_time;
if (!load(options)) {
options.ad_failed();
options.ad_finished();
return(undefined);
}
options.ad_started();
var mc = clip._mochiad;
mc.onUnload = function () {
options.ad_finished();
};
var _local5 = _getRes(options);
var _local14 = _local5[0];
var _local11 = _local5[1];
mc._x = _local14 * 0.5;
mc._y = _local11 * 0.5;
var chk = mc.createEmptyMovieClip("_mochiad_wait", 3);
chk.ad_msec = _local10;
chk.ad_timeout = _local12;
chk.started = getTimer();
chk.showing = false;
chk.fadeout_time = fadeout_time;
chk.fadeFunction = function () {
var _local2 = 100 * (1 - ((getTimer() - this.fadeout_start) / this.fadeout_time));
if (_local2 > 0) {
this._parent._alpha = _local2;
} else {
var _local3 = this._parent._parent;
MochiAd.unload(_local3);
delete this.onEnterFrame;
}
};
mc.lc.adLoaded = options.ad_loaded;
mc.lc.adjustProgress = function (msec) {
var _local2 = this.mc._mochiad_wait;
_local2.server_control = true;
_local2.started = getTimer();
_local2.ad_msec = msec - 250;
};
chk.onEnterFrame = function () {
var _local5 = this._parent._mochiad_ctr;
var _local4 = getTimer() - this.started;
var _local2 = false;
if (!chk.showing) {
var _local3 = _local5.getBytesTotal();
if ((_local3 > 0) || (typeof(_local3) == "undefined")) {
chk.showing = true;
chk.started = getTimer();
} else if (_local4 > chk.ad_timeout) {
options.ad_failed();
_local2 = true;
}
}
if (_local4 > chk.ad_msec) {
_local2 = true;
}
if (_local2) {
if (this.server_control) {
delete this.onEnterFrame;
} else {
this.fadeout_start = getTimer();
this.onEnterFrame = this.fadeFunction;
}
}
};
}
static function showTimedAd(options) {
trace("[MochiAd] DEPRECATED: showTimedAd was renamed to showInterLevelAd in 2.0");
showInterLevelAd(options);
}
static function showPreloaderAd(options) {
trace("[MochiAd] DEPRECATED: showPreloaderAd was renamed to showPreGameAd in 2.0");
showPreGameAd(options);
}
static function _allowDomains(server) {
var _local1 = server.split("/")[2].split(":")[0];
if (System.security) {
if (System.security.allowDomain) {
System.security.allowDomain("*");
System.security.allowDomain(_local1);
}
if (System.security.allowInsecureDomain) {
System.security.allowInsecureDomain("*");
System.security.allowInsecureDomain(_local1);
}
}
return(_local1);
}
static function _loadCommunicator(options) {
var _local26 = {clip:_root, com_server:"http://x.mochiads.com/com/1/", method:"loadCommunicator", depth:10337, id:"_UNKNOWN_"};
options = _parseOptions(options, _local26);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local18 = options.clip;
var _local20 = "_mochiad_com_" + options.id;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local18[_local20]) {
return(_local18[_local20].lc);
}
var _local21 = options.com_server + options.id;
_allowDomains(_local21);
delete options.id;
delete options.com_server;
var _local25 = options.depth;
delete options.depth;
var _local17 = _local18.createEmptyMovieClip(_local20, _local25);
var _local11 = _local17.createEmptyMovieClip("_mochiad_com", 1);
for (var _local15 in options) {
_local11[_local15] = options[_local15];
}
var _local6 = new LocalConnection();
var _local16 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local6.mc = _local17;
_local6.name = _local16;
_local6.allowDomain = function (d) {
return(true);
};
_local6.allowInsecureDomain = _local6.allowDomain;
_local6.connect(_local16);
_local17.lc = _local6;
_local11.lc = _local16;
_local6._id = 0;
_local6._queue = [];
_local6.rpcResult = function (cb_arg) {
var _local8 = parseInt(cb_arg);
var _local4 = this._callbacks[_local8];
if (!_local4) {
return(undefined);
}
delete this._callbacks[_local8];
var _local5 = [];
var _local3 = 2;
while (_local3 < _local4.length) {
_local5.push(_local4[_local3]);
_local3++;
}
_local3 = 1;
while (_local3 < arguments.length) {
_local5.push(arguments[_local3]);
_local3++;
}
var _local6 = _local4[1];
var _local7 = _local4[0];
if (_local7 && (typeof(_local6) == "string")) {
_local6 = _local7[_local6];
}
if (_local6) {
_local6.apply(_local7, _local5);
}
};
_local6._didConnect = function (endpoint) {
this._endpoint = endpoint;
var _local4 = this._queue;
delete this._queue;
var _local5 = this.doSend;
var _local2 = 0;
while (_local2 < _local4.length) {
var _local3 = _local4[_local2];
_local5.apply(this, _local3);
_local2++;
}
};
_local6.doSend = function (args, cbobj, cbfn) {
if (this._endpoint == null) {
var _local4 = [];
var _local3 = 0;
while (_local3 < arguments.length) {
_local4.push(arguments[_local3]);
_local3++;
}
this._queue.push(_local4);
return(undefined);
}
this._id = this._id + 1;
var _local5 = this._id;
if ((cbfn === undefined) || (cbfn === null)) {
cbfn = cbobj;
}
this._callbacks[_local5] = [cbobj, cbfn];
var _local7 = new LocalConnection();
var _local9 = _local7.send(this._endpoint, "rpc", _local5, args);
};
_local6._callbacks = {};
_local6._callbacks[0] = [_local6, "_didConnect"];
_local11.st = getTimer();
_local11.loadMovie(_local21 + ".swf", "POST");
return(_local6);
}
static function fetchHighScores(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["fetchHighScores", options];
_local1.doSend(["fetchHighScores", options], callbackObj, callbackMethod);
return(true);
}
static function sendHighScore(options, callbackObj, callbackMethod) {
var _local1 = _loadCommunicator({id:options.id});
if (!_local1) {
return(false);
}
var _local4 = ["sendHighScore", options];
_local1.doSend(["sendHighScore", options], callbackObj, callbackMethod);
return(true);
}
static function load(options) {
var _local13 = {clip:_root, server:"http://x.mochiads.com/srv/1/", method:"load", depth:10333, id:"_UNKNOWN_"};
options = _parseOptions(options, _local13);
options.swfv = options.clip.getSWFVersion() || 6;
options.mav = getVersion();
var _local9 = options.clip;
if (!_isNetworkAvailable()) {
return(null);
}
if (_local9._mochiad_loaded) {
return(null);
}
var _local12 = options.depth;
delete options.depth;
var _local6 = _local9.createEmptyMovieClip("_mochiad", _local12);
var _local11 = _getRes(options);
options.res = (_local11[0] + "x") + _local11[1];
options.server = options.server + options.id;
delete options.id;
_local9._mochiad_loaded = true;
var _local4 = _local6.createEmptyMovieClip("_mochiad_ctr", 1);
for (var _local7 in options) {
_local4[_local7] = options[_local7];
}
var _local10 = _local4.server;
delete _local4.server;
var _local14 = _allowDomains(_local10);
_local6.onEnterFrame = function () {
if (this._mochiad_ctr._url != this._url) {
this.onEnterFrame = function () {
if (!this._mochiad_ctr) {
delete this.onEnterFrame;
MochiAd.unload(this._parent);
}
};
}
};
var _local5 = new LocalConnection();
var _local8 = ["", Math.floor(new Date().getTime()), random(999999)].join("_");
_local5.mc = _local6;
_local5.name = _local8;
_local5.hostname = _local14;
_local5.allowDomain = function (d) {
return(true);
};
_local5.allowInsecureDomain = _local5.allowDomain;
_local5.connect(_local8);
_local6.lc = _local5;
_local4.lc = _local8;
_local4.st = getTimer();
_local4.loadMovie(_local10 + ".swf", "POST");
return(_local6);
}
static function unload(clip) {
if (typeof(clip) == "undefined") {
clip = _root;
}
if (clip.clip && (clip.clip._mochiad)) {
clip = clip.clip;
}
if (!clip._mochiad) {
return(false);
}
clip._mochiad.removeMovieClip();
delete clip._mochiad_loaded;
delete clip._mochiad;
return(true);
}
static function _isNetworkAvailable() {
if (System.security) {
var _local1 = System.security;
if (_local1.sandboxType == "localWithFile") {
return(false);
}
}
return(true);
}
static function _getRes(options) {
var _local3 = options.clip.getBounds();
var _local2 = 0;
var _local1 = 0;
if (typeof(options.res) != "undefined") {
var _local4 = options.res.split("x");
_local2 = parseFloat(_local4[0]);
_local1 = parseFloat(_local4[1]);
} else {
_local2 = _local3.xMax - _local3.xMin;
_local1 = _local3.yMax - _local3.yMin;
}
if ((_local2 == 0) || (_local1 == 0)) {
_local2 = Stage.width;
_local1 = Stage.height;
}
return([_local2, _local1]);
}
static function _parseOptions(options, defaults) {
var _local4 = {};
for (var _local8 in defaults) {
_local4[_local8] = defaults[_local8];
}
if (options) {
for (var _local8 in options) {
_local4[_local8] = options[_local8];
}
}
if (_root.mochiad_options) {
var _local5 = _root.mochiad_options.split("&");
var _local2 = 0;
while (_local2 < _local5.length) {
var _local3 = _local5[_local2].split("=");
_local4[unescape(_local3[0])] = unescape(_local3[1]);
_local2++;
}
}
if (_local4.id == "test") {
trace("[MochiAd] WARNING: Using the MochiAds test identifier, make sure to use the code from your dashboard, not this example!");
}
return(_local4);
}
}