STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 229494 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2575 · P5149 |
This is the info page for Flash #27978 |
9 |
Single Player Controls Rules Credits |
Single Player Controls Rules Credits |
Single Player |
Multiplayer |
Controls |
Rules |
Credits |
Credits |
Programming: Jobe Makar A.I. Opponent: Brandon Williams XML Server Programming: Mike Grundvig Graphics: Robert Firebaugh Sound: Jobe Makar |
Credits |
Programming: Jobe Makar A.I. Opponent: Brandon Williams XML Server Programming: Mike Grundvig Graphics: Robert Firebaugh Sound: Jobe Makar |
Back |
Back |
Back |
How to Shoot 1.) Click on the cue ball, you will see the cue stick appear. 2.) Move the mouse around the cue ball to rotate the stick to the desired position. 3.) Then the mouse around the cue ball to rotate the stick to the desired position. 3.) Then click (not on the cue ball) and drag away from the cue ball for power. 4.) Then let go to shoot. |
How to Shoot 1.) Click on the cue ball, you will see the cue stick appear. 2.) Move the mouse around the cue ball to rotate the stick to the desired position. 3.) Then the mouse around the cue ball to rotate the stick to the desired position. 3.) Then click (not on the cue ball) and drag away from the cue ball for power. 4.) Then let go to shoot. |
Controls |
Controls |
Rules |
Rules |
1.) When you shoot you must hit the lowest numbered ball on the table before hitting any other ball. This ball is called the "target ball". 2.) If you or your opponent sinks the cue ball or you fail to meet rule 1 then you have "scratched" and the other player can place the cue ball any where on the table. This is called "ball-in-hand". 3.) A player has won if the player sinks the 9 Ball without breaking any rules. If the player sinks the 9 Ball without hitting the "target ball" first then the opponent is the winner. |
1.) When you shoot you must hit the lowest numbered ball on the table before hitting any other ball. This ball is called the "target ball". 2.) If you or your opponent sinks the cue ball or you fail to meet rule 1 then you have "scratched" and the other player can place the cue ball any where on the table. This is called "ball-in-hand". 3.) A player has won if the player sinks the 9 Ball without breaking any rules. If the player sinks the 9 Ball without hitting the "target ball" first then the opponent is the winner. |
Play Again |
Instructions |
Credits |
When breaking the ball must be hit from within this area. |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
The Brain |
turnturn |
Target Ball: |
Target Ball: |
Test |
Test |
press "g" to turn guide off |
press "g" to turn guide on |
Menu |
Menu |
ää |
Back |
Help for 9 Ball |
X |
X |
The User Controls |
The Rules of 9 Ball |
To Start a New Game Click on the "New Game" button. You will see a rack of pool balls appear. To Shoot 1.) Click on the cue ball, you will see the cue stick appear. 2.) Move the mouse around the cue ball to rotate the stick to the desired position. 3.) Then click (not on the cue ball) and drag away from the cue ball for power. 4.) Then let go to shoot. Note: An onscreen indicator will let you know if it is still your turn, or the computer's turn. |
The Objective When playing 9 Ball the goal is to sink the 9 ball. This sounds easy but you must do so without breaking any rules. The Rules 1.) When you shoot you must hit the lowest numbered ball on the table before hitting any other ball. This ball is called the "target ball." 2.) If you or the computer sinks the cue ball or you fail to meet rule 1 then you have "scratched" and the other player can place the cue ball anywer on the table. This is called "ball-in-hand". 3.) A player has won if the player sinks the 9 Ball without breaking any rules. If the player sinks the 9 Ball and breaks a rule then the opponent is the winner. |
9 Ball Credits |
Game Intelligence and Physics Engine: Jobe Makar |
Graphics: Robert Firebaugh |
AI Opponent: Brandon Williams |
Another Great Production from Electrotank |
ActionScript [AS1/AS2]
Frame 1total_bytes = this.getBytesTotal(); fscommand ("allowscale", "false"); fscommand ("showmenu", "false"); security = "no";Frame 2loaded = this.getBytesLoaded(); if (loaded >= total_bytes) { gotoAndStop (5); } percent = int((_root.getBytesLoaded() / _root.getBytesTotal()) * 100) + "% Loaded";Frame 3gotoAndPlay (2);Frame 5if (security == "yes") { myURL = "http://www.ultimatearcade.com"; length = length(myURL); if ((substring(_url, 1, length)) eq myURL) { gotoAndStop (10); } else { gotoAndStop (1); } } else { gotoAndStop (10); }Frame 10bg.bg_noise = new sound(bg); bg.bg_noise.attachsound("bg_noise"); bg.bg_noise.start(0, 999); bg.bg_noise.setVolume(80);Frame 31function aiShoot() { bsx = this["ball" + ballShoot]._x; bsy = this["ball" + ballShoot]._y; bhx = this["ball" + ballHit]._x; bhy = this["ball" + ballHit]._y; deltax = bsx - bhx; deltay = bsy - bhy; distance = Math.sqrt((deltax * deltax) + (deltay * deltay)); var slope = (deltay / deltax); var indx = bsx; if (bsx < bhx) { inc = 0.75; } else { inc = -0.75; } loop = true; while (loop) { var cpx = indx; var cpy = ((slope * (cpx - bsx)) + bsy); var invSlope = (-1 / slope); var invslopeAngle = Math.atan(Math.abs(invSlope)); var leftx = (cpx + (radius * Math.cos(invslopeAngle))); var lefty = (cpy + (radius * Math.sin(invslopeAngle))); var rightx = (cpx - (radius * Math.cos(invslopeAngle))); var righty = (cpy - (radius * Math.sin(invslopeAngle))); i = 1; while (num_of_balls >= i) { if ((i != ballShoot) && (i != ballHit)) { if ((this["ball" + i].hitTest(cpx, cpy, true) || (this["ball" + i].hitTest(leftx, lefty, true))) || (this["ball" + i].hitTest(rightx, righty, true))) { var path = "blocked"; var loop = false; i = i + 10; } else { var path = "clear"; } } i++; } if (((inc < 0) && (indx < bhx)) || ((0 < inc) && (bhx < indx))) { var loop = false; } else { indx = indx + inc; } } if (path == "blocked") { aiBlocked(); } else { aiClear(); } } function aiClear() { var cpvx = ((-1 * deltax) / 10); var cpvy = ((-1 * deltay) / 10); var collx = bsx; var colly = bsy; var sideColl = false; while (!sideColl) { var ocollx = collx; var ocolly = colly; collx = collx + cpvx; colly = colly + cpvy; if (right < collx) { var tempax = collx; var collx = right; var ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true; } if (collx < left) { var tempax = collx; var collx = left; var ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true; } if (bottom < colly) { var tempay = colly; var colly = bottom; var ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true; } if (colly < top) { var tempay = colly; var colly = top; var ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay)); var sub = (Math.abs(ocolly - colly) * ratio); (((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true; } } d = 1; while (6 >= d) { var pdx = (collx - pockets[d][pocketx]); var pdy = (colly - pockets[d][pockety]); this["dist" + d] = Math.sqrt((pdx * pdx) + (pdy * pdy)); d++; } var min1 = Math.min(dist1, dist2); var min2 = Math.min(dist3, dist4); var min3 = Math.min(dist5, dist6); var subMin = Math.min(min1, min2); var finalMin = Math.min(subMin, min3); i = 1; while (6 >= i) { if (finalMin == this["dist" + i]) { closestPocket = i; break; } i++; } var pbdx = (pockets[i][pocketx] - bhx); var pbdy = (pockets[i][pockety] - bhy); var hyp = Math.sqrt((pbdx * pbdx) + (pbdy * pbdy)); var tempcx = (((pbdx / hyp) * radius) + bhx); var tempcy = (((pbdy / hyp) * radius) + bhy); var tempcdx = (bhx - tempcx); var tempcdy = (bhy - tempcy); var finalcx = (bhx + tempcdx); var finalcy = (bhy + tempcdy); var finalbx = (bsx - tempcdx); var finalby = (bsy - tempcdy); angleShoot = Math.atan(Math.abs(finalcy - finalby) / Math.abs(finalcx - finalbx)); var sumDist = (this["dist" + closestPocket] + distance); (((0 < (bhx - bsx)) ? ((sgnX = 1)) : ((((bhx - bsx) < 0) ? ((sgnX = -1)) : ((sgnX = 0))))));// not popped (((0 < (bhy - bsy)) ? ((sgnY = 1)) : ((((bhy - bsy) < 0) ? ((sgnY = -1)) : ((sgnY = 0))))));// not popped _root.stick.inner.tempvelx = (sgnX * (sumDist / 12)) * Math.cos(angleShoot); _root.stick.inner.tempvely = (sgnY * (sumDist / 12)) * Math.sin(angleShoot); check = Math.atan((finalby - finalcy) / (finalbx - finalcx)) * 57.2957795130823; if ((finalcx < finalbx) && (finalby < finalcy)) { setAngle = check + 180; } else if (((finalbx < finalcx) && (finalby < finalcy)) || ((finalbx < finalcx) && (finalcy < finalby))) { setAngle = check; } else { setAngle = check - 180; } _root.stick._rotation = setAngle - 180; _root.stick._x = ball1._x; _root.stick._y = ball1._y; _root.stick.inner.play(); _root.gonogo = 1; } function aiBlocked() { (((Math.abs(deltay) >= Math.abs(deltax)) ? (if ((bbleft = Math.abs(bsx - left)) < (bbright = Math.abs(bsx - right))) { closestBank = 1} else { closestBank = 3} if (bsx < ()) { inc = 0.75} else { inc = -0.75} while (!(endYet = false)) { ccx = indxccy = (slope * (ccx - pointLx)) + pointLyinvslopeAngle = Math.atan(Math.abs(-1 / slope))leftx = ccx + (radius * Math.cos(invslopeAngle))lefty = ccy + (radius * Math.sin(invslopeAngle))rightx = ccx - (radius * Math.cos(invslopeAngle))righty = ccy - (radius * Math.sin(invslopeAngle))var ccp = 1while (num_of_balls >= ccp) { if ((ccp != ballShoot) && (ccp != ballHit)) { if (this["ball" + ccp].hitTest(leftx, lefty, true) || (this["ball" + ccp].hitTest(rightx, righty, true))) { path_coll = "blocked"endYet = truebreak; } path_coll = "clear"} ccp++} if (((((0 < inc) && (imPointBx < indx)) || ((inc < 0) && (indx < imPointBx))) && ((pointLx = bsx) == bsx)) && ((pointLy = bsy) == bsy)) { inc = inc * -1indx = () + incslope = (slope = (bsy - (imPointBy = ((tempImSlope = (bsy - (subImPointY = bhy)) / (bsx - subImPointX)) * ((imPointBx = banks[closestBank]) - bsx)) + bsy)) / (bsx - ())) * -1pointLx = bhxpointLy = bhybankedAlready = true} else { if (path_coll == "blocked") { break; } if ((((0 < inc) && (bhx < ccx)) || ((inc < 0) && (ccx < bhx))) && ((bankedAlready = false) == true)) { break; } indx = (indx = bsx) + inc} } if (path_coll == "blocked") { bestBank = 4 - closestBank} else { bestBank = closestBank} if (path_coll == "blocked") { subImPointY = bhy(((bestBank == 1) ? ((subImPointX = banks[bestBank] - Math.abs(bhx - banks[bestBank]))) : ((subImPointX = banks[bestBank] + Math.abs(bhx - banks[bestBank])))));// not popped tempImSlope = (bsy - ()) / (bsx - subImPointX)imPointBx = banks[bestBank]imPointBy = (() * (() - bsx)) + bsy} var sideColl = falsewhile (!sideColl) { var ocollx = collxvar ocolly = collycollx = collx + cpvxcolly = colly + cpvyif (right < collx) { var tempax = collxvar collx = rightvar ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (collx < left) { var tempax = collxvar collx = leftvar ratio = (Math.abs(ocollx - (collx = bhx)) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < (cpvy = (deltay = bhy - ()) / 15)) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (bottom < colly) { var tempay = collyvar colly = bottomvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} if (colly < top) { var tempay = collyvar colly = topvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - (colly = bhy)) * ratio)(((0 < (cpvx = (deltax = bhx - ()) / 15)) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} } var pcc = 1while (4 >= pcc) { ttdx = pockets[pocketChoices[bestBank][pcc]][pocketx] - ()ttdy = pockets[pocketChoices[bestBank][pcc]][pockety] - ()this["pcdist" + pcc] = Math.sqrt((ttdx * ttdx) + (ttdy * ttdy))pcc++} if (short3 == pcdist1) { closestPocket = pocketChoices[bestBank][1]} else if (short3 == pcdist2) { closestPocket = pocketChoices[bestBank][2]} else if ((short3 = Math.min(short1 = Math.min(pcdist1, pcdist2), short2 = Math.min(pcdist3, pcdist4))) == pcdist3) { closestPocket = pocketChoices[bestBank][3]} else { closestPocket = pocketChoices[bestBank][4]} _root.stick.inner.tempvelx = (sgnX * ((velocity = ((distBB1 = Math.sqrt(((bhx - imPointHx) * (bhx - imPointHx)) + ((bhy - ()) * (bhy - imPointHy)))) + (distBB2 = Math.sqrt(((bsx - imPointHx) * (bsx - imPointHx)) + ((bsy - ()) * (bsy - imPointHy))))) + ()) / 30)) * Math.cos(angleShoot = Math.atan(Math.abs((closeBPy = bsy + (tempCloseDy = bhy - (closePy = bhy + ((() / ()) * radius)))) - (imPointHy = )) / Math.abs((closeBPx = bsx + (tempCloseDx = bhx - (closePx = bhx + ((() / (closehyp = Math.sqrt(((closedx = bhx - pockets[closestPocket][pocketx]) * closedx) + ((closedy = bhy - pockets[closestPocket][pockety]) * closedy)))) * radius)))) - imPointHx)))_root.stick.inner.tempvely = (sgnY * (() / 30)) * Math.sin()if ((imPointHx < closeBPx) && (closeBPy < imPointHy)) { setAngle = check * -1} else if ((closeBPx < imPointHx) && (closeBPy < imPointHy)) { setAngle = (180 - check) * -1} else if ((() < imPointHx) && (() < ())) { setAngle = 180 + check} else { setAngle = (360 - (check = (theta = Math.atan((() - ()) / (() - imPointHx))) * 57.2957795130823)) * -1} _root.stick._rotation = setAngle_root.stick._x = ball1._x_root.stick._y = ball1._y_root.stick.inner.play()_root.gonogo = 1((bsy < imPointHy) ? ((sgnY = 1)) : (((() < bsy) ? ((sgnY = -1)) : ((sgnY = 0)))))((bsx < imPointHx) ? ((sgnX = 1)) : (((imPointHx < bsx) ? ((sgnX = -1)) : ((sgnX = 0)))))((bestBank == 1) ? ((imPointHx = banks[bestBank] - Math.abs(() - banks[bestBank]))) : ((imPointHx = banks[bestBank] + Math.abs(closePx - banks[bestBank]))))((closestBank == 1) ? ((subImPointX = banks[closestBank] - Math.abs(bhx - banks[closestBank]))) : ((subImPointX = banks[closestBank] + Math.abs(bhx - banks[closestBank]))))) : (if (bsx < bhx) { inc = 0.75} else { inc = -0.75} if ((bbTop = Math.abs(bsy - top)) < (bbBottom = Math.abs(bsy - bottom))) { closestBank = 2} else { closestBank = 4} trace(closestBank = 6 - closestBank)while (!(endYet = false)) { ccx = indxccy = (slope * (ccx - pointLx)) + pointLyinvslopeAngle = Math.atan(Math.abs(-1 / slope))leftx = ccx + (radius * Math.cos(invslopeAngle))lefty = ccy + (radius * Math.sin(invslopeAngle))rightx = ccx - (radius * Math.cos(invslopeAngle))righty = ccy - (radius * Math.sin(invslopeAngle))var ccp = 1while (num_of_balls >= ccp) { if ((ccp != ballShoot) && (ccp != ballHit)) { if (this["ball" + ccp].hitTest(leftx, lefty, true) || (this["ball" + ccp].hitTest(rightx, righty, true))) { path_coll = "blocked"endYet = truebreak; } path_coll = "clear"} ccp++} if (((((0 < inc) && (imPointBx < indx)) || ((inc < 0) && (indx < imPointBx))) && ((pointLx = bsx) == bsx)) && ((pointLy = bsy) == bsy)) { indx = () + incslope = (slope = (bsy - (imPointBy = (() * ((imPointBx = ((((-1 * (tempImSlope = (bsy - subImPointY) / (bsx - (subImPointX = bhx)))) * bsx) + bsy) - banks[]) / (-1 * tempImSlope)) - bsx)) + bsy)) / (bsx - ())) * -1pointLx = bhxpointLy = bhy} else { if (path_coll == "blocked") { break; } if (((0 < inc) && (bhx < ccx)) || ((inc < 0) && (ccx < bhx))) { break; } indx = (indx = bsx) + inc} } if (path_coll == "blocked") { bestBank = 6 - closestBank} else { bestBank = } if (path_coll == "blocked") { subImPointX = bhx(((bestBank == 2) ? ((subImPointY = banks[bestBank] - Math.abs(bhy - banks[bestBank]))) : ((subImPointY = banks[bestBank] + Math.abs(bhy - banks[bestBank])))));// not popped tempImSlope = (bsy - subImPointY) / (bsx - ())imPointBx = ((((-1 * tempImSlope) * bsx) + bsy) - banks[bestBank]) / (-1 * tempImSlope)imPointBy = (() * (() - bsx)) + bsy} var sideColl = falsewhile (!sideColl) { var ocollx = collxvar ocolly = collycollx = collx + cpvxcolly = colly + cpvyif (right < collx) { var tempax = collxvar collx = rightvar ratio = (Math.abs(ocollx - collx) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvy) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (collx < left) { var tempax = collxvar collx = leftvar ratio = (Math.abs(ocollx - (collx = bhx)) / Math.abs(ocollx - tempax))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < (cpvy = (deltay = bhy - ()) / 15)) ? ((colly = ocolly + sub)) : ((colly = ocolly - sub))));// not popped var sideColl = true} if (bottom < colly) { var tempay = collyvar colly = bottomvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - colly) * ratio)(((0 < cpvx) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} if (colly < top) { var tempay = collyvar colly = topvar ratio = (Math.abs(ocolly - colly) / Math.abs(ocolly - tempay))var sub = (Math.abs(ocolly - (colly = bhy)) * ratio)(((0 < (cpvx = (deltax = bhx - ()) / 15)) ? ((collx = ocollx + sub)) : ((collx = ocollx - sub))));// not popped var sideColl = true} } var pcc = 1while (3 >= pcc) { ttdx = pockets[pocketChoices[bestBank][pcc]][pocketx] - ()ttdy = pockets[pocketChoices[bestBank][pcc]][pockety] - ()this["pcdist" + pcc] = Math.sqrt((ttdx * ttdx) + (ttdy * ttdy))pcc++} if (short2 == pcdist1) { closestPocket = pocketChoices[bestBank][1]} else if ((short2 = Math.min(pcdist3, short1 = Math.min(pcdist1, pcdist2))) == pcdist2) { closestPocket = pocketChoices[bestBank][2]} else { closestPocket = pocketChoices[bestBank][3]} _root.stick.inner.tempvelx = (sgnX * ((velocity = ((distBB1 = Math.sqrt(((bhx - ()) * (bhx - imPointHx)) + ((bhy - imPointHy) * (bhy - imPointHy)))) + (distBB2 = Math.sqrt(((bsx - ()) * (bsx - imPointHx)) + ((bsy - imPointHy) * (bsy - imPointHy))))) + ()) / 25)) * Math.cos(angleShoot = Math.atan(Math.abs((closeBPy = bsy + (tempCloseDy = bhy - (closePy = bhy + ((() / ()) * radius)))) - imPointHy) / Math.abs((closeBPx = bsx + (tempCloseDx = bhx - (closePx = bhx + ((() / (closehyp = Math.sqrt(((closedx = bhx - pockets[closestPocket][pocketx]) * closedx) + ((closedy = bhy - pockets[closestPocket][pockety]) * closedy)))) * radius)))) - (imPointHx = ))))_root.stick.inner.tempvely = (sgnY * (() / 25)) * Math.sin()if ((imPointHx < closeBPx) && (closeBPy < imPointHy)) { setAngle = check * -1} else if ((closeBPx < imPointHx) && (closeBPy < imPointHy)) { setAngle = (180 - check) * -1} else if ((() < ()) && (imPointHy < ())) { setAngle = 180 + check} else { setAngle = (360 - (check = (theta = Math.atan((() - imPointHy) / (() - ()))) * 57.2957795130823)) * -1} _root.stick._rotation = setAngle_root.stick._x = ball1._x_root.stick._y = ball1._y_root.stick.inner.play()_root.gonogo = 1((bsy < imPointHy) ? ((sgnY = 1)) : (((imPointHy < bsy) ? ((sgnY = -1)) : ((sgnY = 0)))))((bsx < imPointHx) ? ((sgnX = 1)) : (((() < bsx) ? ((sgnX = -1)) : ((sgnX = 0)))))((bestBank == 2) ? ((imPointHy = banks[bestBank] - Math.abs(() - banks[bestBank]))) : ((imPointHy = banks[bestBank] + Math.abs(closePy - banks[bestBank]))))((closestBank == 2) ? ((subImPointY = banks[] - Math.abs(bhy - banks[closestBank]))) : ((subImPointY = banks[closestBank] + Math.abs(bhy - banks[closestBank])))))));// not popped } pockets = new Array(); var mmm = 0; while (6 >= (++mmm)) { pockets[mmm] = new Array(this["pocket" + mmm]._x, this["pocket" + mmm]._y); } pocketx = 0; pockety = 1; pocketChoices = new Array(); pocketChoices[1] = new Array(null, 2, 3, 4, 5); pocketChoices[2] = new Array(null, 4, 5, 6); pocketChoices[3] = new Array(null, 1, 2, 5, 6); pocketChoices[4] = new Array(null, 1, 2, 3); radius = _root.ball1._width / 2; banks = new Array(null, left._x, top._y, right._x, bottom._y); function new_game() { var i = -1; while (11 >= (++i)) { velx[i] = 0; vely[i] = 0; } rack.start(); thegameisover = ""; winner = ""; winner_ball = 10; nine_ball_sank = "no"; this.ball_in_hand = "yes"; this.breaking = "yes"; turn = "your_turn"; condition_one = "no"; condition_two = "no"; turn_verification_done = "yes"; first_ball_done = "no"; current_ball = 2; pop_up = "no"; mode = "stopped"; fill_arrays(); var i = 1; while (num_of_balls >= (++i)) { this["ball" + i]._visible = 1; this["ball" + i]._x = this["ball" + i].begin_x; this["ball" + i]._y = this["ball" + i].begin_y; } this.ball1._x = ball1.begin_x; this.ball1._y = ball1.begin_y; this.ball1._visible = true; } function every_frame() { if ((mode == "stopped") && (this.gonogo == 0)) { if (turn_verification_done == "no") { if (nine_ball_sank == "yes") { if ((condition_one == "yes") && (condition_two == "yes")) { if (turn == "computers_turn") { winner = "The Computer Wins! To play again press the Play Again button above."; } else { winner = "You Win! To play again press the Play Again button above."; } } else if (turn == "computers_turn") { winner = "You Win! To play again press the Play Again button above."; } else { winner = "Computer Wins! To play again press the Play Again button above."; } thegameisover = "yes"; } if (thegameisover != "yes") { turn_verification_done = "yes"; verify_turn(); determine_current_ball(); condition_one = "no"; condition_two = "no"; computer_count = 0; if (ball_in_hand == "yes") { this.ball1._x = ball1.begin_x; this.ball1._y = ball1.begin_y; this.ball1._visible = 1; skipBall[1] = 0; velx[1] = 0; vely[1] = 0; } } } } else { turn_verification_done = "no"; } if (((turn == "computers_turn") && (this.nomoreCalc == 0)) && (thegameisover != "yes")) { computer_shoot(); } } function first_ball() { if ((jj == current_ball) && (first_ball_done == "no")) { condition_one = "yes"; } else if ((jj != current_ball) && (first_ball_done == "no")) { condition_one = "no"; } first_ball_done = "yes"; } function pocket_verification(ball_number) { if (ball_number == winner_ball) { condition_two = "yes"; nine_ball_sank = "yes"; } if (ball_number == 1) { condition_two = "no"; ball_in_hand = "yes"; } if ((1 < ball_number) && (ball_number < 10)) { condition_two = "yes"; } } function verify_turn() { if ((condition_one == "yes") && (condtion_two == "yes")) { turn = turn; } else if ((condition_one != "yes") || (condition_two != "yes")) { if (turn == "computers_turn") { turn = "your_turn"; } else if (turn == "your_turn") { turn = "computers_turn"; } } } function determine_current_ball() { var i = 1; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { current_ball = i; return; } } } function computer_shoot() { ballShoot = 1; ballHit = current_ball; aiShoot(); this.nomoreCalc = 1; this.turn_verification_done = "no"; this.pop_up = ""; this.window._visible = 0; this.ball_in_hand = "no"; this.first_ball_done = "no"; } function fill_arrays() { var i = 0; while (num_of_balls >= (++i)) { velx[i] = 0; vely[i] = 0; r[i] = this["ball" + i]._width / 2; mass[i] = 1; skipBall[i] = 0; duplicateMovieClip (this.bot, "bot" + i, 100 + i); this["bot" + i]._visible = 0; } } function display() { if (((pop_up != "no") && (mode == "stopped")) && (isNaN(Number(pop_up) - 1) == false)) { window._visible = 1; window._x = _xmouse; window._y = _ymouse; window.n = "ball " + (Number(pop_up) - 1); pop_up = "no"; } else { window._visible = 0; } } function are_they_moving() { if (mode == "balls_move") { var count_balls = 0; var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { if ((velx[i] == 0) && (vely[i] == 0)) { count_balls++; } else { break; } } else { count_balls++; } } if (count_balls >= num_of_balls) { mode = "stopped"; } } } function make_throwable() { var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { ox[i] = x[i]; oy[i] = y[i]; velx[i] = velx[i] * friction; vely[i] = vely[i] * friction; if ((Math.abs(velx[i]) < velmin) && (Math.abs(vely[i]) < velmin)) { velx[i] = 0; vely[i] = 0; } vely[i] = vely[i] + gravity; x[i] = this["ball" + i]._x; y[i] = this["ball" + i]._y; if (this["drag" + i] == 1) { velx[i] = x[i] - ox[i]; vely[i] = y[i] - oy[i]; } else { x[i] = x[i] + velx[i]; y[i] = y[i] + vely[i]; } } } } function wall_detection() { var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { if (right < (x[i] + r[i])) { var txm = x[i]; x[i] = right - r[i]; var ratiom = (Math.abs(ox[i] - x[i]) / Math.abs(ox[i] - txm)); var subm = (Math.abs(oy[i] - y[i]) * ratiom); (((0 < vely[i]) ? ((y[i] = oy[i] + subm)) : ((y[i] = oy[i] - subm))));// not popped velx[i] = velx[i] * -1; } if ((x[i] - r[i]) < left) { var txm = x[i]; x[i] = left + r[i]; var ratiom = (Math.abs(ox[i] - x[i]) / Math.abs(ox[i] - txm)); var subm = (Math.abs(oy[i] - y[i]) * ratiom); (((0 < vely[i]) ? ((y[i] = oy[i] + subm)) : ((y[i] = oy[i] - subm))));// not popped velx[i] = velx[i] * -1; } if (bottom < (y[i] + r[i])) { var tym = y[i]; y[i] = bottom - r[i]; var ratiom = (Math.abs(oy[i] - y[i]) / Math.abs(oy[i] - tym)); var subm = (Math.abs(ox[i] - x[i]) * ratiom); (((0 < velx[i]) ? ((x[i] = ox[i] + subm)) : ((x[i] = ox[i] - subm))));// not popped vely[i] = vely[i] * -1; } if ((y[i] - r[i]) < top) { var tym = y[i]; y[i] = top + r[i]; var ratiom = (Math.abs(oy[i] - y[i]) / Math.abs(oy[i] - tym)); var subm = (Math.abs(ox[i] - x[i]) * ratiom); (((0 < velx[i]) ? ((x[i] = ox[i] + subm)) : ((x[i] = ox[i] - subm))));// not popped vely[i] = vely[i] * -1; } } } } function collision_detection() { var i = 0; while (num_of_balls >= (++i)) { var ii = i; while (num_of_balls >= (++ii)) { tempx[i] = x[i]; tempy[i] = y[i]; tempx[ii] = x[ii]; tempy[ii] = y[ii]; if (((this["bot" + i].hitTest(this["bot" + ii]) && (skipBall[i] == 0)) && (skipBall[ii] == 0)) || ((i == 1) && (ii == current_ball))) { dist = Math.sqrt(((tempx[i] - tempx[ii]) * (tempx[i] - tempx[ii])) + ((tempy[i] - tempy[ii]) * (tempy[i] - tempy[ii]))); if (((dist - r[i]) - r[ii]) < 0) { var col = "COLLISION"; var cc = 1; } else { var col = "NO COLLISION"; var cc = 0; } if (cc == 1) { j = i; jj = ii; reaction(); collisionHappened = true; } } } } } function move_balls() { var i = 0; while (num_of_balls >= (++i)) { if (skipBall[i] == 0) { this["ball" + i]._x = x[i]; this["bot" + i]._x = x[i]; this["ball" + i]._y = y[i]; this["bot" + i]._y = y[i]; } } } function reaction() { first_ball(); var cx1 = this["ball" + j]._x; var cy1 = this["ball" + j]._y; var cx2 = this["ball" + jj]._x; var cy2 = this["ball" + jj]._y; trans = (Math.PI/180); var cdx = (cx2 - cx1); var cdy = (cy2 - cy1); if (cdx == 0) { var phi = (Math.PI/2); } else { var phi = Math.atan(cdy / cdx); } var vel1 = Math.sqrt(((x[j] - ox[j]) * (x[j] - ox[j])) + ((y[j] - oy[j]) * (y[j] - oy[j]))); var vel2 = Math.sqrt(((x[jj] - ox[jj]) * (x[jj] - ox[jj])) + ((y[jj] - oy[jj]) * (y[jj] - oy[jj]))); var c = 1; var cc = j; while (2 >= c) { if (velx[cc] < 0) { var tempa = (180 + (Math.atan(vely[cc] / velx[cc]) / trans)); } else if ((0 < velx[cc]) and (vely[cc] >= 0)) { var tempa = (Math.atan(vely[cc] / velx[cc]) / trans); } else if ((0 < velx[cc]) and (vely[cc] < 0)) { var tempa = (360 + (Math.atan(vely[cc] / velx[cc]) / trans)); } else if ((velx[cc] == 0) and (vely[cc] == 0)) { var tempa = 0; } else if ((velx[cc] == 0) and (vely[cc] >= 0)) { var tempa = 90; } else { var tempa = 270; } Set("angle" + c, tempa * trans); cc = jj; c = c + 1; } var vxr1 = (vel1 * Math.cos(angle1 - phi)); var vyr1 = (vel1 * Math.sin(angle1 - phi)); var vxr2 = (vel2 * Math.cos(angle2 - phi)); var vyr2 = (vel2 * Math.sin(angle2 - phi)); var nvx1 = ((((mass[j] - mass[jj]) * vxr1) + ((mass[jj] + mass[jj]) * vxr2)) / (mass[j] + mass[jj])); var nvy1 = vyr1; var nvx2 = ((((mass[j] + mass[j]) * vxr1) + ((mass[jj] - mass[j]) * vxr2)) / (mass[j] + mass[jj])); var nvy2 = vyr2; var finalvx1 = ((Math.cos(phi) * nvx1) + (Math.cos(phi + (Math.PI/2)) * nvy1)); var finalvy1 = ((Math.sin(phi) * nvx1) + (Math.sin(phi + (Math.PI/2)) * nvy1)); var finalvx2 = ((Math.cos(phi) * nvx2) + (Math.cos(phi + (Math.PI/2)) * nvy2)); var finalvy2 = ((Math.sin(phi) * nvx2) + (Math.sin(phi + (Math.PI/2)) * nvy2)); num_of_collisions++; this["ball" + j]["hit" + num_of_collisions] = new sound("ball" + j); this["ball" + j]["hit" + num_of_collisions].attachsound("hit"); var loudness = (math.sqrt(((velx[j] - finalvx1) * (velx[j] - finalvx1)) + ((vely[j] - finalvy1) * (vely[j] - finalvy1))) * 10); if (loudness_max < loudness) { loudness = loudness_max; } else if (loudness < loudness_min) { loudness = loudness_min; } var balance = (((cx1 - (left + ((right - left) / 2))) / ((right - left) / 2)) * max_pan); this["ball" + j]["hit" + num_of_collisions].setvolume(loudness); this["ball" + j]["hit" + num_of_collisions].setPan(balance); this["ball" + j]["hit" + num_of_collisions].start(); velx[j] = finalvx1; vely[j] = finalvy1; velx[jj] = finalvx2; vely[jj] = finalvy2; x[j] = ox[j] + velx[j]; y[j] = oy[j] + vely[j]; x[jj] = ox[jj] + velx[jj]; y[jj] = oy[jj] + vely[jj]; } guideyn = 1; gonogo = 0; this.nomoreCalc = 0; stop(); maxSteps = 20; num_of_collisions = 0; hit = new sound(); rack = new sound(); hit.attachsound("hit"); rack.attachsound("rack"); max_pan = 80; loudness_max = 90; loudness_min = 10; top = top._y; bottom = bottom._y; left = left._x; right = right._x; gravity = 0; velmin = 0.1; drag1 = 0; drag2 = 0; num_of_balls = 10; turn = "your_turn"; friction = 0.97; skipBall = new array(); ox = new array(); oy = new array(); x = new array(); y = new array(); tempx = new array(); tempy = new array(); velx = new array(); vely = new array(); r = new array(); mass = new array(); banks = new Array(null, left, top, right, bottom); fill_arrays(); velx[1] = 0;Instance of Symbol 76 MovieClip "left" in Frame 31onClipEvent (load) { this._visible = 0; }Instance of Symbol 78 MovieClip "top" in Frame 31onClipEvent (load) { this._visible = 0; }Instance of Symbol 80 MovieClip "right" in Frame 31onClipEvent (load) { this._visible = 0; }Instance of Symbol 82 MovieClip "bottom" in Frame 31onClipEvent (load) { this._visible = 0; }Instance of Symbol 90 MovieClip "ball1" in Frame 31onClipEvent (enterFrame) { if (((_root.ball_in_hand == "yes") && (_root.mode == "stopped")) && (_root.turn == "your_turn")) { this.gotoandstop(2); if ((270 < (_x + (_width / 2))) && (_root.breaking == "yes")) { _root.greenness.gotoandstop(2); } else { _root.greenness.gotoandstop(1); } } else { this.gotoandstop(1); } }Instance of Symbol 114 MovieClip in Frame 31onClipEvent (enterFrame) { if (_parent.mode == "balls_move") { _parent.collisionHappened = false; _parent.make_throwable(); _parent.wall_detection(); _parent.collision_detection(); if (_parent.collisionHappened) { _parent.collision_detection(); } _parent.move_balls(); _parent.are_they_moving(); } else { _parent.display(); _parent.every_frame(); } _parent.current_ball_temp = _parent.current_ball - 1; }Instance of Symbol 117 MovieClip "stick" in Frame 31onClipEvent (load) { function Move_Cue_Ball() { _root.first_ball_done = "no"; _root.pop_up = ""; _root.ball_in_hand = "no"; speed = (-(1 - ((x_limit - far_x) / x_limit))) * speed_max; if (math.abs(speed) < 2) { speed = 2; } _root.loop = "yes"; if (first_shot != "done") { first_shot = "done"; if (speed_limit < speed) { speed = speed_limit; } else if (speed < (-speed_limit)) { speed = -speed_limit; } } _root.mode = "balls_move"; _root.velx[1] = speed * math.cos((math.pi / 180) * alpha); _root.vely[1] = speed * math.sin((math.pi / 180) * alpha); } function guide() { if (_root.guideyn == 1) { velx = (_root.ball1._x - _root._xmouse) / 5; vely = (_root.ball1._y - _root._ymouse) / 5; i = 1; while (_root.maxSteps >= i) { if (i == 1) { x = _root.ball1._x; y = _root.ball1._y; } ox = x; oy = y; x = x + velx; y = y + vely; if ((_root.right - radius) < x) { tempx = x; x = _root.right - radius; top = Math.abs(ox - x); bottom = Math.abs(ox - tempx); ratio = top / bottom; sub = Math.abs(oy - y) * ratio; (((0 < vely) ? ((y = oy + sub)) : ((y = oy - sub))));// not popped velx = velx * -1; } if (x < (_root.left + radius)) { tempx = x; x = _root.left + radius; top = Math.abs(ox - x); bottom = Math.abs(ox - tempx); ratio = top / bottom; sub = Math.abs(oy - y) * ratio; (((0 < vely) ? ((y = oy + sub)) : ((y = oy - sub))));// not popped velx = velx * -1; } if ((_root.bottom - radius) < y) { tempy = y; y = _root.bottom - radius; top = Math.abs(oy - y); bottom = Math.abs(oy - tempy); ratio = top / bottom; sub = Math.abs(ox - x) * ratio; (((0 < velx) ? ((x = ox + sub)) : ((x = ox - sub))));// not popped vely = vely * -1; } if (y < (_root.top + radius)) { tempy = y; y = _root.top + radius; top = Math.abs(oy - y); bottom = Math.abs(oy - tempy); ratio = top / bottom; sub = Math.abs(ox - x) * ratio; (((0 < velx) ? ((x = ox + sub)) : ((x = ox - sub))));// not popped vely = vely * -1; } _root["guide" + i]._x = ox; _root["guide" + i]._y = oy; _root["guide" + i]._xscale = x - ox; _root["guide" + i]._yscale = y - oy; i++; } } } radius = _root.ball1._width / 2; this._visible = 0; inner._x = 0; x_limit = 80; speed_limit = 35; speed_max = 35; end_x = 0; k = 0.1; } onClipEvent (enterFrame) { if (_root.stick_appear == "yes") { this._visible = true; this.inner._x = 0; _root.stick_appear = ""; stick_drag = ""; shoot = ""; } if (shoot == "yes") { inner._x = 0; shoot = ""; vel = xmov; xmov = 0; Move_Cue_Ball(); this._visible = 0; i = 1; while (_root.maxSteps >= i) { removeMovieClip(_root["guide" + i]); i++; } xmov = ((end_x - this._x) * k) + xmov; inner._x = inner._x + xmov; } } onClipEvent (mouseMove) { if (((this._visible == true) && (stick_drag != "yes")) && (_root.gonogo == 0)) { _root.mode = "shooting"; guide(); mx = _root._xmouse; my = _root._ymouse; wx = this._x; wy = this._y; slope = (my - wy) / (mx - wx); theta = Math.atan(slope) * 57.2957795130823; if ((wx < mx) and (my < wy)) { ang = theta * -1; _rotation = (-1 * ang); Set("../:quad", 1); alpha = -1 * ang; } else if ((mx < wx) and (my < wy)) { _rotation = ((180 - theta) * -1); Set("../:quad", 2); ang = 180 - theta; alpha = (180 - theta) * -1; } else if ((mx < wx) and (wy < my)) { _rotation = (180 + theta); ang = 180 - theta; alpha = 180 + theta; Set("../:quad", 3); } else if ((wx < mx) and (wy < my)) { _rotation = ((360 - theta) * -1); Set("../:quad", 4); ang = 360 - theta; alpha = (360 - theta) * -1; } } if ((stick_drag == "yes") && (_root.gonogo == 0)) { if ((this._xmouse < (x_limit + x_shift)) && (inner._x >= 0)) { inner._x = this._xmouse - x_shift; } if (inner._x < 0) { inner._x = 0; } } } onClipEvent (mouseDown) { if ((this._visible == true) && (_root.turn == "your_turn")) { stick_drag = "yes"; x_shift = this._xmouse - inner._x; } } onClipEvent (mouseUp) { if ((((stick_drag == "yes") && (key.isDown(key.SHIFT) == false)) && (_root.turn == "your_turn")) && (this._visible == true)) { stick_drag = "no"; far_x = inner._x; shoot = "yes"; xmov = 0; } else if ((key.isDown(key.SHIFT) == true) && (_root.turn == "your_turn")) { stick_drag = ""; inner._x = 0; } }Instance of Symbol 121 MovieClip "window" in Frame 31onClipEvent (load) { this._visible = 0; }Instance of Symbol 135 MovieClip in Frame 31onClipEvent (enterFrame) { turn = _parent.turn; current_ball_temp = _parent.current_ball_temp; if (0 >= current_ball_temp) { current_ball_temp = "N/A"; } if (_parent.mode == "balls_move") { status = "The table is locked while the balls are in motion."; } else { if (_parent.winner == "") { if (_parent.turn == "your_turn") { status = "It is now your turn.\r1.) Click once on the cue ball to activate the cue stick."; if (_parent.stick._visible == true) { status = "2.) Move the mouse around the cue ball to aim the stick."; status = status + "\r3.) Click and drag away from the cue ball to gain power."; } if ((_parent.stick.stick_drag == "yes") && (_parent.stick._visible == true)) { status = "4.) Release the mouse to shoot!"; } } else if (_parent.turn == "computers_turn") { status = "It is now the computer's turn."; } } else { status = _parent.winner; } if (((_parent.ball_in_hand == "yes") && (_parent.turn == "your_turn")) && (_parent.winner == "")) { status = "It is Your Turn and you have Ball-In-Hand. Click and drag the ball to the desired position, and then release."; } } }Instance of Symbol 138 MovieClip "guide_choice" in Frame 31onClipEvent (load) { _root.guides = 1; } onClipEvent (data) { if (mode != "balls_move") { if ((Key.getCode() == 71) && (_root.guide_choice._currentframe == 1)) { _root.guideyn = 0; var i = 1; while (_root.maxSteps >= i) { removeMovieClip(_root["guide" + i]); i++; } _root.guide_choice.gotoAndStop(2); } else if ((Key.getCode() == 71) && (_root.guide_choice._currentframe == 2)) { _root.guideyn = 1; var i = 1; while (_root.maxSteps >= i) { duplicateMovieClip ("/guide", "guide" + i, i); i++; } _root.guide_choice.gotoAndStop(1); } } } onClipEvent (keyDown) { if (Key.getCode() == 71) { if (_root.guides == 1) { _root.guides = 0; this.gotoandstop(2); } else { _root.guides = 1; this.gotoandstop(1); } } }Symbol 20 MovieClip Frame 1stop();Symbol 20 MovieClip Frame 2stop();Symbol 20 MovieClip Frame 3stop();Symbol 20 MovieClip Frame 4stop();Symbol 20 MovieClip Frame 5stop();Symbol 20 MovieClip Frame 6stop();Symbol 22 Buttonon (rollOver) { tellTarget ("/highlight") { gotoAndStop (3); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { getURL ("http://www.electrotank.com/games/multiuser/"); }Symbol 23 Buttonon (rollOver) { tellTarget ("/highlight") { gotoAndStop (4); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (20); }Symbol 24 Buttonon (rollOver) { tellTarget ("/highlight") { gotoAndStop (5); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (23); }Symbol 25 Buttonon (rollOver) { tellTarget ("/highlight") { gotoAndStop (2); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (31); }Symbol 26 Buttonon (rollOver) { tellTarget ("/highlight") { gotoAndStop (6); }; } on (rollOut) { tellTarget ("/highlight") { gotoAndStop (1); }; } on (release) { gotoAndStop (16); }Symbol 36 MovieClip Frame 1stop();Symbol 36 MovieClip Frame 2stop();Symbol 37 Buttonon (rollOver) { tellTarget ("/back") { gotoAndStop (2); }; } on (rollOut) { tellTarget ("/back") { gotoAndStop (1); }; } on (release) { gotoAndStop (10); }Symbol 43 MovieClip Frame 1stop();Symbol 43 MovieClip Frame 2stop();Symbol 57 MovieClip Frame 1stop();Symbol 57 MovieClip Frame 2stop();Symbol 57 MovieClip Frame 3stop();Symbol 57 MovieClip Frame 4stop();Symbol 58 Buttonon (rollOver) { tellTarget ("/over") { gotoAndStop (2); }; } on (rollOut) { tellTarget ("/over") { gotoAndStop (1); }; } on (release) { new_game(); }Symbol 59 Buttonon (rollOver) { tellTarget ("/over") { gotoAndStop (3); }; } on (rollOut) { tellTarget ("/over") { gotoAndStop (1); }; } on (release) { credits.gotoAndStop(1); instructions.gotoAndStop(2); }Symbol 60 Buttonon (rollOver) { tellTarget ("/over") { gotoAndStop (4); }; } on (rollOut) { tellTarget ("/over") { gotoAndStop (1); }; } on (release) { credits.gotoAndStop(2); instructions.gotoAndStop(1); }Symbol 65 MovieClip Frame 1stop();Instance of Symbol 72 MovieClip in Symbol 73 MovieClip Frame 1/* no clip actions */Symbol 74 MovieClip Frame 1_root.table.greenness.gotoAndStop(1); stop();Symbol 74 MovieClip Frame 2_root.table.greenness.gotoAndStop(2);Symbol 87 MovieClip Frame 1stop();Symbol 87 MovieClip Frame 44gotoAndPlay (5);Symbol 89 Buttonon (press) { if ((_root.turn == "your_turn") && (_root.mode == "stopped")) { if (_root.ball_in_hand == "yes") { _root.drag1 = 1; _root.t1 = 1; startDrag ("", false, 155, 105, 560, 285); } else { i = 1; while (_root.maxSteps >= i) { duplicateMovieClip ("/guide", "guide" + i, i); i++; } } } } on (release, releaseOutside) { if (((_root.turn == "your_turn") && (_root.mode == "stopped")) && (_root.noShoot != 1)) { _root.drag1 = 0; stopDrag(); } } on (release) { if ((((_root.turn == "your_turn") && (_root.mode == "stopped")) && (_root.ball_in_hand != "yes")) && (_root.noShoot != 1)) { _root.loop = "no"; _root.stick_appear = "yes"; _root.stick._x = this._x; _root.stick._y = this._y; } if ((270 < (_x + (_width / 2))) && (_root.breaking == "yes")) { _root.ball_in_hand = "yes"; _root.breaking = "yes"; _x = 240; _y = 290; } else { _root.ball_in_hand = ""; _root.breaking = ""; } _parent.velx[0] = 0; _parent.vely[0] = 0; }Symbol 90 MovieClip Frame 1ball.gotoAndStop(1); n = _name.substr(4); begin_x = this._x; begin_y = this._y; stop();Instance of Symbol 87 MovieClip "ball" in Symbol 90 MovieClip Frame 1onClipEvent (load) { radius1 = _root.pocket1._width / 2; radius2 = this._width / 2; name = substring(_parent._name, 5, 2); } onClipEvent (enterFrame) { ox = x; oy = y; x = _parent._x; y = _parent._y; if ((x != ox) && (y != oy)) { if (_parent._y < 250) { start = 1; finish = 3; } else { start = 4; finish = 6; } i = start; while (finish >= i) { if (_parent.hitTest(_root["pocket" + i])) { dX = _parent._x - _root["pocket" + i]._x; dY = _parent._y - _root["pocket" + i]._y; dist = Math.sqrt((dX * dX) + (dY * dY)); if ((dist - radius1) < 0) { _root.skipBall[this.name] = 1; _parent._visible = 0; _parent._x = 1000 * i; _root.pocket_verification(this._parent.n); } } i++; } } }Symbol 90 MovieClip Frame 2ball.gotoAndPlay("fade");Symbol 91 MovieClip Frame 1stop();Symbol 91 MovieClip Frame 44gotoAndPlay (5);Symbol 112 MovieClip Frame 1stop(); if (_name != "dummy") { n = _name.substr(4); nn = Number(n) - 1; begin_x = this._x; begin_y = this._y; this.gotoandstop(Number(n) + 1); }Instance of Symbol 91 MovieClip in Symbol 112 MovieClip Frame 1onClipEvent (load) { function stuff() { if (this._parent.hitTest(_parent._parent._xmouse, _parent._parent._ymouse)) { _parent._parent.pop_up = this._parent.n; } var ox = x; var oy = y; var x = _parent._x; var y = _parent._y; if ((x != ox) && (y != oy)) { if (_parent._y < 250) { if (_parent._x < 275) { var start = 1; var finish = 1; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 2; var finish = 2; } else { var start = 3; var finish = 3; } } else if (_parent._x < 275) { var start = 6; var finish = 6; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 5; var finish = 5; } else { var start = 4; var finish = 4; } var i = start; while (finish >= i) { if (_parent.hitTest(_parent._parent["pocket" + i])) { var dX = (_parent._x - _parent._parent["pocket" + i]._x); var dY = (_parent._y - _parent._parent["pocket" + i]._y); var dist = Math.sqrt((dX * dX) + (dY * dY)); if ((dist - radius1) < 0) { trough = new sound(this); trough.attachSound("trough"); trough.start(); _parent._parent.skipBall[this.name] = 1; _parent._visible = 0; _parent._x = 1000 * i; _parent._parent.pocket_verification(this._parent.n); } } i++; } } } if (_parent._name != "dummy") { this._parent._visible = 0; radius1 = _parent._parent.pocket1._width / 2; radius2 = this._width / 2; name = substring(_parent._name, 5, 2); } } onClipEvent (enterFrame) { stuff(); }Symbol 114 MovieClip Frame 2stop(); _parent.new_Game();Symbol 116 MovieClip Frame 1stop();Symbol 116 MovieClip Frame 2_root.stick._visible = 1; _root.stick.stick_drag = "yes";Symbol 116 MovieClip Frame 25_root.velx[1] = tempvelx; _root.vely[1] = tempvely; _root.stick._visible = 0; _root.mode = "balls_move"; gotoAndStop (1); _root.gonogo = 0; trace(tempvelx); trace(tempvely); _root.nomoreCalc = 0;Instance of Symbol 119 MovieClip in Symbol 120 MovieClip Frame 1onClipEvent (enterFrame) { _parent._visible = _root.guides; }Symbol 134 MovieClip Frame 1stop(); if (_name != "dummy") { n = _name.substr(4); nn = Number(n) - 1; begin_x = this._x; begin_y = this._y; this.gotoandstop(Number(n) + 1); }Instance of Symbol 91 MovieClip in Symbol 134 MovieClip Frame 1onClipEvent (load) { function stuff() { if (this._parent.hitTest(_parent._parent._xmouse, _parent._parent._ymouse)) { _parent._parent.pop_up = this._parent.n; } var ox = x; var oy = y; var x = _parent._x; var y = _parent._y; if ((x != ox) && (y != oy)) { if (_parent._y < 250) { if (_parent._x < 275) { var start = 1; var finish = 1; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 2; var finish = 2; } else { var start = 3; var finish = 3; } } else if (_parent._x < 275) { var start = 6; var finish = 6; } else if ((275 < _parent._x) && (_parent._x < 535)) { var start = 5; var finish = 5; } else { var start = 4; var finish = 4; } var i = start; while (finish >= i) { if (_parent.hitTest(_parent._parent["pocket" + i])) { var dX = (_parent._x - _parent._parent["pocket" + i]._x); var dY = (_parent._y - _parent._parent["pocket" + i]._y); var dist = Math.sqrt((dX * dX) + (dY * dY)); if ((dist - radius1) < 0) { trough = new sound(this); trough.attachSound("trough"); trough.start(); _parent._parent.skipBall[this.name] = 1; _parent._visible = 0; _parent._x = 1000 * i; _parent._parent.pocket_verification(this._parent.n); } } i++; } } } if (_parent._name != "dummy") { this._parent._visible = 0; radius1 = _parent._parent.pocket1._width / 2; radius2 = this._width / 2; name = substring(_parent._name, 5, 2); } } onClipEvent (enterFrame) { stuff(); }Instance of Symbol 134 MovieClip "dummy" in Symbol 135 MovieClip Frame 1onClipEvent (enterFrame) { n = _parent.current_ball_temp; nn = n; this.gotoandstop(Number(n) + 2); }Symbol 138 MovieClip Frame 1stop();Symbol 147 Buttonon (release) { gotoAndStop (2); }Symbol 152 Buttonon (release) { gotoAndStop (1); }Symbol 156 Buttonon (release) { gotoAndStop (4); }Symbol 158 Buttonon (release) { gotoAndStop (13); }Symbol 162 MovieClip Frame 1stop();Symbol 162 MovieClip Frame 2stop();Symbol 162 MovieClip Frame 4stop();Symbol 162 MovieClip Frame 13stop();Symbol 170 Buttonon (release) { getURL ("http://www.electrotank.com", "_blank"); }Symbol 171 Buttonon (release) { gotoAndStop (1); }Symbol 172 MovieClip Frame 1stop();Symbol 172 MovieClip Frame 2stop();
Library Items
Symbol 1 Sound [trough] | ||
Symbol 2 Sound [rack] | ||
Symbol 3 Sound [hit] | ||
Symbol 4 Font | Used by:5 64 113 132 133 136 148 157 159 160 161 164 165 166 167 168 | |
Symbol 5 EditableText | Uses:4 | Used by:Timeline |
Symbol 6 Graphic | Used by:7 170 | |
Symbol 7 MovieClip | Uses:6 | Used by:Timeline |
Symbol 8 Graphic | Used by:Timeline | |
Symbol 9 Font | Used by:10 | |
Symbol 10 Text | Uses:9 | Used by:Timeline |
Symbol 11 Graphic | Used by:Timeline | |
Symbol 12 Font | Used by:13 14 15 16 17 18 19 27 30 33 34 35 41 42 44 45 49 51 52 | |
Symbol 13 Text | Uses:12 | Used by:Timeline |
Symbol 14 Text | Uses:12 | Used by:Timeline |
Symbol 15 Text | Uses:12 | Used by:20 |
Symbol 16 Text | Uses:12 | Used by:20 |
Symbol 17 Text | Uses:12 | Used by:20 |
Symbol 18 Text | Uses:12 | Used by:20 |
Symbol 19 Text | Uses:12 | Used by:20 |
Symbol 20 MovieClip | Uses:15 16 17 18 19 | Used by:Timeline |
Symbol 21 Graphic | Used by:22 23 24 25 26 37 58 59 60 | |
Symbol 22 Button | Uses:21 | Used by:Timeline |
Symbol 23 Button | Uses:21 | Used by:Timeline |
Symbol 24 Button | Uses:21 | Used by:Timeline |
Symbol 25 Button | Uses:21 | Used by:Timeline |
Symbol 26 Button | Uses:21 | Used by:Timeline |
Symbol 27 Text | Uses:12 | Used by:Timeline |
Symbol 28 Font | Used by:29 31 39 40 46 47 | |
Symbol 29 Text | Uses:28 | Used by:Timeline |
Symbol 30 Text | Uses:12 | Used by:Timeline |
Symbol 31 Text | Uses:28 | Used by:Timeline |
Symbol 32 Graphic | Used by:Timeline | |
Symbol 33 Text | Uses:12 | Used by:Timeline |
Symbol 34 Text | Uses:12 | Used by:Timeline |
Symbol 35 Text | Uses:12 | Used by:36 43 |
Symbol 36 MovieClip | Uses:35 | Used by:Timeline |
Symbol 37 Button | Uses:21 | Used by:Timeline |
Symbol 38 Font | Used by:39 40 | |
Symbol 39 Text | Uses:38 28 | Used by:Timeline |
Symbol 40 Text | Uses:38 28 | Used by:Timeline |
Symbol 41 Text | Uses:12 | Used by:Timeline |
Symbol 42 Text | Uses:12 | Used by:Timeline |
Symbol 43 MovieClip | Uses:35 | Used by:Timeline |
Symbol 44 Text | Uses:12 | Used by:Timeline |
Symbol 45 Text | Uses:12 | Used by:Timeline |
Symbol 46 Text | Uses:28 | Used by:Timeline |
Symbol 47 Text | Uses:28 | Used by:Timeline |
Symbol 48 Graphic | Used by:Timeline | |
Symbol 49 Text | Uses:12 | Used by:Timeline |
Symbol 50 Graphic | Used by:Timeline | |
Symbol 51 Text | Uses:12 | Used by:Timeline |
Symbol 52 Text | Uses:12 | Used by:Timeline |
Symbol 53 Graphic | Used by:Timeline | |
Symbol 54 Graphic | Used by:57 | |
Symbol 55 Graphic | Used by:57 | |
Symbol 56 Graphic | Used by:57 | |
Symbol 57 MovieClip | Uses:54 55 56 | Used by:Timeline |
Symbol 58 Button | Uses:21 | Used by:Timeline |
Symbol 59 Button | Uses:21 | Used by:Timeline |
Symbol 60 Button | Uses:21 | Used by:Timeline |
Symbol 61 Graphic | Used by:62 70 | |
Symbol 62 MovieClip | Uses:61 | Used by:70 |
Symbol 63 Graphic | Used by:65 | |
Symbol 64 Text | Uses:4 | Used by:65 |
Symbol 65 MovieClip | Uses:63 64 | Used by:70 |
Symbol 66 Graphic | Used by:70 | |
Symbol 67 Graphic | Used by:70 | |
Symbol 68 Graphic | Used by:69 | |
Symbol 69 MovieClip | Uses:68 | Used by:70 |
Symbol 70 MovieClip | Uses:62 61 65 66 67 69 | Used by:Timeline |
Symbol 71 Graphic | Used by:72 | |
Symbol 72 MovieClip | Uses:71 | Used by:73 |
Symbol 73 MovieClip | Uses:72 | Used by:Timeline |
Symbol 74 MovieClip | Used by:Timeline | |
Symbol 75 Graphic | Used by:76 | |
Symbol 76 MovieClip | Uses:75 | Used by:Timeline |
Symbol 77 Graphic | Used by:78 | |
Symbol 78 MovieClip | Uses:77 | Used by:Timeline |
Symbol 79 Graphic | Used by:80 | |
Symbol 80 MovieClip | Uses:79 | Used by:Timeline |
Symbol 81 Graphic | Used by:82 | |
Symbol 82 MovieClip | Uses:81 | Used by:Timeline |
Symbol 83 Graphic | Used by:87 91 112 134 | |
Symbol 84 ShapeTweening | Used by:87 91 | |
Symbol 85 ShapeTweening | Used by:87 91 | |
Symbol 86 Graphic | Used by:87 91 | |
Symbol 87 MovieClip | Uses:83 84 85 86 | Used by:90 |
Symbol 88 Graphic | Used by:89 | |
Symbol 89 Button | Uses:88 | Used by:90 |
Symbol 90 MovieClip | Uses:87 89 | Used by:Timeline |
Symbol 91 MovieClip | Uses:83 84 85 86 | Used by:112 134 |
Symbol 92 Graphic | Used by:112 134 | |
Symbol 93 Graphic | Used by:112 134 | |
Symbol 94 Font | Used by:95 97 99 101 103 105 107 109 111 160 161 | |
Symbol 95 Text | Uses:94 | Used by:112 134 |
Symbol 96 Graphic | Used by:112 134 | |
Symbol 97 Text | Uses:94 | Used by:112 134 |
Symbol 98 Graphic | Used by:112 134 | |
Symbol 99 Text | Uses:94 | Used by:112 134 |
Symbol 100 Graphic | Used by:112 134 | |
Symbol 101 Text | Uses:94 | Used by:112 134 |
Symbol 102 Graphic | Used by:112 134 | |
Symbol 103 Text | Uses:94 | Used by:112 134 |
Symbol 104 Graphic | Used by:112 134 | |
Symbol 105 Text | Uses:94 | Used by:112 134 |
Symbol 106 Graphic | Used by:112 134 | |
Symbol 107 Text | Uses:94 | Used by:112 134 |
Symbol 108 Graphic | Used by:112 134 | |
Symbol 109 Text | Uses:94 | Used by:112 134 |
Symbol 110 Graphic | Used by:112 134 | |
Symbol 111 Text | Uses:94 | Used by:112 134 |
Symbol 112 MovieClip | Uses:83 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | Used by:Timeline |
Symbol 113 Text | Uses:4 | Used by:114 |
Symbol 114 MovieClip | Uses:113 | Used by:Timeline |
Symbol 115 Graphic | Used by:116 | |
Symbol 116 MovieClip | Uses:115 | Used by:117 |
Symbol 117 MovieClip | Uses:116 | Used by:Timeline |
Symbol 118 Graphic | Used by:120 | |
Symbol 119 MovieClip | Used by:120 | |
Symbol 120 MovieClip | Uses:118 119 | Used by:Timeline |
Symbol 121 MovieClip | Used by:Timeline | |
Symbol 122 Graphic | Used by:123 124 | |
Symbol 123 MovieClip | Uses:122 | Used by:Timeline |
Symbol 124 MovieClip | Uses:122 | Used by:Timeline |
Symbol 125 Graphic | Used by:Timeline | |
Symbol 126 Font | Used by:127 | |
Symbol 127 EditableText | Uses:126 | Used by:Timeline |
Symbol 128 Graphic | Used by:Timeline | |
Symbol 129 Font | Used by:130 131 137 149 150 | |
Symbol 130 Text | Uses:129 | Used by:135 |
Symbol 131 Text | Uses:129 | Used by:135 |
Symbol 132 EditableText | Uses:4 | Used by:135 |
Symbol 133 EditableText | Uses:4 | Used by:135 |
Symbol 134 MovieClip | Uses:83 91 92 93 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | Used by:135 |
Symbol 135 MovieClip | Uses:130 131 132 133 134 | Used by:Timeline |
Symbol 136 Text | Uses:4 | Used by:138 |
Symbol 137 Text | Uses:129 | Used by:138 |
Symbol 138 MovieClip | Uses:136 137 | Used by:Timeline |
Symbol 139 Graphic | Used by:162 | |
Symbol 140 Font | Used by:141 142 146 | |
Symbol 141 Text | Uses:140 | Used by:147 |
Symbol 142 Text | Uses:140 | Used by:147 |
Symbol 143 Graphic | Used by:147 | |
Symbol 144 Font | Used by:145 | |
Symbol 145 Text | Uses:144 | Used by:147 |
Symbol 146 Text | Uses:140 | Used by:147 |
Symbol 147 Button | Uses:141 142 143 145 146 | Used by:162 |
Symbol 148 Text | Uses:4 | Used by:162 |
Symbol 149 Text | Uses:129 | Used by:152 171 |
Symbol 150 Text | Uses:129 | Used by:152 171 |
Symbol 151 Graphic | Used by:152 171 | |
Symbol 152 Button | Uses:149 150 151 | Used by:162 |
Symbol 153 Graphic | Used by:156 158 | |
Symbol 154 Graphic | Used by:156 158 | |
Symbol 155 Graphic | Used by:156 158 | |
Symbol 156 Button | Uses:153 154 155 | Used by:162 |
Symbol 157 Text | Uses:4 | Used by:162 |
Symbol 158 Button | Uses:153 154 155 | Used by:162 |
Symbol 159 Text | Uses:4 | Used by:162 |
Symbol 160 Text | Uses:94 4 | Used by:162 |
Symbol 161 Text | Uses:4 94 | Used by:162 |
Symbol 162 MovieClip | Uses:139 147 148 152 156 157 158 159 160 161 | Used by:Timeline |
Symbol 163 Graphic | Used by:172 | |
Symbol 164 Text | Uses:4 | Used by:172 |
Symbol 165 Text | Uses:4 | Used by:172 |
Symbol 166 Text | Uses:4 | Used by:172 |
Symbol 167 Text | Uses:4 | Used by:172 |
Symbol 168 Text | Uses:4 | Used by:172 |
Symbol 169 Graphic | Used by:170 | |
Symbol 170 Button | Uses:6 169 | Used by:172 |
Symbol 171 Button | Uses:149 150 151 | Used by:172 |
Symbol 172 MovieClip | Uses:163 164 165 166 167 168 170 171 | Used by:Timeline |
Instance Names
"highlight" | Frame 10 | Symbol 20 MovieClip |
"back" | Frame 16 | Symbol 36 MovieClip |
"back" | Frame 20 | Symbol 43 MovieClip |
"over" | Frame 31 | Symbol 57 MovieClip |
"table" | Frame 31 | Symbol 70 MovieClip |
"pocket1" | Frame 31 | Symbol 73 MovieClip |
"pocket2" | Frame 31 | Symbol 73 MovieClip |
"pocket3" | Frame 31 | Symbol 73 MovieClip |
"pocket4" | Frame 31 | Symbol 73 MovieClip |
"pocket5" | Frame 31 | Symbol 73 MovieClip |
"pocket6" | Frame 31 | Symbol 73 MovieClip |
"greenness" | Frame 31 | Symbol 74 MovieClip |
"left" | Frame 31 | Symbol 76 MovieClip |
"top" | Frame 31 | Symbol 78 MovieClip |
"right" | Frame 31 | Symbol 80 MovieClip |
"bottom" | Frame 31 | Symbol 82 MovieClip |
"ball1" | Frame 31 | Symbol 90 MovieClip |
"ball2" | Frame 31 | Symbol 112 MovieClip |
"ball4" | Frame 31 | Symbol 112 MovieClip |
"ball6" | Frame 31 | Symbol 112 MovieClip |
"ball5" | Frame 31 | Symbol 112 MovieClip |
"ball7" | Frame 31 | Symbol 112 MovieClip |
"ball9" | Frame 31 | Symbol 112 MovieClip |
"ball10" | Frame 31 | Symbol 112 MovieClip |
"ball8" | Frame 31 | Symbol 112 MovieClip |
"ball3" | Frame 31 | Symbol 112 MovieClip |
"stick" | Frame 31 | Symbol 117 MovieClip |
"guide" | Frame 31 | Symbol 120 MovieClip |
"window" | Frame 31 | Symbol 121 MovieClip |
"bot" | Frame 31 | Symbol 123 MovieClip |
"tester" | Frame 31 | Symbol 124 MovieClip |
"guide_choice" | Frame 31 | Symbol 138 MovieClip |
"instructions" | Frame 31 | Symbol 162 MovieClip |
"credits" | Frame 31 | Symbol 172 MovieClip |
"greenness" | Symbol 70 MovieClip Frame 1 | Symbol 65 MovieClip |
"ball" | Symbol 90 MovieClip Frame 1 | Symbol 87 MovieClip |
"inner" | Symbol 117 MovieClip Frame 1 | Symbol 116 MovieClip |
"dummy" | Symbol 135 MovieClip Frame 1 | Symbol 134 MovieClip |
Special Tags
Protect (24) | Timeline Frame 1 | 0 bytes "" |
ExportAssets (56) | Timeline Frame 1 | Symbol 1 as "trough" |
ExportAssets (56) | Timeline Frame 1 | Symbol 2 as "rack" |
ExportAssets (56) | Timeline Frame 1 | Symbol 3 as "hit" |
Labels
"ready" | Frame 10 |
"credits" | Frame 16 |
"controls" | Frame 20 |
"rules" | Frame 23 |
"fade" | Symbol 87 MovieClip Frame 5 |
"fade" | Symbol 91 MovieClip Frame 5 |
"userControls" | Symbol 162 MovieClip Frame 4 |
"howToPlay" | Symbol 162 MovieClip Frame 13 |
Dynamic Text Variables
percent | Symbol 5 EditableText | "" |
turn | Symbol 127 EditableText | "turnturn" |
status | Symbol 132 EditableText | "Test" |
status | Symbol 133 EditableText | "Test" |
|