Frame 1
((this == _level0) ? (play()) : (stop()));
var kid1Blowing = true;
var kid2Blowing = true;
var boatSpeed = 3;
var boatsLeft = 3;
var boatInvul = false;
var boatMoving = true;
var boatDestroyed = false;
var boatResetting = false;
var gameOver = false;
var score = 0;
var scorePerLevel = 50;
var scorePerFrame = 1;
var obstacles = new Array();
var maxCeiling = 0;
var maxFloor = 500;
var maxLeft = 170;
var maxRight = 310;
ASSetPropFlags(MovieClip.prototype, "detectCollision", 1);
obstacles = new Array();
obstacles[1] = "stone1,slime1,slime2,gutter,coin1";
obstacles[2] = "stone1,stone2,slime1,slime2,gutter,coin1,coin2";
obstacles[3] = "stone1,stone2,stone3,slime1,slime2,gutter,coin1,coin2";
obstacles[4] = "stone1,stone2,stone3,slime1,slime2,phlegm,gutter,coin1,coin2";
obstacles[5] = "stone1,stone2,stone3,slime1,slime2,phlegm,beercan,gutter,coin1,coin2";
obstacles[6] = "stone1,stone2,stone3,slime1,slime2,phlegm,beercan,bottle,frog,gutter,coin1,coin2";
obstacles[7] = "stone1,stone2,stone3,slime1,slime2,phlegm,beercan,bottle,frog,cigarette,gutter,coin1,coin2";
obstacles[8] = "stone1,stone2,stone3,slime1,slime2,phlegm,beercan,bottle,frog,cigarette,turd,gutter,coin1,coin2";
obstacles[9] = "stone1,stone2,stone3,slime1,slime2,phlegm,beercan,bottle,frog,cigarette,turd,gutter,coin1,coin2";
obstacles[10] = "stone1,stone2,stone3,slime1,slime2,phlegm,beercan,bottle,frog,cigarette,turd,gutter,coin1,coin2";
obstaclesActive = new Array();
obstaclesActive[1] = false;
obstaclesActive[2] = false;
obstaclesActive[3] = false;
obstaclesActive[4] = false;
obstaclesActive[5] = false;
obstacleSpecs = new Array();
obstacleSpecs[1] = "0,250,75";
obstacleSpecs[2] = "90,165,100";
obstacleSpecs[3] = "45,175,75";
obstacleSpecs[4] = "180,290,100";
obstacleSpecs[5] = "270,280,75";
function blow(kidNum) {
var _local1 = kidNum;
var _local2 = _root;
if (_local2[("kid" add _local1) add "Blowing"] == false) {
_local2["kid" add _local1].gotoAndPlay("goblow");
_local2[("kid" add _local1) add "Blowing"] = true;
} else {
_local2["kid" add _local1].gotoAndPlay("stopblow");
_local2[("kid" add _local1) add "Blowing"] = false;
}
}
function boatMove(k1, k2, right, left, x) {
var _local1 = _root;
var _local2 = k1;
var _local3 = k2;
totalDist = right - left;
distLeft = x - left;
distRight = right - x;
if (_local2 != _local3) {
maxWind = 1.25;
if (_local3 == true) {
wind = maxWind - ((distLeft / totalDist) * maxWind);
if (wind > (maxWind * 0.75)) {
_local1.boat.gotoAndPlay("right2");
} else {
_local1.boat.gotoAndPlay("right1");
}
if (wind < 0.6) {
wind = 0.6;
}
if (_local1.boat._x < _local1.maxRight) {
_local1.boat._x = _local1.boat._x + wind;
_local1.ripples._x = _local1.ripples._x + wind;
}
if (_local1.boat._rotation > -15) {
_local1.boat._rotation = _local1.boat._rotation - wind;
_local1.ripples._rotation = _local1.ripples._rotation - wind;
}
} else if (_local2 == true) {
wind = maxWind - ((distRight / totalDist) * maxWind);
if (wind > (maxWind * 0.75)) {
_local1.boat.gotoAndPlay("left2");
} else {
_local1.boat.gotoAndPlay("left1");
}
if (wind < 0.6) {
wind = 0.6;
}
if (_local1.boat._x > _local1.maxLeft) {
_local1.boat._x = _local1.boat._x - wind;
_local1.ripples._x = _local1.ripples._x - wind;
}
if (_local1.boat._rotation < 15) {
_local1.boat._rotation = _local1.boat._rotation + wind;
_local1.ripples._rotation = _local1.ripples._rotation + wind;
}
}
} else {
if ((_local2 == true) && (_local3 == true)) {
maxWind = 0.5;
} else {
maxWind = 0.1;
}
if (_local1.boatInvul == false) {
_local1.boat.gotoAndPlay("default");
}
if (distLeft > distRight) {
wind = maxWind - ((distRight / totalDist) * maxWind);
_local1.boat._x = _local1.boat._x - wind;
_local1.ripples._x = _local1.ripples._x - wind;
} else if (distLeft < distRight) {
wind = maxWind - ((distLeft / totalDist) * maxWind);
_local1.boat._x = _local1.boat._x + wind;
_local1.ripples._x = _local1.ripples._x + wind;
} else {
wind = 0;
}
}
}
function resetBoat() {
var _local1 = _root;
if (_local1.boatResetting == false) {
if (_local1.boatsLeft > 0) {
_local1.boatResetting = true;
_local1.ripples._visible = true;
_local1.boat._x = 240;
_local1.boat._rotation = 0;
_local1.ripples._x = 180;
_local1.ripples._rotation = 0;
_local1.boatsLeft = _local1.boatsLeft - 1;
_local1.refreshHUD();
_local1.boatInvul = true;
_local1.boatMoving = true;
_local1.boatDestroyed = true;
} else {
_local1.gameOver = true;
}
}
}
function renderPowerup() {
var _local1 = _root;
_local1.attachMovie("powerup", "powerupmc", 500);
_local1.powerupmc._x = _local1.boat._x + 10;
_local1.powerupmc._y = _local1.boat._y + 10;
}
function detectCollision(clip) {
var _local1 = clip;
var _local2 = _root;
var _local3 = true;
for (i in _local1.perim) {
if (_local3 == true) {
_local1.perim.localToGlobal((p = {x:_local1.perim[i]._x, y:_local1.perim[i]._y}));
if (_local2.boat.hitTest(p.x, p.y, true)) {
_local3 = false;
if (_local1.powerup == false) {
_local2.boat.gotoAndPlay("sink");
_local2.boatDestroyed = true;
_local2.boatMoving = false;
_local2.ripples._visible = false;
} else {
_local1.gotoAndPlay("used");
_local2.renderPowerup();
_local2.addToScore(_local1.bonus);
}
}
} else {
break;
}
}
}
function refreshScore() {
var _local1 = _root;
if (((_local1.boatMoving == true) && (_local1.boatDestroyed == false)) && (_local1.boatInvul == false)) {
_local1.scoreText = _local1.score;
_local1.score = _local1.score + _local1.scorePerFrame;
}
}
function addToScore(num) {
var _local1 = _root;
_local1.score = _local1.score + num;
_local1.scoreText = _local1.score;
}
function refreshHUD() {
var _local1 = _root;
_local1.HUD.numboats = _local1.boatsLeft;
_local1.HUD.gotoAndPlay(2);
}
function renderObstacles() {
var _local1 = _root;
var startAt = 0.3;
var _local2 = Math.floor(_local1.score / _local1.scorePerLevel) + 1;
if ((_local2 > 4) && (_local2 <= 6)) {
_local1.boatSpeed = 3.5;
} else if ((_local2 > 6) && (_local2 <= 8)) {
_local1.boatSpeed = 4;
} else if (_local2 > 8) {
_local1.boatSpeed = 4.5;
}
if (_local2 > 10) {
_local2 = 10;
}
var increment = 0.1;
var threshold = (startAt + (_local2 * increment));
if (threshold > 1) {
threshold = 1;
}
var _local3 = getRandomObsNum();
if (_local3 != false) {
var indicator = Math.random();
if ((indicator < threshold) && (_local1.obstaclesActive[_local3] == false)) {
obstacleName = selectObstacle(_local2, _local1.obstacles);
if ((obstacleName == "gutter") && (_local3 != 5)) {
while (obstacleName == "gutter") {
obstacleName = selectObstacle(_local2, _local1.obstacles);
}
}
_local1.obstaclesActive[_local3] = obstacleName add "mc";
_local1["obs" add _local3].selfnum = _local3;
_local1["obs" add _local3].obstacleName = obstacleName;
_local1["obs" add _local3].obstacleAngle = selectObstacleSpec(_local3, _local1.obstacleSpecs, 0);
_local1["obs" add _local3].obstaclePos = selectObstacleSpec(_local3, _local1.obstacleSpecs, 1);
_local1["obs" add _local3].obstacleScale = selectObstacleSpec(_local3, _local1.obstacleSpecs, 2);
_local1["obs" add _local3].gotoAndPlay(2);
}
}
}
function selectObstacle(level, obstacleArr) {
var _local1 = obstacleArr[level];
tArr = _local1.split(",");
tLen = tArr.length;
num = Math.floor(Math.random() * tLen);
return(tArr[num]);
}
function selectObstacleSpec(num, specArr, which) {
var _local1 = specArr[num];
tArr = _local1.split(",");
return(tArr[which]);
}
function getRandomObsNum() {
var _local2 = 0;
var _local1 = 0;
var _local3 = 20;
while (inObsArray(_local2, _root.obstaclesActive)) {
if (_local1 < _local3) {
_local2 = Math.ceil(Math.random() * 5);
_local1 = _local1 + 1;
continue;
return(_local2);
}
}
return(_local2);
return(false);
}
function inArray(v, arr) {
var _local1 = arr;
var _local2 = v;
i = 0;
while (i < _local1.length) {
if (_local2 == _local1[i]) {
return(true);
}
i++;
}
return(false);
}
function inObsArray(v) {
if (_root.obstaclesActive[v] != false) {
return(true);
}
return(false);
}
Frame 6
stop();
Frame 9
stop();
Frame 13
_root.boatMoving = false;
_root.boatInvul = true;
_root.boatDestroyed = true;
stop();
Frame 14
stop();
Frame 17
stop();
Frame 18
if ((_root.boatDestroyed == false) && (_root.boatMoving == true)) {
boatMove(_root.kid1Blowing, _root.kid2Blowing, _root.maxRight, _root.maxLeft, _root.boat._x);
}
Frame 19
if (_root.gameOver == true) {
gotoAndPlay ("gameover");
} else {
gotoAndPlay ("run");
}
Symbol 8 MovieClip [slime1] Frame 1
powerup = false;
center = true;
canRotate = true;
bonus = 0;
Symbol 15 MovieClip [stone1] Frame 1
powerup = false;
center = true;
canRotate = false;
bonus = 0;
Symbol 21 MovieClip [slime2] Frame 1
powerup = false;
center = true;
canRotate = true;
bonus = 0;
Symbol 29 MovieClip [stone2] Frame 1
powerup = false;
center = true;
canRotate = true;
bonus = 0;
Symbol 36 MovieClip [stone3] Frame 1
powerup = false;
center = true;
canRotate = true;
bonus = 0;
Symbol 47 MovieClip Frame 37
gotoAndPlay (1);
Symbol 49 MovieClip [phlegm] Frame 1
powerup = false;
center = true;
canRotate = false;
bonus = 0;
Symbol 59 MovieClip [coin2] Frame 1
powerup = true;
bonus = 5;
Symbol 59 MovieClip [coin2] Frame 12
gotoAndPlay (1);
Symbol 59 MovieClip [coin2] Frame 16
stop();
Symbol 64 MovieClip [coin1] Frame 1
powerup = true;
bonus = 10;
Symbol 64 MovieClip [coin1] Frame 12
gotoAndPlay (1);
Symbol 64 MovieClip [coin1] Frame 17
stop();
Symbol 70 MovieClip [powerup] Frame 23
stop();
Symbol 83 MovieClip [beercan] Frame 1
canRotate = false;
center = true;
powerup = false;
bonus = 0;
Symbol 88 MovieClip Frame 60
gotoAndPlay (1);
Symbol 90 MovieClip [bottle] Frame 1
canRotate = false;
center = true;
powerup = false;
bonus = 0;
Symbol 95 MovieClip [cigarette] Frame 1
canRotate = true;
center = true;
powerup = false;
bonus = 0;
Symbol 101 MovieClip [gutter] Frame 1
powerup = false;
center = false;
canRotate = false;
bonus = 0;
Symbol 107 MovieClip Frame 39
gotoAndPlay (9);
Symbol 108 MovieClip [frog] Frame 1
powerup = false;
center = true;
canRotate = false;
bonus = 0;
Symbol 111 MovieClip [turd] Frame 1
powerup = false;
center = true;
canRotate = true;
bonus = 0;
Symbol 113 MovieClip [obstacle_holder] Frame 1
var selfnum = 0;
var obstacleName = "";
var obstacleAngle = 0;
var obstaclePos = 0;
var obstacleScale = 100;
stop();
Symbol 113 MovieClip [obstacle_holder] Frame 2
this.attachMovie(obstacleName, obstacleName add "mc", 200);
this[obstacleName add "mc"]._y = _root.maxFloor + this[obstacleName add "mc"]._height;
if (obstacleName == "gutter") {
this[obstacleName add "mc"]._x = 265;
} else {
this[obstacleName add "mc"]._x = this.obstaclePos;
}
if (this[obstacleName add "mc"].canRotate == true) {
this[obstacleName add "mc"]._rotation = this.obstacleAngle;
}
this[obstacleName add "mc"]._xscale = this.obstacleScale;
this[obstacleName add "mc"]._yscale = this.obstacleScale;
Symbol 113 MovieClip [obstacle_holder] Frame 3
if (this[obstacleName add "mc"]._y > (_root.maxCeiling - this[obstacleName add "mc"]._height)) {
if (((((this[obstacleName add "mc"]._y < 300) && (this[obstacleName add "mc"]._y > 180)) && (_root.boatInvul == false)) && (_root.boatDestroyed == false)) && (_root.boatMoving == true)) {
_root.detectCollision(this[obstacleName add "mc"]);
}
this[obstacleName add "mc"]._y = this[obstacleName add "mc"]._y - _root.boatSpeed;
} else {
this[obstacleName add "mc"].removeMovieClip();
_root.obstaclesActive[selfnum] = false;
gotoAndPlay (1);
}
Symbol 113 MovieClip [obstacle_holder] Frame 4
gotoAndPlay (3);
Symbol 124 MovieClip Frame 1
stop();
Symbol 124 MovieClip Frame 2
stop();
Symbol 127 MovieClip Frame 1
stop();
Symbol 127 MovieClip Frame 2
stop();
Symbol 130 MovieClip Frame 1
stop();
Symbol 130 MovieClip Frame 2
stop();
Symbol 132 Button
on (rollOver) {
this.bttn_play.gotoAndStop(2);
}
on (rollOut) {
this.bttn_play.gotoAndStop(1);
}
on (press) {
this.bttn_play._xscale = this.bttn_play._xscale - 2;
this.bttn_play._yscale = this.bttn_play._yscale - 2;
}
on (release, releaseOutside) {
_root.gotoAndPlay("run");
}
Symbol 133 Button
on (rollOver) {
this.bttn_help.gotoAndStop(2);
}
on (rollOut) {
this.bttn_help.gotoAndStop(1);
}
on (press) {
this.bttn_help._xscale = this.bttn_help._xscale - 2;
this.bttn_help._yscale = this.bttn_help._yscale - 2;
}
on (release, releaseOutside) {
_root.gotoAndPlay("help");
}
Symbol 134 Button
on (rollOver) {
this.bttn_scores.gotoAndStop(2);
}
on (rollOut) {
this.bttn_scores.gotoAndStop(1);
}
on (press) {
this.bttn_scores._xscale = this.bttn_scores._xscale - 2;
this.bttn_scores._yscale = this.bttn_scores._yscale - 2;
}
on (release, releaseOutside) {
getURL ("arcade_scores.php?gameId=2", "_self");
}
Symbol 156 MovieClip Frame 24
gotoAndPlay ("goblow");
Symbol 156 MovieClip Frame 35
stop();
Symbol 163 MovieClip Frame 24
gotoAndPlay ("goblow");
Symbol 163 MovieClip Frame 35
stop();
Symbol 189 MovieClip Frame 1
Symbol 189 MovieClip Frame 5
stop();
Symbol 189 MovieClip Frame 10
this.gotoAndPlay("default");
Symbol 189 MovieClip Frame 15
stop();
Symbol 189 MovieClip Frame 20
this.gotoAndPlay("default");
Symbol 189 MovieClip Frame 26
stop();
Symbol 189 MovieClip Frame 39
_root.resetBoat();
Symbol 189 MovieClip Frame 40
maxFlashes = 40;
flashes = 0;
Symbol 189 MovieClip Frame 41
if (this.boatX._alpha == 0) {
this.boatX._alpha = 50;
} else {
this.boatX._alpha = 0;
}
Symbol 189 MovieClip Frame 42
if (flashes < maxFlashes) {
flashes++;
gotoAndPlay ("blinking");
} else {
nextFrame();
}
Symbol 189 MovieClip Frame 43
_root.boatDestroyed = false;
_root.boatMoving = true;
_root.boatInvul = false;
_root.boatResetting = false;
gotoAndPlay ("default");
Symbol 199 MovieClip Frame 15
stop();
Symbol 204 Button
on (release, releaseOutside) {
_root.gotoAndPlay(1);
}
on (rollOver) {
this.bttn_tryagain._x = this.bttn_tryagain._x + 5;
this.bttn_tryagain._y = this.bttn_tryagain._y + 5;
}
on (rollOut) {
this.bttn_tryagain._x = this.bttn_tryagain._x - 5;
this.bttn_tryagain._y = this.bttn_tryagain._y - 5;
}
Symbol 205 Button
on (release, releaseOutside) {
getURL ("arcade_scores.php?gameid=2&score=" add _root.score, "_self");
}
on (rollOver) {
this.bttn_highscores._x = this.bttn_highscores._x + 5;
this.bttn_highscores._y = this.bttn_highscores._y + 5;
}
on (rollOut) {
this.bttn_highscores._x = this.bttn_highscores._x - 5;
this.bttn_highscores._y = this.bttn_highscores._y - 5;
}
Symbol 206 MovieClip Frame 30
stop();
Symbol 208 MovieClip Frame 1
ceiling = -waterClip1._height;
floor = waterClip1._height;
Symbol 208 MovieClip Frame 2
if (this.waterClip1._y > ceiling) {
this.waterClip1._y = this.waterClip1._y - _root.boatSpeed;
this.waterClip2._y = this.waterClip2._y - _root.boatSpeed;
} else {
this.waterClip1._y = 0;
this.waterClip2._y = floor;
this.gotoAndPlay(1);
}
Symbol 208 MovieClip Frame 3
gotoAndPlay (2);
Symbol 229 MovieClip Frame 16
gotoAndPlay (1);
Symbol 230 MovieClip Frame 1
fishSpeed = 2;
baseX = 210;
numfish = Math.floor(Math.random() * 2) + 1;
numRemoved = 0;
fishSpeeds = new Array();
Symbol 230 MovieClip Frame 2
i = 0;
while (i < numfish) {
scale = Math.floor(Math.random() * 40) + 20;
duplicateMovieClip ("fish", "fish" add i, 500 + i);
this["fish" add i]._x = Math.floor(Math.random() * 150) + 150;
this["fish" add i]._y = -100;
this["fish" add i]._xscale = scale;
this["fish" add i]._yscale = scale;
this["fish" add i]._alpha = int(scale / 1.5);
fishSpeeds[i] = Math.floor(Math.random() * 2) + 1;
i++;
}
Symbol 230 MovieClip Frame 3
i = 0;
while (i < numfish) {
if (this["fish" add i]._y < (_root.maxFloor + this["fish" add i]._height)) {
this["fish" add i]._y = this["fish" add i]._y + fishSpeeds[i];
} else {
numRemoved = numRemoved + 1;
this["fish" add i].removeMovieClip();
}
i++;
}
Symbol 230 MovieClip Frame 4
if (numRemoved >= numfish) {
gotoAndPlay (1);
} else {
gotoAndPlay (3);
}
Symbol 232 MovieClip Frame 36
if (_root.boatMoving == true) {
_root.refreshScore();
_root.renderObstacles();
}
gotoAndPlay (1);
Symbol 234 MovieClip Frame 1
soundtrack = new Sound();
soundtrack.attachSound("soundtrack");
soundtrack.start();
soundtrack.onSoundComplete = function () {
soundtrack.start();
};
Symbol 236 Button
on (release, releaseOutside) {
blow(2);
}
Symbol 237 Button
on (release, releaseOutside) {
blow(1);
}
Symbol 239 MovieClip Frame 1
var baseX = 10;
var numboats = 3;
Symbol 239 MovieClip Frame 2
if (numboats < 3) {
i = 0;
while (i < 3) {
removeMovieClip("boatLife" add i);
i++;
}
}
i = 0;
while (i < numboats) {
duplicateMovieClip ("boat", "boatLife" add i, 300 + i);
this["boatLife" add i]._x = baseX + ((boat._width * 0.6) * i);
this["boatLife" add i]._y = 0;
this["boatLife" add i]._alpha = 50 + (25 * i);
i++;
}
Symbol 239 MovieClip Frame 3
stop();