STORY LOOP FURRY PORN GAMES C SERVICES [?] [R] RND POPULAR | Archived flashes: 229595 |
/disc/ · /res/ — /show/ · /fap/ · /gg/ · /swf/ | P0001 · P2595 · P5190 |
This is the info page for Flash #13416 |
0% |
Two players get 15 balls numbered 1 to 15 and divided into two groups. There are solids (numbers from 1 to 7) and stripes (numbers from 9 to 15) plus the black eight ball. As the game starts, the first player takes the breaking shot on the balls racked in triangular fashion. |
An object of the breaking shot is to choose a group of balls (solids or stripes). If the breaking shot pots a solid ball, the player is assigned the group of solids. If the breaking shot pots a stripe ball, the player is assigned the group of stripes. The ultimate goal of 8-ball pool is, for each player, to pot all balls from the assigned group of balls (pot all solids or pot all stripes), and then pot the eight ball. |
If a player does not pot any of the assigned balls in a shot, the turn passes to the opponent. If a player pots the eight ball before all the assigned balls or pots the eight ball and simultaneously commits a foul, the player loses the inning. |
If a player does not hit a ball with the cue ball, it's a foul. If a player hits the eight ball first or one of the opponent's balls first, it's a foul. If a player pots the cue ball, it's a foul. For every committed foul, the opponent gets a free shot. If, during a free shot, a player pots no balls, he gets another shot. A foul during a free shot counts as a regular foul, and the turn passes to the opponent. |
If a player pots the cue ball, the opponent gets ball in hand, which means that it can be placed at any spot behind the white line. |
power |
STRIKE |
Free shot! |
Please wait... |
Foul! Opponent’s ball hit first. has free shot. |
Player |
Computer |
Foul! No ball hit. has free shot. |
Foul! Cue ball potted. has free shot. |
Foul! Eight ball hit first. has free shot. |
Foul! Opponent’s ball potted. has free shot. |
has won the match! |
has loose the frame! |
ActionScript [AS1/AS2]
Frame 1function soundOff(zastFlag) { if (zastFlag) { mc_sloop.gotoAndStop(3); stopSoundFlag = true; } else { stopSoundFlag2 = true; } } function soundOn(zastFlag) { if (zastFlag) { mc_sloop.gotoAndStop(2); stopSoundFlag = false; } else { stopSoundFlag2 = false; } } function new_game_pressed() { gameStart(); } function how_to_play_pressed() { rulesCur = 1; this.gotoAndStop("rulez"); btn_left.enabled = false; } function more_pressed() { getURL ("http://www.justfreegames.com?r1=F&r2=RP&WT.mc_id=FlashRP", "_blank"); } function back_pressed() { this.gotoAndStop("main"); } function left_pressed() { rulesCur--; mc_rules.gotoAndStop(rulesCur); if (rulesCur == 1) { btn_left.enabled = false; } btn_right.enabled = true; } function right_pressed() { rulesCur++; mc_rules.gotoAndStop(rulesCur); if (rulesCur == rulesCount) { btn_right.enabled = false; } btn_left.enabled = true; } function removeAllMovie() { objAdd.destructor(); delete objAdd; delete objBounds; } function inMenuFirst() { mc_sloop.gotoAndStop(2); } function gameStart() { mc_sloop.gotoAndStop(3); this.gotoAndStop("start"); } function newGame() { if (!stopSoundFlag) { mc_sloop.gotoAndStop(2); } this.gotoAndStop("main"); } function playSnd(lib_snd) { if (stopSoundFlag2) { return(undefined); } s = new Sound(this); s.attachSound(lib_snd); s.start(); } function playSnd2(lib_snd, mc, vol) { if (stopSoundFlag2) { return(undefined); } if (vol < 18) { return(undefined); } if (vol > 100) { vol = 100; } s = new Sound(mc); s.attachSound(lib_snd); s.setVolume(vol); s.start(); } function addScores(scr) { } function prepareToTurn() { if (gameState == 0) { var _local2; var _local1; showCue(); setCuePos(); _local2 = Math.cos((cue_mc._rotation / 180) * Math.PI); _local1 = Math.sin((cue_mc._rotation / 180) * Math.PI); setCueGoal(_local2, _local1); btn_mc.enabled = true; ind_mc.enable(); } else if (gameState == 1) { showTimer(); curPocketNum = 5; curBallNum = 0; objBounds.clearRules(); } } function hideMessage() { mc_msg._visible = false; mc_msg.gotoAndStop("st0"); gameState = nextGameState; if ((gameState == 5) || (gameState == 6)) { objBounds.freeShot = true; mc_freeShot._visible = true; doKickToEnemy(); } else if (gameState == 7) { removeAllMovie(); newGame(); } } function showMessage(fLabel) { mc_msg.gotoAndStop(fLabel); if (mc_msg.mc_who != undefined) { if ((fLabel == "st7") || (fLabel == "st8")) { if (objBounds.thisCompKick) { mc_msg.mc_who.gotoAndStop(2); } else { mc_msg.mc_who.gotoAndStop(1); } } else if (objBounds.thisCompKick) { mc_msg.mc_who.gotoAndStop(1); } else { mc_msg.mc_who.gotoAndStop(2); } } mc_msg._visible = true; gameState = 4; frameCounter = 0; } function endBallsMove() { var _local1 = objBounds.isFoul(); if (_local1 != 0) { objBounds.freeShot = false; mc_freeShot._visible = false; if (_local1 == 7) { if ((objBounds.thisCompKick && (objBounds.compBallType == 3)) && (objBounds.firstKickBallType == 3)) { if ((objBounds.mainBall.state != 2) && (objBounds.firstKickOk)) { messageFrames = 90; nextGameState = 7; showMessage("st7"); objAdd.addBallToDepos(objBounds.ball8); return(undefined); } if ((objBounds.mainBall.state == 2) && (objBounds.firstKickOk)) { objAdd.put8Ball(); objAdd.putMainBallRandom(); nextStateAfterFoul(); showMessage("st4"); return(undefined); } } else if (((objBounds.thisCompKick == false) && (objBounds.playerBallType == 3)) && (objBounds.firstKickBallType == 3)) { if ((objBounds.mainBall.state != 2) && (objBounds.firstKickOk)) { messageFrames = 90; nextGameState = 7; showMessage("st7"); objAdd.addBallToDepos(objBounds.ball8); return(undefined); } if ((objBounds.mainBall.state == 2) && (objBounds.firstKickOk)) { objAdd.put8Ball(); objAdd.putMainBallRandom(); nextStateAfterFoul(); showMessage("st4"); return(undefined); } } messageFrames = 72; nextGameState = 7; showMessage("st8"); return(undefined); } nextStateAfterFoul(); if (_local1 == 4) { objAdd.putMainBallRandom(); } showMessage("st" + String(_local1)); } else if (objBounds.ballIn <= 0) { if (objBounds.freeShot) { objBounds.freeShot = false; mc_freeShot._visible = false; doNextKick(); } else { doKickToEnemy(); } } else { if (objBounds.freeShot) { objBounds.freeShot = false; mc_freeShot._visible = false; } doNextKick(); } } function nextStateAfterFoul() { if (objBounds.thisCompKick) { nextGameState = 5; } else { nextGameState = 6; } } function doKickToEnemy() { if (objBounds.thisCompKick) { gameState = 0; prepareToTurn(); mc_ndp_player._visible = true; mc_ndp_computer._visible = false; objBounds.thisCompKick = false; } else { gameState = 1; prepareToTurn(); mc_ndp_computer._visible = true; mc_ndp_player._visible = false; objBounds.thisCompKick = true; } } function doNextKick() { if (objBounds.thisCompKick) { gameState = 1; } else { gameState = 0; } prepareToTurn(); } function buttonPressed() { if (pauseFlag) { return(undefined); } if (gameState == 0) { ind_mc.disable(); btn_mc.enabled = false; hideCueGoal(); dx = Math.cos((cue_mc._rotation / 180) * Math.PI); dy = Math.sin((cue_mc._rotation / 180) * Math.PI); startKick(dx, dy, ind_mc.getValue()); gameState = 2; } } function getNextBall(ballNum, ballType) { var _local3 = objBounds.ball_array.length; do { ballNum++; } while ((ballNum < _local3) && ((objBounds.ball_array[ballNum].state == 2) || ((ballType != -1) && (objBounds.ball_array[ballNum].myType != ballType)))); if (ballNum >= _local3) { return(-1); } return(ballNum); } function showTimer() { mc_msg._visible = true; mc_msg.gotoAndStop("st1"); } function hideTimer() { mc_msg._visible = false; mc_msg.gotoAndStop("st0"); } function showCue() { cue1_mc._visible = true; cueBall_mc._visible = false; cue21_mc._visible = false; cue22_mc._visible = false; cue_mc._visible = true; cue1_mc._x = objBounds.mainBall._x; cue1_mc._y = objBounds.mainBall._y; cue_mc._x = objBounds.mainBall._x - (objBounds.ballRad + objBounds.cueWidth2); cue_mc._y = objBounds.mainBall._y; } function setCuePos() { var _local2; var _local1; _local2 = Math.cos((cue_mc._rotation / 180) * Math.PI); _local1 = Math.sin((cue_mc._rotation / 180) * Math.PI); cue_mc._x = objBounds.mainBall._x - (_local2 * (objBounds.ballRad + objBounds.cueWidth2)); cue_mc._y = objBounds.mainBall._y - (_local1 * (objBounds.ballRad + objBounds.cueWidth2)); } function hideCueGoal() { cueBall_mc._visible = false; cue1_mc._visible = false; cue21_mc._visible = false; cue22_mc._visible = false; } function hideCue() { cue_mc._visible = false; } function setCueGoal(dx, dy) { var _local6; var _local5; var _local9; var _local1; var _local10 = objBounds.ball_array.length; var _local4; var _local14 = null; var _local13 = 500; var _local2 = {x:0, y:0, R:0}; var _local11 = {x:0, y:0}; var _local19 = Math.atan2(dy, dx) / (Math.PI/180); var _local15; cue1_mc._rotation = _local19; _local1 = 1; while (_local1 < _local10) { _local4 = objBounds.ball_array[_local1]; if (_local4.state == 2) { } else { _local6 = _local4._x - objBounds.mainBall._x; _local5 = _local4._y - objBounds.mainBall._y; _local9 = Math.sqrt((_local6 * _local6) + (_local5 * _local5)); _local6 = _local6 / _local9; _local5 = _local5 / _local9; if ((((_local6 * dx) + (_local5 * dy)) > 0) && (objBounds.intersec.getCircleIntersection(objBounds.mainBall._x, objBounds.mainBall._y, objBounds.mainBall._x + (dx * 400), objBounds.mainBall._y + (dy * 400), _local4._x, _local4._y, objBounds.ballTwoR, objBounds.ballTwoR2, _local2))) { if (_local2.R < _local13) { _local13 = _local2.R; _local14 = _local4; _local11.x = _local2.x; _local11.y = _local2.y; } } } _local1++; } if (_local14 != null) { cueBall_mc._visible = true; cue21_mc._visible = true; cue22_mc._visible = true; cue1_mc._xscale = _local13 / 3; cueBall_mc._x = _local11.x; cueBall_mc._y = _local11.y; _local6 = _local14._x - _local11.x; _local5 = _local14._y - _local11.y; _local9 = Math.sqrt((_local6 * _local6) + (_local5 * _local5)); _local6 = _local6 / _local9; _local5 = _local5 / _local9; _local15 = (dx * _local6) + (dy * _local5); cue21_mc._x = (cue22_mc._x = _local11.x); cue21_mc._y = (cue22_mc._y = _local11.y); cue21_mc._rotation = Math.atan2(_local5, _local6) / (Math.PI/180); cue21_mc._xscale = _local15 * 100; if ((((-dy) * _local6) + (dx * _local5)) > 0) { cue22_mc._rotation = Math.atan2(-_local6, _local5) / (Math.PI/180); } else { cue22_mc._rotation = Math.atan2(_local6, -_local5) / (Math.PI/180); } cue22_mc._xscale = Math.sqrt(1 - (_local15 * _local15)) * 100; return(undefined); } cue21_mc._visible = false; cue22_mc._xscale = 100; var _local12 = {x:0, y:0, nx:0, ny:0, R:0}; var _local3; var _local18; var _local17; var _local16; _local10 = objBounds.pocket_array.length; if (objBounds.intersec.getFieldIntersection(objBounds.line_array, objBounds.mainBall._x, objBounds.mainBall._y, objBounds.mainBall._x + (dx * 400), objBounds.mainBall._y + (dy * 400), _local12)) { _local1 = 0; while (_local1 < _local10) { _local3 = objBounds.pocket_array[_local1]; if (objBounds.intersec.getCircleIntersection(objBounds.mainBall._x, objBounds.mainBall._y, objBounds.mainBall._x + (dx * 400), objBounds.mainBall._y + (dy * 400), _local3.x, _local3.y, _local3.R, _local3.R2, _local2)) { if (_local2.R < _local12.R) { cue22_mc._visible = false; cueBall_mc._visible = false; cue1_mc._xscale = _local2.R / 3; return(undefined); } } _local1++; } _local16 = ((-dx) * _local12.nx) - (dy * _local12.ny); _local18 = ((2 * _local16) * _local12.nx) + dx; _local17 = ((2 * _local16) * _local12.ny) + dy; cue22_mc._visible = true; cueBall_mc._visible = true; cue22_mc._x = (cueBall_mc._x = _local12.x); cue22_mc._y = (cueBall_mc._y = _local12.y); cue22_mc._rotation = Math.atan2(_local17, _local18) / (Math.PI/180); cue1_mc._xscale = _local12.R / 3; return(undefined); } cue22_mc._visible = false; cueBall_mc._visible = false; _local1 = 0; while (_local1 < _local10) { _local3 = objBounds.pocket_array[_local1]; if (objBounds.intersec.getCircleIntersection(objBounds.mainBall._x, objBounds.mainBall._y, objBounds.mainBall._x + (dx * 400), objBounds.mainBall._y + (dy * 400), _local3.x, _local3.y, _local3.R, _local3.R2, _local2)) { cue22_mc._visible = false; cueBall_mc._visible = false; cue1_mc._xscale = _local2.R / 3; return(undefined); } _local1++; } } function startKick(dx, dy, pow) { var _local3 = Math.atan2(dy, dx) / (Math.PI/180); cue_mc._visible = true; cue_mc._rotation = _local3; cue_mc._x = objBounds.mainBall._x - (dx * (objBounds.ballRad + objBounds.cueWidth2)); cue_mc._y = objBounds.mainBall._y - (dy * (objBounds.ballRad + objBounds.cueWidth2)); objBounds.mainBall.tmpVx = dx; objBounds.mainBall.tmpVy = dy; objBounds.mainBall.minStartSpeed = objBounds.ballMaxSpeed * pow; objBounds.cueCurDW = 0; objBounds.cueSubState = 0; } function moveCue() { if (objBounds.cueSubState == 0) { objBounds.cueCurDW = objBounds.cueCurDW + objBounds.cueBackSpeed; if (objBounds.cueCurDW >= ((objBounds.cueMaxDW * objBounds.mainBall.minStartSpeed) / objBounds.ballMaxSpeed)) { objBounds.cueCurDW = (objBounds.cueMaxDW * objBounds.mainBall.minStartSpeed) / objBounds.ballMaxSpeed; cue_mc._x = objBounds.mainBall._x - (objBounds.mainBall.tmpVx * ((objBounds.ballRad + objBounds.cueWidth2) + objBounds.cueCurDW)); cue_mc._y = objBounds.mainBall._y - (objBounds.mainBall.tmpVy * ((objBounds.ballRad + objBounds.cueWidth2) + objBounds.cueCurDW)); objBounds.cueCurFrames = 0; objBounds.cueSubState = 4; } else { cue_mc._x = objBounds.mainBall._x - (objBounds.mainBall.tmpVx * ((objBounds.ballRad + objBounds.cueWidth2) + objBounds.cueCurDW)); cue_mc._y = objBounds.mainBall._y - (objBounds.mainBall.tmpVy * ((objBounds.ballRad + objBounds.cueWidth2) + objBounds.cueCurDW)); } } else if (objBounds.cueSubState == 1) { objBounds.cueCurSpeed = objBounds.cueCurSpeed + objBounds.cueAcc; objBounds.cueCurDW = objBounds.cueCurDW - objBounds.cueCurSpeed; if (objBounds.cueCurDW <= 0) { objBounds.cueCurDW = 0; } cue_mc._x = objBounds.mainBall._x - (objBounds.mainBall.tmpVx * ((objBounds.ballRad + objBounds.cueWidth2) + objBounds.cueCurDW)); cue_mc._y = objBounds.mainBall._y - (objBounds.mainBall.tmpVy * ((objBounds.ballRad + objBounds.cueWidth2) + objBounds.cueCurDW)); if (objBounds.cueCurDW == 0) { objBounds.cueSubState = 3; objBounds.cueCurFrames = 0; } } else if (objBounds.cueSubState == 4) { objBounds.cueCurFrames++; if (objBounds.cueCurFrames >= objBounds.cueStopFrames) { objBounds.cueSubState = 1; objBounds.cueCurSpeed = 0; objBounds.cueAcc = ((objBounds.mainBall.minStartSpeed * objBounds.mainBall.minStartSpeed) * 4.5) / ((objBounds.cueMaxDW * objBounds.mainBall.minStartSpeed) / objBounds.ballMaxSpeed); } } if (objBounds.cueSubState == 3) { objBounds.cueCurFrames++; if (objBounds.cueCurFrames >= 3) { hideCue(); objBounds.cueSubState = 0; } } } var stopSoundFlag = false; var stopSoundFlag2 = false; var tmpRX; var tmpRY; var tmpRU; var curVolume = 100; var rulesCount = 5; var rulesCur = 1; var pauseFlag; var dx; var dy; var dr; var objBounds; var objAdd; var gameState; var nextGameState; var messageFrames; var frameCounter; var cueMoveFlag; var curPocketNum; var curBallNum; var tickN; var lastTickN; var curTickN; var ticksInFrame = 55.5555555555556; var rand; stopSoundFlag = false;Instance of Symbol 6 MovieClip in Frame 2on (press) { getURL ("http://www.justfreegames.com?r1=F&r2=RP&WT.mc_id=FlashRP", "_blank"); }Instance of Symbol 13 MovieClip in Frame 2on (press) { getURL ("http://www.justfreegames.com?r1=F&r2=RP&WT.mc_id=FlashRP", "_blank"); }Frame 3stot = this.getBytesTotal(); sloa = this.getBytesLoaded(); if (stot != 0) { per = Math.floor((sloa / stot) * 100); } else { per = 0; } mc_bar.mc._x = mc_bar.mc._width * (-1 + (sloa / stot)); txtPer = String(per) + "%"; if (((sloa >= 1) && (stot >= 1)) && (sloa == stot)) { gotoAndStop ("main"); inMenuFirst(); } else { gotoAndPlay (2); }Frame 5stop();Instance of Symbol 44 MovieClip "btn_sound" in Frame 5onClipEvent (load) { if (this._parent.stopSoundFlag) { this.gotoAndStop(2); } this.zastFlag = true; }Instance of Symbol 46 MovieClip "mc_sloop" in Frame 5onClipEvent (load) { var soundControl = new Sound(this); }Frame 7stop();Instance of Symbol 44 MovieClip "btn_sound" in Frame 7onClipEvent (load) { if (this._parent.stopSoundFlag2) { this.gotoAndStop(2); } this.zastFlag = false; }Instance of Symbol 273 MovieClip in Frame 7onClipEvent (load) { this._visible = false; tellTarget (_parent) { pauseFlag = false; mc_ndp_computer._visible = false; mc_msg._visible = false; mc_msg.gotoAndStop("st0"); i = 1; while (i < 8) { this._parent["pb" + i]._visible = false; i++; } i = 9; while (i < 16) { this._parent["pb" + i]._visible = false; i++; } objBounds = new CBounds(mc_lu, mc_rd, cue1_mc, cue21_mc, cue22_mc, cueBall_mc, cue_mc); objAdd = new CBounds2(objBounds); objBounds.setAddClass(objAdd); objAdd.addLines(this._parent); objAdd.addPockets(this._parent, this._parent); objAdd.addBalls(this._parent, mc_shadows); objAdd.addGoals(this._parent); hideCue(); hideCueGoal(); objBounds.freeShot = false; mc_freeShot._visible = false; gameState = 0; nextGameState = 0; messageFrames = 40; frameCounter = 0; cueMoveFlag = false; curPocketNum = 0; curBallNum = 0; cue_mc.onPress = function () { this._parent.cueMoveFlag = true; updateAfterEvent(); }; cue_mc.onRelease = (cue_mc.onReleaseOutside = function () { this._parent.cueMoveFlag = false; updateAfterEvent(); }); btn_mc.enabled = false; ind_mc.disable(); ticksInFrame = 55.5555555555556; prepareToTurn(); }; } onClipEvent (enterFrame) { tellTarget (_parent) { if (pauseFlag) { return(undefined); } if (gameState == 0) { if (cueMoveFlag) { dx = _xmouse - objBounds.mainBall._x; dy = _ymouse - objBounds.mainBall._y; cue_mc._rotation = (Math.atan2(dy, dx) * 57.2957795130823) + 180; setCuePos(); dx = Math.cos((cue_mc._rotation / 180) * Math.PI); dy = Math.sin((cue_mc._rotation / 180) * Math.PI); setCueGoal(dx, dy); } } else if (gameState == 1) { curTickN = (tickN = getTimer()); do { lastTickN = curTickN; curPocketNum++; if (curPocketNum >= 6) { curPocketNum = 0; curBallNum = getNextBall(curBallNum, objBounds.compBallType); if (curBallNum == -1) { if (objBounds.rules_array.length > 0) { objAdd.sortRules(); objBounds.mainBall.tmpVx = objBounds.rules_array[0].vx; objBounds.mainBall.tmpVy = objBounds.rules_array[0].vy; objBounds.mainBall.minStartSpeed = objBounds.rules_array[0].startSpeed; if (random(3) == 0) { tmpRU = (0.5 + (0.5 * Math.random())) * (Math.PI/180); tmpRX = (objBounds.mainBall.tmpVx * Math.cos(tmpRU)) - (objBounds.mainBall.tmpVy * Math.sin(tmpRU)); tmpRY = (objBounds.mainBall.tmpVx * Math.sin(tmpRU)) + (objBounds.mainBall.tmpVy * Math.cos(tmpRU)); objBounds.mainBall.tmpVx = tmpRX; objBounds.mainBall.tmpVy = tmpRY; objBounds.mainBall.minStartSpeed = objBounds.mainBall.minStartSpeed + (objBounds.ballMaxSpeed / 8); if (objBounds.mainBall.minStartSpeed > objBounds.ballMaxSpeed) { objBounds.mainBall.minStartSpeed = objBounds.ballMaxSpeed; } } } else { objBounds.compRandomKick(objBounds.compBallType); objAdd.sortRules(); if (objBounds.rules_array.length > 0) { objBounds.mainBall.tmpVx = objBounds.rules_array[0].vx; objBounds.mainBall.tmpVy = objBounds.rules_array[0].vy; if (objBounds.rules_array[0].maxBackSpeed < 0.2) { objBounds.mainBall.minStartSpeed = objBounds.ballMaxSpeed - ((Math.random() * (objBounds.ballMaxSpeed - objBounds.rules_array[0].startSpeed)) / 3); } else { objBounds.mainBall.minStartSpeed = ((objBounds.ballMaxSpeed - objBounds.rules_array[0].startSpeed) / 2) + objBounds.rules_array[0].startSpeed; } } else { if (random(2) == 0) { objBounds.mainBall.tmpVx = 1; objBounds.mainBall.tmpVy = 0; } else { objBounds.mainBall.tmpVx = -1; objBounds.mainBall.tmpVy = 0; } objBounds.mainBall.minStartSpeed = objBounds.ballMaxSpeed / 2; } } showCue(); cue_mc._rotation = (Math.atan2(objBounds.mainBall.tmpVy, objBounds.mainBall.tmpVx) * 57.2957795130823) + 180; setCuePos(); hideCueGoal(); startKick(objBounds.mainBall.tmpVx, objBounds.mainBall.tmpVy, objBounds.mainBall.minStartSpeed / objBounds.ballMaxSpeed); gameState = 2; hideTimer(); return(undefined); } } objBounds.canBallToPocket(objBounds.ball_array[curBallNum], curPocketNum); curTickN = getTimer(); } while ((ticksInFrame - (curTickN - tickN)) > (curTickN - lastTickN)); } else if (gameState == 2) { moveCue(); if (objBounds.cueSubState == 3) { if (objBounds.thisCompKick) { objAdd.compKickBall(); gameState = 3; } else { objAdd.kickBall(); gameState = 3; } playSnd("lib_snd_cue"); } } else if (gameState == 3) { if (objBounds.cueSubState == 3) { moveCue(); } rand = 1; if (objBounds.moveBalls()) { rand = 0; } if (rand == 1) { endBallsMove(); } if (objBounds.ballSndFlag) { if (objBounds.soundBall != 0) { playSnd2("lib_snd_ball", objBounds.soundBall, (objBounds.maxVol * 100) + 12); } } else if (objBounds.stolSndFlag) { } else if (objBounds.pocketSndFlag) { playSnd("lib_snd_lusa"); } } else if (gameState == 4) { frameCounter++; if (frameCounter >= messageFrames) { hideMessage(); return(undefined); } } else if (gameState == 5) { } else if (gameState == 6) { } }; }Symbol 274 MovieClip [__Packages.CBall] Frame 0class CBall extends MovieClip { var rK, myType, state, sub2State, stop, frame90Count, acc, mc_shadow, vx, vy, curStep, ostL, curL, _x, sX, _y, sY, speed, _visible; function CBall () { super(); rK = 360 / (Math.PI * diametr); myType = -1; state = 0; sub2State = 0; stop(); } function init(frame90Count, acc, mc_shadow) { this.frame90Count = frame90Count; this.acc = acc; this.mc_shadow = mc_shadow; } function doStep() { } function updateRotate() { } function doOneStep() { doStep(vx, vy, curStep); ostL = ostL - curStep; curL = curL + curStep; _x = sX + (vx * curL); _y = sY + (vy * curL); if (ostL < 0.05) { ostL = 0; } } function slowDown() { speed = speed - acc; if (speed <= 0) { speed = 0; state = 0; } } function startMove(dx, dy, speed) { vx = dx; vy = dy; this.speed = speed; sX = _x; sY = _y; curL = 0; state = 1; } function saveCoords() { sX = _x; sY = _y; curL = 0; } function disable() { mc_shadow._visible = false; state = 2; sub2State = 0; _visible = false; _x = (_y = -1000); ostL = (speed = 0); } function putBallTo(x, y) { mc_shadow._x = (_x = x); mc_shadow._y = (_y = y); _visible = true; mc_shadow._visible = true; state = 0; } static var diametr = 12; }Symbol 275 MovieClip [__Packages.CBounds2] Frame 0class CBounds2 { var objBounds, line_array, pocket_array, ball_array, goal_array, rules_array, intersec, leftUp_x, leftUp_y, rightDown_x, rightDown_y, sortRulesFunc; function CBounds2 (objBounds) { this.objBounds = objBounds; line_array = new Array(); pocket_array = new Array(); ball_array = new Array(); goal_array = new Array(); rules_array = new Array(); intersec = new CIntersection(); leftUp_x = objBounds.leftUp_x; leftUp_y = objBounds.leftUp_y; rightDown_x = objBounds.rightDown_x; rightDown_y = objBounds.rightDown_y; sortRulesFunc = function (a, b) { if (a.foulFlag != b.foulFlag) { if (a.foulFlag == false) { return(-1); } return(1); } if (a.prior < b.prior) { return(-1); } if (a.prior > b.prior) { return(1); } if (a.maxBackSpeed < b.maxBackSpeed) { return(-1); } if (a.maxBackSpeed > b.maxBackSpeed) { return(1); } return(0); }; } function addBallToDepos(ball) { } function destructor() { delete line_array; delete pocket_array; delete ball_array; delete goal_array; delete rules_array; delete intersec; } function addLines(lRoot) { var _local4; var _local5; var _local3; var _local2; _local4 = 1; while (true) { _local3 = lRoot[("mc_p" + _local4) + "0"]; if (_local3 == undefined) { break; } _local5 = 1; while (true) { _local2 = lRoot[(("mc_p" + _local4) + "") + _local5]; if (_local2 == undefined) { break; } line_array.push({x1:_local3._x, y1:_local3._y, x2:_local2._x, y2:_local2._y, nx:0, ny:0, xMin:Math.min(_local3._x, _local2._x), yMin:Math.min(_local3._y, _local2._y), xMax:Math.max(_local3._x, _local2._x), yMax:Math.max(_local3._y, _local2._y)}); _local3 = _local2; _local5++; } _local4++; } _local5 = line_array.length; _local4 = 0; while (_local4 < _local5) { intersec.calcNormal(line_array[_local4]); _local4++; } } function addPockets(pRoot) { var _local2; var _local4 = 0; var _local3; while (true) { _local2 = pRoot["mc_pocket" + (_local4 + 1)]; if (_local2 == undefined) { break; } _local4++; _local3 = _local2._width / 2; pocket_array.push({x:_local2._x, y:_local2._y, R:_local3, R2:_local3 * _local3, rB2:144, xMin:_local2._x - _local3, yMin:_local2._y - _local3, xMax:_local2._x + _local3, yMax:_local2._y + _local3}); _local2._visible = false; } } function addBalls(bRoot, mc_shadows) { var _local2; var _local3; var _local4; var _local7; var _local6; var _local5 = 0; while (true) { _local3 = bRoot["mc_ball" + _local5]; if (_local3 == undefined) { break; } _local5++; } _local2 = 0; while (_local2 < _local5) { _local3 = bRoot["mc_ball" + _local2]; _local3.num = _local2; if (_local2 == 0) { _local3.myType = 0; } else if (_local2 == 8) { _local3.myType = 3; } mc_shadows.attachMovie("lib_shadow", String(_local2), _local2); _local3.init(objBounds.bFrame90Count, objBounds.ballAcc, mc_shadows[_local2]); _local3.setRandomRotate(); _local3.mc_shadow._x = _local3._x; _local3.mc_shadow._y = _local3._y; _local3.mc_shadow._alpha = 30; ball_array.push(_local3); _local2++; } _local2 = 2; while (_local2 <= _local5) { if ((_local2 == 8) || (_local2 == 9)) { } else { _local4 = random(14) + 2; if ((_local4 == 8) || (_local4 == 9)) { } else if (_local4 != _local2) { _local7 = ball_array[_local2]._x; _local6 = ball_array[_local2]._y; ball_array[_local2].mc_shadow._x = (ball_array[_local2]._x = ball_array[_local4]._x); ball_array[_local2].mc_shadow._y = (ball_array[_local2]._y = ball_array[_local4]._y); ball_array[_local4].mc_shadow._x = (ball_array[_local4]._x = _local7); ball_array[_local4].mc_shadow._y = (ball_array[_local4]._y = _local6); } } _local2++; } objBounds.ballRad = CBall.diametr / 2; objBounds.ballRad2 = objBounds.ballRad * objBounds.ballRad; intersec.ballTwoR = (objBounds.ballTwoR = objBounds.ballRad * 2); intersec.ballTwoR2 = (objBounds.ballTwoR2 = objBounds.ballTwoR * objBounds.ballTwoR); objBounds.mainBall = ball_array[0]; objBounds.ball8 = ball_array[8]; } function addGoals(gRoot) { var _local9; goal_array.push({x:gRoot.mc_goal1._x, y:gRoot.mc_goal1._y, l1:line_array[17], l2:line_array[0], l3:line_array[1], l4:line_array[16]}); goal_array.push({x:gRoot.mc_goal2._x, y:gRoot.mc_goal2._y, l1:line_array[2], l2:line_array[3], l3:line_array[1], l4:line_array[4]}); goal_array.push({x:gRoot.mc_goal3._x, y:gRoot.mc_goal3._y, l1:line_array[5], l2:line_array[6], l3:line_array[4], l4:line_array[7]}); goal_array.push({x:gRoot.mc_goal4._x, y:gRoot.mc_goal4._y, l1:line_array[8], l2:line_array[9], l3:line_array[7], l4:line_array[10]}); goal_array.push({x:gRoot.mc_goal5._x, y:gRoot.mc_goal5._y, l1:line_array[11], l2:line_array[12], l3:line_array[10], l4:line_array[13]}); goal_array.push({x:gRoot.mc_goal6._x, y:gRoot.mc_goal6._y, l1:line_array[14], l2:line_array[15], l3:line_array[13], l4:line_array[16]}); } function setFoulRules(myType) { var _local2; var _local4 = rules_array.length; var _local3; if (myType == -1) { _local2 = 0; while (_local2 < _local4) { _local3 = rules_array[_local2]; _local3.foulFlag = (((_local3.firstBallType != 1) && (_local3.firstBallType != 2)) ? true : false); _local2++; } } else { _local2 = 0; while (_local2 < _local4) { _local3 = rules_array[_local2]; _local3.foulFlag = ((_local3.firstBallType != myType) ? true : false); _local2++; } } } function sortRules(myType) { rules_array.sort(sortRulesFunc); } function getPriorXDir() { return(((objBounds.mainBall._x < objBounds.ball8._x) ? 1 : -1)); } function rulesWithoutFoul() { var _local2; var _local3 = rules_array.length; _local2 = 0; while (_local2 < _local3) { if (rules_array[_local2].foulFlag == false) { return(true); } _local2++; } return(false); } function put8Ball() { var _local2 = 381; var _local3 = 467; objBounds.putBallRandom(objBounds.ball8, _local2, _local3); } function putMainBallRandom() { var _local2 = 106; var _local3 = 193; objBounds.putBallRandom(objBounds.mainBall, _local2, _local3); } function isPutMainBall(x, y) { var _local9 = {x:0, y:0, nx:0, ny:0, R:0}; if (intersec.getFieldIntersection(line_array, 260, 195, x, y, _local9)) { return(false); } var _local3; var _local8 = ball_array.length; var _local2; var _local5; var _local4; _local3 = 1; while (_local3 < _local8) { _local2 = ball_array[_local3]; if (_local2.state == 2) { } else { _local5 = _local2._x - x; _local4 = _local2._y - y; if (((_local5 * _local5) + (_local4 * _local4)) < objBounds.ballTwoR2) { return(false); } } _local3++; } return(true); } function kickBall() { var _local2 = ball_array[0]; objBounds.thisCompKick = false; objBounds.type1BallIn = 0; objBounds.type2BallIn = 0; objBounds.ballIn = 0; objBounds.firstKickBallType = -1; objBounds.firstInBallType = -1; objBounds.wrongBallFlag = false; objBounds.firstKickOk = false; _local2.startMove(_local2.tmpVx, _local2.tmpVy, _local2.minStartSpeed); } function compKickBall() { var _local2 = ball_array[0]; objBounds.thisCompKick = true; objBounds.firstKickBallType = -1; objBounds.thisCompKick = true; objBounds.type1BallIn = 0; objBounds.type2BallIn = 0; objBounds.ballIn = 0; objBounds.firstInBallType = -1; objBounds.wrongBallFlag = false; objBounds.firstKickOk = false; _local2.startMove(_local2.tmpVx, _local2.tmpVy, _local2.minStartSpeed); } function getMaxSpeed() { var _local2; var _local3; var _local5 = ball_array.length; var _local4 = 0; _local3 = 0; while (_local3 < _local5) { _local2 = ball_array[_local3]; if ((_local2.state == 1) && (_local2.speed > _local4)) { _local4 = _local2.speed; } _local3++; } return(_local4); } function setBallSteps(maxSpeed) { var _local3; var _local4 = ball_array.length; var _local5 = Math.ceil(maxSpeed / objBounds.ballStep); var _local2; _local3 = 0; while (_local3 < _local4) { _local2 = ball_array[_local3]; if ((_local2.state == 1) && (_local2.speed > 0)) { _local2.curStep = _local2.speed / _local5; _local2.ostL = _local2.speed; } _local3++; } } function addRule(rule) { rules_array.push(rule); } function isFreeWayFromWalls(sX, sY, pNum) { var _local8 = {x:0, y:0}; var _local2 = goal_array[pNum]; var _local5 = sX; var _local7 = sY; var _local4 = _local2.x; var _local6 = _local2.y; if ((((sX > leftUp_x) && (sY > leftUp_y)) && (sX < rightDown_x)) && (sY < rightDown_y)) { return((intersec.getIntersection(_local5, _local7, _local4, _local6, _local2.l1.x1, _local2.l1.y1, _local2.l1.x2, _local2.l1.y2, _local8) == false) && (intersec.getIntersection(_local5, _local7, _local4, _local6, _local2.l2.x1, _local2.l2.y1, _local2.l2.x2, _local2.l2.y2, _local8) == false)); } var _local3; _local3 = 0; while (_local3 < 6) { _local2 = goal_array[_local3]; if (intersec.getIntersection(_local5, _local7, _local4, _local6, _local2.l1.x1, _local2.l1.y1, _local2.l1.x2, _local2.l1.y2, _local8) || (intersec.getIntersection(_local5, _local7, _local4, _local6, _local2.l2.x1, _local2.l2.y1, _local2.l2.x2, _local2.l2.y2, _local8))) { return(false); } _local3++; } return(true); } function isFreeWayFromBalls(ball, sX, sY, ball2, toX, toY) { var _local6 = toX - sX; var _local21 = toY - sY; var _local11 = Math.sqrt((_local6 * _local6) + (_local21 * _local21)); var _local22 = Math.atan2(_local21, _local6); var _local9 = Math.sin(_local22); var _local10 = Math.cos(_local22); var _local18 = ball_array.length; var _local4 = 0; var _local17 = Math.min(sX, toX); var _local13 = Math.max(sX, toX); var _local16 = Math.min(sY, toY); var _local12 = Math.max(sY, toY); var _local2; var _local8; var _local7; var _local5; var _local3; _local17 = _local17 - objBounds.ballTwoR; _local16 = _local16 - objBounds.ballTwoR; _local13 = _local13 + objBounds.ballTwoR; _local12 = _local12 + objBounds.ballTwoR; _local4 = 0; while (_local4 < _local18) { _local2 = ball_array[_local4]; if (((_local2 == ball) || (_local2 == ball2)) || (_local2.state == 2)) { } else if ((((_local2._x > _local17) && (_local2._x < _local13)) && (_local2._y > _local16)) && (_local2._y < _local12)) { _local8 = _local2._x - sX; _local7 = _local2._y - sY; _local5 = (_local8 * _local10) - (_local7 * (-_local9)); _local3 = (_local8 * (-_local9)) + (_local7 * _local10); if ((((_local5 >= 0) && (_local5 <= _local11)) && (_local3 >= ((-objBounds.ballTwoR) - 0.3))) && (_local3 <= (objBounds.ballTwoR + 0.3))) { return(false); } _local6 = _local5 - _local11; if (((_local6 * _local6) + (_local3 * _local3)) <= objBounds.ballTwoR2) { return(false); } } _local4++; } return(true); } function getCurBallType() { return((objBounds.thisCompKick ? (objBounds.compBallType) : (objBounds.playerBallType))); } }Symbol 276 MovieClip [__Packages.CBounds] Frame 0class CBounds { var bFrame90Count, v_k, ballMaxSpeed, ballAcc, ballStep, leftUp_x, leftUp_y, rightDown_x, rightDown_y, playerBallType, compBallType, type1BallCount, type2BallCount, thisCompKick, cue1_mc, cue21_mc, cue22_mc, cueBall_mc, cue_mc, cueWidth2, cueMaxDW, cueBackSpeed, cueStopFrames, objAdd, line_array, pocket_array, ball_array, goal_array, rules_array, intersec, mainBall, ballTwoR, soundBall, maxVol, ballTwoR2, firstKickBallType, firstKickOk, wrongBallFlag, ballIn, type1BallIn, type2BallIn, firstInBallType, ball8; function CBounds (mc_lu, mc_rd, cue1_mc, cue21_mc, cue22_mc, cueBall_mc, cue_mc) { bFrame90Count = 25; v_k = 0.4; ballMaxSpeed = 33 * v_k; ballAcc = (0.6 * v_k) * v_k; ballStep = 3; leftUp_x = mc_lu._x; leftUp_y = mc_lu._y; rightDown_x = mc_rd._x; rightDown_y = mc_rd._y; playerBallType = -1; compBallType = -1; type1BallCount = 7; type2BallCount = 7; thisCompKick = false; this.cue1_mc = cue1_mc; this.cue21_mc = cue21_mc; this.cue22_mc = cue22_mc; this.cueBall_mc = cueBall_mc; this.cue_mc = cue_mc; cueWidth2 = cue_mc._width / 2; cueMaxDW = 50; cueBackSpeed = 4; cueStopFrames = 3; } function setAddClass(objAdd) { this.objAdd = objAdd; line_array = objAdd.line_array; pocket_array = objAdd.pocket_array; ball_array = objAdd.ball_array; goal_array = objAdd.goal_array; rules_array = objAdd.rules_array; intersec = objAdd.intersec; intersec.ballStep = ballStep; intersec.ballMaxSpeed = ballMaxSpeed; } function clearRules() { while (rules_array.pop() != undefined) { } } function compRandomKick(ballType) { var _local6; var _local18 = ball_array.length; var _local2; var _local4; var _local3; var _local7; var _local9; var _local8; var _local5 = {backSpeed:0}; clearRules(); _local6 = 1; for ( ; _local6 < _local18 ; _local6++) { _local2 = ball_array[_local6]; if (_local2.state == 2) { } else { if (ballType == -1) { if ((_local2.myType != 1) && (_local2.myType != 2)) { continue; } } else if (_local2.myType != ballType) { } else { _local4 = _local2._x - mainBall._x; _local3 = _local2._y - mainBall._y; _local7 = Math.sqrt((_local4 * _local4) + (_local3 * _local3)); _local4 = _local4 / _local7; _local3 = _local3 / _local7; _local9 = _local2._x - (_local4 * ballTwoR); _local8 = _local2._y - (_local3 * ballTwoR); _local2.tmpVx = _local4; _local2.tmpVy = _local3; _local2.minStartSpeed = 0.1; if (canKickOnly(mainBall, _local2, _local9, _local8, _local5)) { objAdd.addRule({prior:0, maxBackSpeed:0, firstBallType:_local2.myType, vx:mainBall.tmpVx, vy:mainBall.tmpVy, startSpeed:mainBall.minStartSpeed, foulFlag:false}); } else { _local4 = 0; _local3 = 0; if (((canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[1], line_array[4], -1, _local5) || (canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[13], line_array[10], -1, _local5))) || (canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[16], null, -1, _local5))) || (canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[7], null, -1, _local5))) { objAdd.addRule({prior:2, maxBackSpeed:_local5.backSpeed, firstBallType:_local2.myType, vx:mainBall.tmpVx, vy:mainBall.tmpVy, startSpeed:mainBall.minStartSpeed, foulFlag:false}); } } } _local4 = _local2._x - mainBall._x; _local3 = _local2._y - mainBall._y; _local7 = Math.sqrt((_local4 * _local4) + (_local3 * _local3)); _local4 = _local4 / _local7; _local3 = _local3 / _local7; _local9 = _local2._x - (_local4 * ballTwoR); _local8 = _local2._y - (_local3 * ballTwoR); _local2.tmpVx = _local4; _local2.tmpVy = _local3; _local2.minStartSpeed = 0.1; if (canKickOnly(mainBall, _local2, _local9, _local8, _local5)) { objAdd.addRule({prior:0, maxBackSpeed:0, firstBallType:_local2.myType, vx:mainBall.tmpVx, vy:mainBall.tmpVy, startSpeed:mainBall.minStartSpeed, foulFlag:false}); } else { _local4 = 0; _local3 = 0; if (((canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[1], line_array[4], -1, _local5) || (canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[13], line_array[10], -1, _local5))) || (canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[16], null, -1, _local5))) || (canKickFromWall(mainBall, _local2, _local2._x, _local2._y, _local4, _local3, 0.1, line_array[7], null, -1, _local5))) { objAdd.addRule({prior:2, maxBackSpeed:_local5.backSpeed, firstBallType:_local2.myType, vx:mainBall.tmpVx, vy:mainBall.tmpVy, startSpeed:mainBall.minStartSpeed, foulFlag:false}); } } } } } function moveBalls() { var _local20; stolSndFlag = false; ballSndFlag = false; pocketSndFlag = false; soundBall = null; maxVol = 0; var _local33 = objAdd.getMaxSpeed(); if (_local33 <= 0) { return(false); } var _local28 = 0; var _local30 = Math.ceil(_local33 / ballStep); objAdd.setBallSteps(_local33); var _local25 = true; var _local6; var _local5; var _local7; var _local16; var _local15; var _local9; var _local8; var _local26; var _local27; var _local12 = {x:0, y:0, nx:0, ny:0, R:0}; var _local14 = {x:0, y:0}; var _local19 = 0; var _local23; var _local21; var _local24; var _local22; var _local10; var _local18 = ball_array.length; var _local4; var _local29 = pocket_array.length; var _local2; var _local11; var _local3; var _local13; var _local17; var _local32; var _local31; _local14 = {x:0, y:0}; while (true) { _local28++; _local25 = true; _local10 = 0; for ( ; _local10 < _local18 ; _local10++) { _local2 = ball_array[_local10]; if ((_local2.state == 1) && (_local2.ostL > 0)) { _local25 = false; _local16 = _local2.sX; _local9 = _local16 + (_local2.vx * ((_local2.curL + _local2.curStep) + 1)); _local15 = _local2.sY; _local8 = _local15 + (_local2.vy * ((_local2.curL + _local2.curStep) + 1)); _local26 = _local2._x; if ((((((((_local26 < leftUp_x) || (_local9 < leftUp_x)) || (_local26 > rightDown_x)) || (_local9 > rightDown_x)) || ((_local27 = _local2._y) < leftUp_y)) || (_local8 < leftUp_y)) || (_local27 > rightDown_y)) || (_local8 > rightDown_y)) { _local23 = Math.min(_local16, _local9); _local21 = Math.max(_local16, _local9); _local24 = Math.min(_local15, _local8); _local22 = Math.max(_local15, _local8); _local4 = 0; while (_local4 < _local29) { _local3 = pocket_array[_local4]; _local6 = _local3.x - _local2._x; _local5 = _local3.y - _local2._y; _local7 = Math.sqrt((_local6 * _local6) + (_local5 * _local5)); _local6 = _local6 / _local7; _local5 = _local5 / _local7; if ((((_local6 * _local2.vx) + (_local5 * _local2.vy)) > 0) && ((((_local23 <= _local3.xMax) && (_local21 >= _local3.xMin)) && (_local24 <= _local3.yMax)) && (_local22 >= _local3.yMin))) { if (intersec.getCircleIntersection(_local16, _local15, _local9, _local8, _local3.x, _local3.y, _local3.R, _local3.R2, _local12)) { pocketSndFlag = true; if (_local2.myType != 0) { checkWrongBall(_local2.myType); } _local2.disable(); if ((_local2.myType == 1) || (_local2.myType == 2)) { objAdd.addBallToDepos(_local2); updatePanel(_local2.num); } _local2.myPocket = _local4; break; } } _local4++; } if (_local2.state != 1) { continue; } if (intersec.getFieldIntersection(line_array, _local16, _local15, _local9, _local8, _local12)) { _local14.x = _local2.vx; _local14.y = _local2.vy; _local19 = ((-_local14.x) * _local12.nx) - (_local14.y * _local12.ny); _local2.vx = ((2 * _local19) * _local12.nx) + _local14.x; _local2.vy = ((2 * _local19) * _local12.ny) + _local14.y; _local2._x = _local12.x; _local2._y = _local12.y; _local2.ostL = _local2.ostL - _local2.curStep; _local2.saveCoords(); stolSndFlag = true; } else { _local13 = null; _local17 = 500000 /* 0x07A120 */; _local32 = 0; _local31 = 0; _local4 = 0; while (_local4 < _local18) { if (_local10 != _local4) { _local11 = ball_array[_local4]; if (_local11.state != 2) { _local6 = _local11._x - _local9; _local5 = _local11._y - _local8; _local7 = (_local6 * _local6) + (_local5 * _local5); if (_local7 < ballTwoR2) { if (intersec.canBallsIntersection(_local2, _local11)) { if (_local7 < _local17) { _local17 = _local7; _local13 = _local11; } } } } } _local4++; } if (_local13 != null) { if (firstKickBallType == -1) { firstKickBallType = _local13.myType; if (thisCompKick) { if (compBallType == -1) { firstKickOk = (firstKickBallType == 1) || (firstKickBallType == 2); } else { firstKickOk = firstKickBallType == compBallType; } } else if (playerBallType == -1) { firstKickOk = (firstKickBallType == 1) || (firstKickBallType == 2); } else { firstKickOk = firstKickBallType == playerBallType; } } _local6 = _local13._x - _local9; _local5 = _local13._y - _local8; _local20 = intersec.twoBallsCollision(_local2, _local13, _local6, _local5, _local28, _local30); if (_local20 > maxVol) { maxVol = _local20; soundBall = _local2; } ballSndFlag = true; } else { _local2.doOneStep(); } } } else { _local13 = null; _local17 = 500000 /* 0x07A120 */; _local32 = 0; _local31 = 0; _local4 = 0; while (_local4 < _local18) { if (_local10 != _local4) { _local11 = ball_array[_local4]; if (_local11.state != 2) { _local6 = _local11._x - _local9; _local5 = _local11._y - _local8; _local7 = (_local6 * _local6) + (_local5 * _local5); if (_local7 < ballTwoR2) { if (intersec.canBallsIntersection(_local2, _local11)) { if (_local7 < _local17) { _local17 = _local7; _local13 = _local11; } } } } } _local4++; } if (_local13 != null) { if (firstKickBallType == -1) { firstKickBallType = _local13.myType; if (thisCompKick) { if (compBallType == -1) { firstKickOk = (firstKickBallType == 1) || (firstKickBallType == 2); } else { firstKickOk = firstKickBallType == compBallType; } } else if (playerBallType == -1) { firstKickOk = (firstKickBallType == 1) || (firstKickBallType == 2); } else { firstKickOk = firstKickBallType == playerBallType; } } _local6 = _local13._x - _local9; _local5 = _local13._y - _local8; _local20 = intersec.twoBallsCollision(_local2, _local13, _local6, _local5, _local28, _local30); if (_local20 > maxVol) { maxVol = _local20; soundBall = _local2; } ballSndFlag = true; } else { _local2.doOneStep(); } } } } if (_local25) { _local10 = 0; while (_local10 < _local18) { _local2 = ball_array[_local10]; if (_local2.state != 2) { _local2.slowDown(); _local2.updateRotate(); _local2.mc_shadow._x = _local2._x; _local2.mc_shadow._y = _local2._y; } _local10++; } return(true); } } } function updatePanel(num) { var _local3; var _local2; if ((type1BallCount + type2BallCount) == 13) { _local2 = 1; while (_local2 < 8) { cue_mc._parent["pb" + _local2]._visible = true; _local2++; } _local2 = 9; while (_local2 < 16) { cue_mc._parent["pb" + _local2]._visible = true; _local2++; } if (compBallType == 1) { _local2 = 1; while (_local2 < 8) { _local3 = cue_mc._parent["pb" + _local2]._x; cue_mc._parent["pb" + _local2]._x = cue_mc._parent["pb" + (_local2 + 8)]._x; cue_mc._parent["pb" + (_local2 + 8)]._x = _local3; _local2++; } } } cue_mc._parent["pb" + num]._visible = false; } function checkWrongBall(ballType) { if (!wrongBallFlag) { if (thisCompKick) { if (((compBallType != -1) && (compBallType != ballType)) || (((compBallType == -1) && (ballType != 1)) && (ballType != 2))) { wrongBallFlag = true; } else { ballIn++; } } else if (((playerBallType != -1) && (playerBallType != ballType)) || (((playerBallType == -1) && (ballType != 1)) && (ballType != 2))) { wrongBallFlag = true; } else { ballIn++; } } if ((ballType == 1) || (ballType == 2)) { if (ballType == 1) { type1BallIn++; type1BallCount--; if (type1BallCount < 0.1) { if (playerBallType == 1) { playerBallType = 3; } else { compBallType = 3; } } } else if (ballType == 2) { type2BallIn++; type2BallCount--; if (type2BallCount < 0.1) { if (playerBallType == 2) { playerBallType = 3; } else { compBallType = 3; } } } if (firstInBallType == -1) { firstInBallType = ballType; if (compBallType == -1) { if (thisCompKick) { compBallType = ballType; playerBallType = ((ballType == 1) ? 2 : 1); } else { playerBallType = ballType; compBallType = ((ballType == 1) ? 2 : 1); } } } } } function canBallToPocket(ball, pNum) { var _local3 = goal_array[pNum]; var _local5; var _local4; var _local6; var _local13; var _local12; var _local10; var _local9; var _local8; var _local14 = {prior:0, maxBackSpeed:0, firstBallType:-1, vx:0, vy:0, startSpeed:0, foulFlag:false}; if (objAdd.isFreeWayFromWalls(ball._x, ball._y, pNum) && (objAdd.isFreeWayFromBalls(ball, ball._x, ball._y, null, _local3.x, _local3.y))) { _local5 = _local3.x - ball._x; _local4 = _local3.y - ball._y; _local6 = Math.sqrt((_local5 * _local5) + (_local4 * _local4)); if ((pNum != 2) && (pNum != 5)) { ball.minStartSpeed = Math.sqrt((2 * ballAcc) * (_local6 + 10)); } else { ball.minStartSpeed = Math.sqrt((2 * ballAcc) * _local6); } _local5 = _local5 / _local6; (ball.tmpVx = _local5); _local4 = _local4 / _local6; (ball.tmpVy = _local4); _local13 = ball._x - (_local5 * ballTwoR); _local12 = ball._y - (_local4 * ballTwoR); _local10 = _local13 - mainBall._x; _local9 = _local12 - mainBall._y; _local6 = Math.sqrt((_local10 * _local10) + (_local9 * _local9)); mainBall.tmpVx = _local10 / _local6; mainBall.tmpVy = _local9 / _local6; mainBall.tmpDr = _local6; canKick(mainBall, ball, _local13, _local12, _local14); } _local5 = _local3.x - ball._x; _local4 = _local3.y - ball._y; _local6 = Math.sqrt((_local5 * _local5) + (_local4 * _local4)); _local5 = _local5 / _local6; _local4 = _local4 / _local6; if ((pNum != 2) && (pNum != 5)) { _local8 = Math.sqrt((2 * ballAcc) * 10); } else { _local8 = 0.1; } var _local11 = {backSpeed:0}; if (!(((((canKickFromWall(ball, null, _local3.x, _local3.y, _local5, _local4, _local8, line_array[1], line_array[4], pNum, _local11) || (canKickFromWall(ball, null, _local3.x, _local3.y, _local5, _local4, _local8, line_array[13], line_array[10], pNum, _local11))) || (canKickFromWall(ball, null, _local3.x, _local3.y, _local5, _local4, _local8, line_array[16], null, pNum, _local11))) || (canKickFromWall(ball, null, _local3.x, _local3.y, _local5, _local4, _local8, line_array[7], null, pNum, _local11))) || (canKickFromWall(ball, null, _local3.x, _local3.y, _local5, _local4, _local8, goal_array[pNum].l1, null, pNum, _local11))) || (canKickFromWall(ball, null, _local3.x, _local3.y, _local5, _local4, _local8, goal_array[pNum].l2, null, pNum, _local11)))) { return(undefined); } _local5 = ball.tmpVx; _local4 = ball.tmpVy; _local13 = ball._x - (_local5 * ballTwoR); _local12 = ball._y - (_local4 * ballTwoR); _local10 = _local13 - mainBall._x; _local9 = _local12 - mainBall._y; _local6 = Math.sqrt((_local10 * _local10) + (_local9 * _local9)); mainBall.tmpVx = _local10 / _local6; mainBall.tmpVy = _local9 / _local6; mainBall.tmpDr = _local6; _local14.prior = 2; canKick(mainBall, ball, _local13, _local12, _local14); } function canKick(sBall, eBall, toX, toY, startRule) { var _local26 = Math.atan2(sBall.tmpVy, sBall.tmpVx); var _local14 = Math.sin(_local26); var _local10 = Math.cos(_local26); var _local24 = ball_array.length; var _local7 = 0; var _local22 = Math.min(sBall._x, eBall._x); var _local20 = Math.max(sBall._x, eBall._x); var _local21 = Math.min(sBall._y, eBall._y); var _local19 = Math.max(sBall._y, eBall._y); var _local2; var _local12; var _local11; var _local8; var _local6; var _local9; _local22 = _local22 - ballTwoR; _local21 = _local21 - ballTwoR; _local20 = _local20 + ballTwoR; _local19 = _local19 + ballTwoR; var _local23 = false; var _local5 = {backSpeed:0}; var _local13; var _local15; _local7 = 0; while (_local7 < _local24) { _local2 = ball_array[_local7]; if (((_local2 == eBall) || (_local2 == sBall)) || (_local2.state == 2)) { } else if ((((_local2._x > _local22) && (_local2._x < _local20)) && (_local2._y > _local21)) && (_local2._y < _local19)) { _local12 = _local2._x - sBall._x; _local11 = _local2._y - sBall._y; _local8 = (_local12 * _local10) - (_local11 * (-_local14)); _local6 = (_local12 * (-_local14)) + (_local11 * _local10); _local9 = _local8 - sBall.tmpDr; if (((((_local8 >= 0) && (_local8 <= sBall.tmpDr)) && (_local6 >= ((-ballTwoR) - 0.3))) && (_local6 <= (ballTwoR + 0.3))) || (((_local9 * _local9) + (_local6 * _local6)) <= ballTwoR2)) { _local23 = true; if (eBall == ball8) { break; } if (!canKickOnly(_local2, eBall, toX, toY, _local5)) { } else { _local13 = _local5.backSpeed; if (!canKickOnly(sBall, _local2, _local2._x - (_local2.tmpVx * ballTwoR), _local2._y - (_local2.tmpVy * ballTwoR), _local5)) { } else { _local15 = _local5.backSpeed; if (intersec.getFieldIntersection2(line_array, sBall._x, sBall._y, _local2._x, _local2._y)) { } else { objAdd.addRule({prior:((startRule.prior == 2) ? 4 : 1), maxBackSpeed:Math.max(_local13, _local15), firstBallType:_local2.myType, vx:sBall.tmpVx, vy:sBall.tmpVy, startSpeed:sBall.minStartSpeed, foulFlag:false}); } } } } } _local7++; } if (!_local23) { _local10 = (sBall.tmpVx * eBall.tmpVx) + (sBall.tmpVy * eBall.tmpVy); if (Math.acos(_local10) <= 1.49599650170943) { var _local25 = eBall.minStartSpeed / _local10; _local13 = _local25 * Math.sqrt(1 - (_local10 * _local10)); var _local27; var _local28; _local9 = sBall._x - toX; _local27 = sBall._y - toY; _local28 = Math.sqrt((_local9 * _local9) + (_local27 * _local27)); sBall.minStartSpeed = Math.sqrt(((2 * ballAcc) * _local28) + (_local25 * _local25)); if ((sBall.minStartSpeed <= ballMaxSpeed) && (intersec.getFieldIntersection2(line_array, sBall._x, sBall._y, toX, toY) == false)) { objAdd.addRule({prior:((startRule.prior == 2) ? 2 : 0), maxBackSpeed:_local13, firstBallType:eBall.myType, vx:sBall.tmpVx, vy:sBall.tmpVy, startSpeed:sBall.minStartSpeed, foulFlag:false}); } } } if (canKickFromWall(sBall, eBall, toX, toY, eBall.tmpVx, eBall.tmpVy, eBall.minStartSpeed, line_array[1], line_array[4], -1, _local5)) { objAdd.addRule({prior:((startRule.prior == 2) ? 3 : 2), maxBackSpeed:_local5.BackSpeed, firstBallType:eBall.myType, vx:sBall.tmpVx, vy:sBall.tmpVy, startSpeed:sBall.minStartSpeed, foulFlag:false}); } if (canKickFromWall(sBall, eBall, toX, toY, eBall.tmpVx, eBall.tmpVy, eBall.minStartSpeed, line_array[13], line_array[10], -1, _local5)) { objAdd.addRule({prior:((startRule.prior == 2) ? 3 : 2), maxBackSpeed:_local5.BackSpeed, firstBallType:eBall.myType, vx:sBall.tmpVx, vy:sBall.tmpVy, startSpeed:sBall.minStartSpeed, foulFlag:false}); } if (canKickFromWall(sBall, eBall, toX, toY, eBall.tmpVx, eBall.tmpVy, eBall.minStartSpeed, line_array[16], null, -1, _local5)) { objAdd.addRule({prior:((startRule.prior == 2) ? 3 : 2), maxBackSpeed:_local5.BackSpeed, firstBallType:eBall.myType, vx:sBall.tmpVx, vy:sBall.tmpVy, startSpeed:sBall.minStartSpeed, foulFlag:false}); } if (canKickFromWall(sBall, eBall, toX, toY, eBall.tmpVx, eBall.tmpVy, eBall.minStartSpeed, line_array[7], null, -1, _local5)) { objAdd.addRule({prior:((startRule.prior == 2) ? 3 : 2), maxBackSpeed:_local5.BackSpeed, firstBallType:eBall.myType, vx:sBall.tmpVx, vy:sBall.tmpVy, startSpeed:sBall.minStartSpeed, foulFlag:false}); } } function canKickOnly(sBall, eBall, toX, toY, res) { var _local4; var _local3; var _local6; var _local5; var _local7; _local4 = toX - sBall._x; _local3 = toY - sBall._y; _local6 = Math.sqrt((_local4 * _local4) + (_local3 * _local3)); _local4 = _local4 / _local6; _local3 = _local3 / _local6; _local5 = (_local4 * eBall.tmpVx) + (_local3 * eBall.tmpVy); if (Math.acos(_local5) > 1.49599650170943) { return(false); } if (!objAdd.isFreeWayFromBalls(sBall, sBall._x, sBall._y, eBall, toX, toY)) { return(false); } _local7 = eBall.minStartSpeed / _local5; res.backSpeed = _local7 * Math.sqrt(1 - (_local5 * _local5)); sBall.minStartSpeed = Math.sqrt(((2 * ballAcc) * _local6) + (_local7 * _local7)); if (sBall.minStartSpeed > ballMaxSpeed) { return(false); } sBall.tmpVx = _local4; sBall.tmpVy = _local3; return(true); } function canKickFromWall(sBall, eBall, toX, toY, vx, vy, minSpeed, line, line2, pNum, res) { var _local3; var _local2; var _local16; _local3 = sBall._x - line.x1; _local2 = sBall._y - line.y1; _local16 = (_local3 * line.nx) + (_local2 * line.ny); if (_local16 <= 0) { return(false); } _local3 = toX - line.x1; _local2 = toY - line.y1; _local16 = (_local3 * line.nx) + (_local2 * line.ny); if (_local16 <= 0) { return(false); } var _local10 = {x:0, y:0}; var _local11 = {x:0, y:0}; if ((!intersec.getLineIntersection(line.x1, line.y1, line.x2, line.y2, sBall._x, sBall._y, sBall._x - (line.nx * 10), sBall._y - (line.ny * 10), _local10)) || (!intersec.getLineIntersection(line.x1, line.y1, line.x2, line.y2, toX, toY, toX - (line.nx * 10), toY - (line.ny * 10), _local11))) { return(false); } var _local6; var _local18; var _local19; _local3 = _local10.x - sBall._x; _local2 = _local10.y - sBall._y; _local18 = Math.sqrt((_local3 * _local3) + (_local2 * _local2)); _local3 = _local11.x - toX; _local2 = _local11.y - toY; _local19 = Math.sqrt((_local3 * _local3) + (_local2 * _local2)); _local3 = _local11.x - _local10.x; _local2 = _local11.y - _local10.y; _local6 = Math.sqrt((_local3 * _local3) + (_local2 * _local2)); _local3 = _local3 / _local6; _local2 = _local2 / _local6; _local6 = (_local18 * _local6) / (_local18 + _local19); var _local9 = _local10.x + (_local3 * _local6); var _local8 = _local10.y + (_local2 * _local6); var _local17; _local17 = intersec.pointOnLine(_local9, _local8, line.x1, line.y1, line.x2, line.y2); if ((!_local17) && (line2 != null)) { _local17 = intersec.pointOnLine(_local9, _local8, line2.x1, line2.y1, line2.x2, line2.y2); } if (_local17) { _local3 = toX - _local9; _local2 = toY - _local8; _local6 = Math.sqrt((_local3 * _local3) + (_local2 * _local2)); _local3 = _local3 / _local6; _local2 = _local2 / _local6; var _local14; var _local7; if ((vx == 0) && (vy == 0)) { _local14 = 1; } else { _local14 = (_local3 * vx) + (_local2 * vy); if (Math.acos(_local14) > 1.49599650170943) { return(false); } } if (!objAdd.isFreeWayFromBalls(sBall, _local9, _local8, eBall, toX, toY)) { return(false); } if ((pNum >= 0) && (!objAdd.isFreeWayFromWalls(_local9, _local8, pNum))) { return(false); } _local7 = minSpeed / _local14; res.backSpeed = _local7 * Math.sqrt(1 - (_local14 * _local14)); _local7 = Math.sqrt(((2 * ballAcc) * _local6) + (_local7 * _local7)); if (_local7 > ballMaxSpeed) { return(false); } if (!objAdd.isFreeWayFromBalls(sBall, sBall._x, sBall._y, null, _local9, _local8)) { return(false); } _local3 = _local9 - sBall._x; _local2 = _local8 - sBall._y; _local6 = Math.sqrt((_local3 * _local3) + (_local2 * _local2)); _local7 = Math.sqrt(((2 * ballAcc) * _local6) + (_local7 * _local7)); if (_local7 > ballMaxSpeed) { return(false); } sBall.tmpVx = _local3 / _local6; sBall.tmpVy = _local2 / _local6; sBall.minStartSpeed = _local7; return(true); } return(false); } function putBallRandom(pBall, leftX, rightX) { var _local16 = 217; var _local10 = 5; var _local13 = -1; var _local14 = 0; var _local4 = leftX; var _local9 = _local16; var _local7 = false; var _local3; var _local11 = ball_array.length; var _local2; var _local12 = ballTwoR2; var _local6; var _local5; var _local8; var _local19; if (leftX < 287.5) { _local8 = -1; _local19 = rightX; } else { _local8 = 1; _local19 = leftX; } _local4 = _local19; while (true) { do { _local7 = true; _local3 = 0; while (_local3 < _local11) { _local2 = ball_array[_local3]; if ((_local2.state == 2) || (_local2 == pBall)) { } else { _local6 = _local2._x - _local4; _local5 = _local2._y - _local9; if (((_local6 * _local6) + (_local5 * _local5)) < _local12) { _local7 = false; break; } } _local3++; } if (_local7) { break; } _local4 = _local4 + (_local10 * _local8); } while (((_local8 > 0) && (_local4 < rightX)) || ((_local8 < 0) && (_local4 > leftX))); if (_local7) { break; } _local4 = _local19; if (_local13 < 0) { _local14 = _local14 + 1; _local13 = 1; _local9 = _local16 + (_local14 * _local10); } else { _local13 = -1; _local9 = _local16 - (_local14 * _local10); } } pBall.putBallTo(_local4, _local9); } function isFoul() { if (ball8.state == 2) { return(7); } if (mainBall.state == 2) { return(4); } if (firstKickBallType == -1) { return(3); } if (wrongBallFlag) { return(6); } if (!firstKickOk) { if (firstKickBallType == 3) { return(5); } return(2); } return(0); } var stolSndFlag = false; var ballSndFlag = false; var pocketSndFlag = false; }Symbol 277 MovieClip [__Packages.CIntersection] Frame 0class CIntersection { var ballTwoR, ballTwoR2, ballMaxSpeed; function CIntersection () { } function getCircleIntersection(x1, y1, x2, y2, x0, y0, R, R2, iP) { var _local4; var _local1; var _local12; var _local13; var _local8; var _local19; var _local17; var _local18; var _local25; var _local24; var _local9; var _local10; var _local6; var _local7; var _local16; var _local15; var _local14 = 500000 /* 0x07A120 */; var _local11 = 500000 /* 0x07A120 */; if (Math.abs(x2 - x1) < 1) { _local4 = x1 - x2; _local1 = y2 - y1; _local12 = (x1 * (y1 - y2)) - (y1 * (x1 - x2)); _local13 = 1 + ((_local4 * _local4) / (_local1 * _local1)); _local25 = (_local12 / _local1) + x0; _local8 = (-2 * y0) + (((2 * _local4) / _local1) * _local25); _local19 = ((y0 * y0) + (_local25 * _local25)) - R2; _local17 = (_local8 * _local8) - ((4 * _local13) * _local19); if (_local17 >= 0) { _local18 = Math.sqrt(_local17); _local10 = ((-_local8) + _local18) / (2 * _local13); _local16 = (_local10 - y1) / _local1; if ((_local16 >= -0.05) && (_local16 <= 1.05)) { _local9 = (-((_local4 * _local10) + _local12)) / _local1; _local14 = ((_local9 - x1) * (_local9 - x1)) + ((_local10 - y1) * (_local10 - y1)); } _local7 = ((-_local8) - _local18) / (2 * _local13); _local15 = (_local7 - y1) / _local1; if ((_local15 >= -0.05) && (_local15 <= 1.05)) { _local6 = (-((_local4 * _local7) + _local12)) / _local1; _local11 = ((_local6 - x1) * (_local6 - x1)) + ((_local7 - y1) * (_local7 - y1)); } if (_local14 < _local11) { (iP.x = _local9); (iP.y = _local10); (iP.R = Math.sqrt(_local14)); } else { if (_local11 == 500000) { return(false); } (iP.x = _local6); (iP.y = _local7); (iP.R = Math.sqrt(_local11)); } return(true); } } else { _local4 = y1 - y2; _local1 = x2 - x1; _local12 = (y1 * (x1 - x2)) - (x1 * (y1 - y2)); _local13 = 1 + ((_local4 * _local4) / (_local1 * _local1)); _local24 = (_local12 / _local1) + y0; _local8 = (-2 * x0) + (((2 * _local4) / _local1) * _local24); _local19 = ((x0 * x0) + (_local24 * _local24)) - R2; _local17 = (_local8 * _local8) - ((4 * _local13) * _local19); if (_local17 >= 0) { _local18 = Math.sqrt(_local17); _local9 = ((-_local8) + _local18) / (2 * _local13); _local16 = (_local9 - x1) / _local1; if ((_local16 >= -0.05) && (_local16 <= 1.05)) { _local10 = (-((_local4 * _local9) + _local12)) / _local1; _local14 = ((_local9 - x1) * (_local9 - x1)) + ((_local10 - y1) * (_local10 - y1)); } _local6 = ((-_local8) - _local18) / (2 * _local13); _local15 = (_local6 - x1) / _local1; if ((_local15 >= -0.05) && (_local15 <= 1.05)) { _local7 = (-((_local4 * _local6) + _local12)) / _local1; _local11 = ((_local6 - x1) * (_local6 - x1)) + ((_local7 - y1) * (_local7 - y1)); } if (_local14 < _local11) { (iP.x = _local9); (iP.y = _local10); (iP.R = Math.sqrt(_local14)); } else { if (_local11 == 500000) { return(false); } (iP.x = _local6); (iP.y = _local7); (iP.R = Math.sqrt(_local11)); } return(true); } } return(false); } function getIntersection(x11, y11, x12, y12, x21, y21, x22, y22, iP) { var _local4; var _local9; var _local8; var _local7; var _local3; _local4 = ((y12 - y11) * (x21 - x22)) - ((y21 - y22) * (x12 - x11)); if (Math.abs(_local4) > 1E-5) { _local9 = ((y12 - y11) * (x21 - x11)) - ((y21 - y11) * (x12 - x11)); _local8 = ((y21 - y11) * (x21 - x22)) - ((y21 - y22) * (x21 - x11)); _local7 = _local9 / _local4; _local3 = _local8 / _local4; if ((((_local7 <= 1) && (_local7 >= 0)) && (_local3 >= 0)) && (_local3 <= 1)) { (iP.x = x11 + ((x12 - x11) * _local3)); (iP.y = y11 + ((y12 - y11) * _local3)); return(true); } } return(false); } function canBallsIntersection(ball, ball2) { var _local4; var _local3; if ((ball.state != 1) && (ball2.state != 1)) { return(false); } if ((ball.state == 1) && (ball2.state == 1)) { _local4 = ball2._x - ball._x; _local3 = ball2._y - ball._y; return((((ball.vx * _local4) + (ball.vy * _local3)) > 0) || ((((-ball2.vx) * _local4) - (ball2.vy * _local3)) > 0)); } if (ball.state == 1) { _local4 = ball2._x - ball._x; _local3 = ball2._y - ball._y; return(((ball.vx * _local4) + (ball.vy * _local3)) > 0); } _local4 = ball._x - ball2._x; _local3 = ball._y - ball2._y; return(((ball2.vx * _local4) + (ball2.vy * _local3)) > 0); } function twoBallsCollision(ball, ball2, nx, ny, curStep, SCount) { var _local19; if (ball2.state != 1) { var _local10 = {x:0, y:0, R:0}; getCircleIntersection(ball.sX, ball.sY, ball.sX + (ball.vx * 500), ball.sY + (ball.vy * 500), ball2._x, ball2._y, ballTwoR, ballTwoR2, _local10); ball._x = _local10.x; ball._y = _local10.y; nx = ball2._x - _local10.x; ny = ball2._y - _local10.y; var _local18 = Math.sqrt((nx * nx) + (ny * ny)); nx = nx / _local18; ny = ny / _local18; } var _local9 = ball.vx * ball.speed; var _local8 = ball.vy * ball.speed; var _local7 = 0; var _local6 = 0; var _local11; var _local16; var _local12; var _local17; var _local15 = Math.atan2(ny, nx); var _local5 = Math.cos(_local15); var _local4 = Math.sin(_local15); var _local20; if (ball2.state == 1) { _local7 = ball2.vx * ball2.speed; _local6 = ball2.vy * ball2.speed; } _local11 = (_local9 * _local5) - (_local8 * (-_local4)); _local16 = (_local9 * (-_local4)) + (_local8 * _local5); _local12 = (_local7 * _local5) - (_local6 * (-_local4)); _local17 = (_local7 * (-_local4)) + (_local6 * _local5); _local19 = (Math.abs(_local11 + _local12) / 2) / ballMaxSpeed; _local20 = _local11; _local11 = _local12; _local12 = _local20; _local9 = (_local11 * _local5) - (_local16 * _local4); _local8 = (_local11 * _local4) + (_local16 * _local5); _local7 = (_local12 * _local5) - (_local17 * _local4); _local6 = (_local12 * _local4) + (_local17 * _local5); ball.speed = Math.sqrt((_local9 * _local9) + (_local8 * _local8)); if (ball.speed < 0.001) { ball.vx = 0; ball.vy = 0; ball.ostL = 0; ball.state = 0; } else { ball.vx = _local9 / ball.speed; ball.vy = _local8 / ball.speed; } ball2.speed = Math.sqrt((_local7 * _local7) + (_local6 * _local6)); if (ball2.speed < 0.001) { ball2.vx = 0; ball2.vy = 0; ball2.ostL = 0; ball.state = 0; } else { ball2.vx = _local7 / ball2.speed; ball2.vy = _local6 / ball2.speed; } ball.curStep = ball.speed / SCount; ball.ostL = ball.speed - (ball.curStep * curStep); ball2.curStep = ball2.speed / SCount; ball2.ostL = ball2.speed - (ball2.curStep * curStep); if ((ball.ostL <= 0) || (ball2.ostL <= 0)) { ball.ostL = (ball2.ostL = 0); } ball.saveCoords(); ball2.saveCoords(); ball2.state = 1; return(_local19); } function getFieldIntersection(line_array, x11, y11, x12, y12, iP) { var _local9 = 500000 /* 0x07A120 */; var _local7; var _local6; var _local8; var _local5; var _local2; var _local12; var _local3 = {x:0, y:0}; var _local21 = x12 - x11; var _local20 = y12 - y11; var _local18 = Math.min(x11, x12); var _local15 = Math.max(x11, x12); var _local19 = Math.min(y11, y12); var _local17 = Math.max(y11, y12); var _local16 = line_array.length; _local5 = 0; while (_local5 < _local16) { _local2 = line_array[_local5]; if ((((_local18 <= _local2.xMax) && (_local15 >= _local2.xMin)) && (_local19 <= _local2.yMax)) && (_local17 >= _local2.yMin)) { _local12 = (_local2.nx * _local21) + (_local2.ny * _local20); if ((_local12 < 0) && (getIntersection(x11, y11, x12, y12, _local2.x1, _local2.y1, _local2.x2, _local2.y2, _local3))) { _local7 = _local3.x - x11; _local6 = _local3.y - y11; _local8 = (_local7 * _local7) + (_local6 * _local6); if (_local8 < _local9) { _local9 = _local8; iP.x = _local3.x; iP.y = _local3.y; iP.nx = _local2.nx; iP.ny = _local2.ny; } } } _local5++; } iP.R = Math.sqrt(_local9); return(_local9 < 500000); } function getFieldIntersection2(line_array, x11, y11, x12, y12) { var _local3; var _local2; var _local4; var _local9 = {x:0, y:0}; var _local16 = x12 - x11; var _local15 = y12 - y11; var _local13 = Math.min(x11, x12); var _local10 = Math.max(x11, x12); var _local14 = Math.min(y11, y12); var _local12 = Math.max(y11, y12); var _local11 = line_array.length; _local3 = 0; while (_local3 < _local11) { _local2 = line_array[_local3]; if ((((_local13 <= _local2.xMax) && (_local10 >= _local2.xMin)) && (_local14 <= _local2.yMax)) && (_local12 >= _local2.yMin)) { _local4 = (_local2.nx * _local16) + (_local2.ny * _local15); if ((_local4 < 0) && (getIntersection(x11, y11, x12, y12, _local2.x1, _local2.y1, _local2.x2, _local2.y2, _local9))) { return(true); } } _local3++; } return(false); } function calcNormal(line) { var _local2; var _local3; line.nx = line.x2 - line.x1; line.ny = line.y2 - line.y1; _local2 = Math.sqrt((line.nx * line.nx) + (line.ny * line.ny)); line.nx = line.nx / _local2; line.ny = line.ny / _local2; _local3 = line.nx; line.nx = -line.ny; line.ny = _local3; } function getLineIntersection(x11, y11, x12, y12, x21, y21, x22, y22, res) { var _local1; var _local7; var _local2; var _local6; if ((Math.abs(x11 - x12) < 0.0001) && (Math.abs(x21 - x22) < 0.0001)) { return(false); } if (Math.abs(x11 - x12) < 0.0001) { _local2 = (y21 - y22) / (x21 - x22); _local6 = y21 - (x21 * _local2); res.x = x11; res.y = (_local2 * x11) + _local6; return(true); } if (Math.abs(x21 - x22) < 0.0001) { _local1 = (y11 - y12) / (x11 - x12); _local7 = y11 - (x11 * _local1); (res.x = x21); res.y = (_local1 * x21) + _local7; return(true); } _local1 = (y11 - y12) / (x11 - x12); _local7 = y11 - (x11 * _local1); _local2 = (y21 - y22) / (x21 - x22); _local6 = y21 - (x21 * _local2); if (Math.abs(_local2 - _local1) < 0.0001) { return(false); } res.x = (_local7 - _local6) / (_local2 - _local1); res.y = ((_local2 * _local7) - (_local1 * _local6)) / (_local2 - _local1); return(true); } function pointOnLine(x, y, x1, y1, x2, y2) { if (Math.abs(x1 - x2) < 2) { return(((y1 - y) * (y - y2)) > 0); } return(((x1 - x) * (x - x2)) > 0); } }Symbol 278 MovieClip [__Packages.CBall_1] Frame 0class CBall_1 extends CBall { var myV, myType, rK, frame90Count, gotoAndStop, _rotation; function CBall_1 () { super(); myV = new CVector3D(0, 0, 1); myType = 1; } function setRandomRotate() { myV.rotateX((Math.PI * Math.random()) / 2); myV.rotateY((Math.PI * Math.random()) / 2); myV.rotateZ((Math.PI * Math.random()) / 2); updateRotate(); } function doStep(dx, dy, dr) { if ((Math.abs(dx) < 0.01) && (Math.abs(dy) < 0.01)) { return(undefined); } var _local2 = Math.atan2(dy, dx); var _local3 = ((dr * rK) / 180) * Math.PI; myV.rotateZ(-_local2); myV.rotateY(_local3); myV.rotateZ(_local2); } function updateRotate() { var _local4; var _local3; var _local2; if (myV.z > 0) { _local2 = (Math.acos(myV.z) * 180) / Math.PI; _local4 = 1 + Math.round((_local2 / 90) * (frame90Count - 1)); _local3 = (Math.atan2(myV.y, myV.x) * 180) / Math.PI; } else { _local2 = (Math.acos(-myV.z) * 180) / Math.PI; _local4 = 1 + Math.round((_local2 / 90) * (frame90Count - 1)); _local3 = ((Math.atan2(myV.y, myV.x) * 180) / Math.PI) + 180; } gotoAndStop(_local4); _rotation = _local3; } }Symbol 279 MovieClip [__Packages.CVector3D] Frame 0class CVector3D { var x, y, z; function CVector3D (x, y, z) { this.x = x; this.y = y; this.z = z; } function rotateX(ugol) { var _local4; var _local3; _local4 = (y * Math.cos(ugol)) - (z * Math.sin(ugol)); _local3 = (y * Math.sin(ugol)) + (z * Math.cos(ugol)); y = _local4; z = _local3; } function rotateY(ugol) { var _local4; var _local3; _local4 = (x * Math.cos(ugol)) + (z * Math.sin(ugol)); _local3 = ((-x) * Math.sin(ugol)) + (z * Math.cos(ugol)); x = _local4; z = _local3; } function rotateZ(ugol) { var _local4; var _local3; _local4 = (x * Math.cos(ugol)) - (y * Math.sin(ugol)); _local3 = (x * Math.sin(ugol)) + (y * Math.cos(ugol)); x = _local4; y = _local3; } function multVector(vec) { var _local2 = {x:0, y:0, z:0}; _local2.x = (y * vec.z) - (z * vec.y); _local2.y = (x * vec.z) - (z * vec.x); _local2.z = (x * vec.y) - (y * vec.x); return(_local2); } }Symbol 280 MovieClip [__Packages.CBall_2] Frame 0class CBall_2 extends CBall { var nP, myType, rK, frame90Count, gotoAndStop, _rotation; function CBall_2 () { super(); nP = new CVector3D(1, 0, 0); myType = 2; } function setRandomRotate() { nP.rotateX((Math.PI * Math.random()) / 2); nP.rotateY((Math.PI * Math.random()) / 2); nP.rotateZ((Math.PI * Math.random()) / 2); updateRotate(); } function doStep(dx, dy, dr) { if ((Math.abs(dx) < 0.01) && (Math.abs(dy) < 0.01)) { return(undefined); } var _local2 = Math.atan2(dy, dx); var _local3 = ((dr * rK) / 180) * Math.PI; nP.rotateZ(-_local2); nP.rotateY(_local3); nP.rotateZ(_local2); } function updateRotate() { var _local2; var _local4; var _local3; if (nP.z < 0) { _local2 = 90 - ((Math.acos(-nP.z) * 180) / Math.PI); _local4 = 1 + Math.round((_local2 / 90) * (frame90Count - 1)); _local3 = (Math.atan2(nP.y, nP.x) * 180) / Math.PI; } else { _local2 = 90 - ((Math.acos(nP.z) * 180) / Math.PI); _local4 = 1 + Math.round((_local2 / 90) * (frame90Count - 1)); _local3 = ((Math.atan2(nP.y, nP.x) * 180) / Math.PI) + 180; } gotoAndStop(_local4); _rotation = _local3; } }Symbol 281 MovieClip [__Packages.CIndicator] Frame 0class CIndicator extends MovieClip { var mc, mc_limit, mc_mask; function CIndicator () { super(); setValue(0.9); mc.onPress = function () { this.startDrag(false, 0, this._parent.mc_limit._y - this._parent.mc_limit._height, 0, this._parent.mc_limit._y); this.onEnterFrame = function () { this._parent.updateMask(); }; this._parent.updateMask(); }; mc.onRelease = (mc.onReleaseOutside = function () { this._parent.dragFlag = false; this.stopDrag(); this._parent.updateMask(); this.onEnterFrame = undefined; }); } function setValue(val) { mc._y = mc_limit._y - (val * mc_limit._height); updateMask(); } function getValue() { return((((mc_limit._y - mc._y) / mc_limit._height) * (1 - minVal)) + minVal); } function updateMask() { mc_mask._y = mc._y - 4; } function disable() { mc.enabled = false; } function enable() { mc.enabled = true; } var minVal = 0.1; }Symbol 29 Buttonon (press) { new_game_pressed(); }Symbol 34 Buttonon (press) { more_pressed(); }Symbol 39 Buttonon (press) { how_to_play_pressed(); }Symbol 41 Buttonon (press) { this._parent.soundOff(zastFlag); this.gotoAndStop(2); }Symbol 43 Buttonon (press) { this._parent.soundOn(zastFlag); this.gotoAndStop(1); }Symbol 44 MovieClip Frame 1this.stop();Symbol 46 MovieClip Frame 1stop();Symbol 51 Buttonon (press) { right_pressed(); }Symbol 56 Buttonon (press) { left_pressed(); }Symbol 61 Buttonon (press) { back_pressed(); }Symbol 68 MovieClip Frame 1this.stop();Symbol 125 MovieClip [lib_ballMain] Frame 1#initclip 25 Object.registerClass("lib_ballMain", CBall); #endinitclipSymbol 134 MovieClip [lib_ball2_5] Frame 1#initclip 9 Object.registerClass("lib_ball2_5", CBall_1); #endinitclipSymbol 141 MovieClip [lib_ball2_3] Frame 1#initclip 10 Object.registerClass("lib_ball2_3", CBall_1); #endinitclipSymbol 148 MovieClip [lib_ball2_8] Frame 1#initclip 11 Object.registerClass("lib_ball2_8", CBall_1); #endinitclipSymbol 155 MovieClip [lib_ball2_4] Frame 1#initclip 12 Object.registerClass("lib_ball2_4", CBall_1); #endinitclipSymbol 162 MovieClip [lib_ball2_6] Frame 1#initclip 13 Object.registerClass("lib_ball2_6", CBall_1); #endinitclipSymbol 167 MovieClip [lib_ball1_3] Frame 1#initclip 14 Object.registerClass("lib_ball1_3", CBall_2); #endinitclipSymbol 171 MovieClip [lib_ball1_7] Frame 1#initclip 15 Object.registerClass("lib_ball1_7", CBall_2); #endinitclipSymbol 174 MovieClip [lib_ball1_6] Frame 1#initclip 16 Object.registerClass("lib_ball1_6", CBall_2); #endinitclipSymbol 181 MovieClip [lib_ball2_7] Frame 1#initclip 17 Object.registerClass("lib_ball2_7", CBall_1); #endinitclipSymbol 185 MovieClip [lib_ball1_4] Frame 1#initclip 18 Object.registerClass("lib_ball1_4", CBall_2); #endinitclipSymbol 189 MovieClip [lib_ball1_2] Frame 1#initclip 19 Object.registerClass("lib_ball1_2", CBall_2); #endinitclipSymbol 193 MovieClip [lib_ball2_2] Frame 1#initclip 20 Object.registerClass("lib_ball2_2", CBall_1); #endinitclipSymbol 196 MovieClip [lib_ball1_5] Frame 1#initclip 21 Object.registerClass("lib_ball1_5", CBall_2); #endinitclipSymbol 202 MovieClip [lib_ball2] Frame 1#initclip 22 Object.registerClass("lib_ball2", CBall_1); #endinitclipSymbol 205 MovieClip [lib_ball1_1] Frame 1#initclip 23 Object.registerClass("lib_ball1_1", CBall_2); #endinitclipSymbol 210 Buttonon (press) { buttonPressed(); }Symbol 219 MovieClip [lib_indicator] Frame 1#initclip 24 Object.registerClass("lib_indicator", CIndicator); #endinitclipSymbol 271 MovieClip Frame 1this.stop();
Library Items
Symbol 1 Graphic | Used by:2 84 87 90 93 96 99 102 105 108 111 114 117 120 123 | |
Symbol 2 MovieClip [lib_shadow] | Uses:1 | |
Symbol 274 MovieClip [__Packages.CBall] | ||
Symbol 275 MovieClip [__Packages.CBounds2] | ||
Symbol 276 MovieClip [__Packages.CBounds] | ||
Symbol 277 MovieClip [__Packages.CIntersection] | ||
Symbol 278 MovieClip [__Packages.CBall_1] | ||
Symbol 279 MovieClip [__Packages.CVector3D] | ||
Symbol 280 MovieClip [__Packages.CBall_2] | ||
Symbol 281 MovieClip [__Packages.CIndicator] | ||
Symbol 3 Graphic | Used by:Timeline | |
Symbol 4 Bitmap | Used by:5 | |
Symbol 5 Graphic | Uses:4 | Used by:6 |
Symbol 6 MovieClip | Uses:5 | Used by:Timeline |
Symbol 7 Bitmap | Used by:8 | |
Symbol 8 Graphic | Uses:7 | Used by:Timeline |
Symbol 9 Font | Used by:10 | |
Symbol 10 EditableText | Uses:9 | Used by:Timeline |
Symbol 11 Bitmap | Used by:12 | |
Symbol 12 Graphic | Uses:11 | Used by:13 |
Symbol 13 MovieClip | Uses:12 | Used by:Timeline |
Symbol 14 Graphic | Used by:15 41 43 51 56 | |
Symbol 15 MovieClip | Uses:14 | Used by:16 |
Symbol 16 MovieClip | Uses:15 | Used by:Timeline |
Symbol 17 Sound [lib_snd_menu] | Used by:21 29 34 39 41 43 51 56 61 210 | |
Symbol 18 Sound [lib_snd_cue] | Used by:21 | |
Symbol 19 Sound [lib_snd_lusa] | Used by:21 | |
Symbol 20 Sound [lib_snd_ball] | Used by:21 | |
Symbol 21 MovieClip | Uses:17 18 19 20 | Used by:Timeline |
Symbol 22 Bitmap | Used by:23 | |
Symbol 23 Graphic | Uses:22 | Used by:24 |
Symbol 24 MovieClip | Uses:23 | Used by:Timeline |
Symbol 25 Bitmap | Used by:26 | |
Symbol 26 Graphic | Uses:25 | Used by:29 |
Symbol 27 Bitmap | Used by:28 | |
Symbol 28 Graphic | Uses:27 | Used by:29 |
Symbol 29 Button | Uses:26 28 17 | Used by:Timeline |
Symbol 30 Bitmap | Used by:31 | |
Symbol 31 Graphic | Uses:30 | Used by:34 |
Symbol 32 Bitmap | Used by:33 | |
Symbol 33 Graphic | Uses:32 | Used by:34 |
Symbol 34 Button | Uses:31 33 17 | Used by:Timeline |
Symbol 35 Bitmap | Used by:36 | |
Symbol 36 Graphic | Uses:35 | Used by:39 |
Symbol 37 Bitmap | Used by:38 | |
Symbol 38 Graphic | Uses:37 | Used by:39 |
Symbol 39 Button | Uses:36 38 17 | Used by:Timeline |
Symbol 40 Graphic | Used by:41 | |
Symbol 41 Button | Uses:40 14 17 | Used by:44 |
Symbol 42 Graphic | Used by:43 | |
Symbol 43 Button | Uses:42 14 17 | Used by:44 |
Symbol 44 MovieClip | Uses:41 43 | Used by:Timeline |
Symbol 45 Sound | Used by:46 | |
Symbol 46 MovieClip | Uses:45 | Used by:Timeline |
Symbol 47 Bitmap | Used by:48 | |
Symbol 48 Graphic | Uses:47 | Used by:51 |
Symbol 49 Bitmap | Used by:50 | |
Symbol 50 Graphic | Uses:49 | Used by:51 |
Symbol 51 Button | Uses:48 50 14 17 | Used by:Timeline |
Symbol 52 Bitmap | Used by:53 | |
Symbol 53 Graphic | Uses:52 | Used by:56 |
Symbol 54 Bitmap | Used by:55 | |
Symbol 55 Graphic | Uses:54 | Used by:56 |
Symbol 56 Button | Uses:53 55 14 17 | Used by:Timeline |
Symbol 57 Bitmap | Used by:58 | |
Symbol 58 Graphic | Uses:57 | Used by:61 |
Symbol 59 Bitmap | Used by:60 | |
Symbol 60 Graphic | Uses:59 | Used by:61 |
Symbol 61 Button | Uses:58 60 17 | Used by:Timeline |
Symbol 62 Font | Used by:63 64 65 66 67 220 223 226 238 243 246 249 253 256 259 262 265 268 | |
Symbol 63 Text | Uses:62 | Used by:68 |
Symbol 64 Text | Uses:62 | Used by:68 |
Symbol 65 Text | Uses:62 | Used by:68 |
Symbol 66 Text | Uses:62 | Used by:68 |
Symbol 67 Text | Uses:62 | Used by:68 |
Symbol 68 MovieClip | Uses:63 64 65 66 67 | Used by:Timeline |
Symbol 69 Bitmap | Used by:70 | |
Symbol 70 Graphic | Uses:69 | Used by:Timeline |
Symbol 71 MovieClip | Used by:Timeline | |
Symbol 72 Graphic | Used by:73 74 | |
Symbol 73 MovieClip | Uses:72 | Used by:Timeline |
Symbol 74 MovieClip | Uses:72 | Used by:Timeline |
Symbol 75 Graphic | Used by:Timeline | |
Symbol 76 Bitmap | Used by:77 | |
Symbol 77 Graphic | Uses:76 | Used by:78 |
Symbol 78 MovieClip | Uses:77 | Used by:Timeline |
Symbol 79 Bitmap | Used by:80 | |
Symbol 80 Graphic | Uses:79 | Used by:81 |
Symbol 81 MovieClip | Uses:80 | Used by:Timeline |
Symbol 82 Bitmap | Used by:83 | |
Symbol 83 Graphic | Uses:82 | Used by:84 |
Symbol 84 MovieClip | Uses:1 83 | Used by:Timeline |
Symbol 85 Bitmap | Used by:86 | |
Symbol 86 Graphic | Uses:85 | Used by:87 |
Symbol 87 MovieClip | Uses:1 86 | Used by:Timeline |
Symbol 88 Bitmap | Used by:89 | |
Symbol 89 Graphic | Uses:88 | Used by:90 |
Symbol 90 MovieClip | Uses:1 89 | Used by:Timeline |
Symbol 91 Bitmap | Used by:92 | |
Symbol 92 Graphic | Uses:91 | Used by:93 |
Symbol 93 MovieClip | Uses:1 92 | Used by:Timeline |
Symbol 94 Bitmap | Used by:95 | |
Symbol 95 Graphic | Uses:94 | Used by:96 |
Symbol 96 MovieClip | Uses:1 95 | Used by:Timeline |
Symbol 97 Bitmap | Used by:98 | |
Symbol 98 Graphic | Uses:97 | Used by:99 |
Symbol 99 MovieClip | Uses:1 98 | Used by:Timeline |
Symbol 100 Bitmap | Used by:101 | |
Symbol 101 Graphic | Uses:100 | Used by:102 |
Symbol 102 MovieClip | Uses:1 101 | Used by:Timeline |
Symbol 103 Bitmap | Used by:104 | |
Symbol 104 Graphic | Uses:103 | Used by:105 |
Symbol 105 MovieClip | Uses:1 104 | Used by:Timeline |
Symbol 106 Bitmap | Used by:107 | |
Symbol 107 Graphic | Uses:106 | Used by:108 |
Symbol 108 MovieClip | Uses:1 107 | Used by:Timeline |
Symbol 109 Bitmap | Used by:110 | |
Symbol 110 Graphic | Uses:109 | Used by:111 |
Symbol 111 MovieClip | Uses:1 110 | Used by:Timeline |
Symbol 112 Bitmap | Used by:113 | |
Symbol 113 Graphic | Uses:112 | Used by:114 |
Symbol 114 MovieClip | Uses:1 113 | Used by:Timeline |
Symbol 115 Bitmap | Used by:116 | |
Symbol 116 Graphic | Uses:115 | Used by:117 |
Symbol 117 MovieClip | Uses:1 116 | Used by:Timeline |
Symbol 118 Bitmap | Used by:119 | |
Symbol 119 Graphic | Uses:118 | Used by:120 |
Symbol 120 MovieClip | Uses:1 119 | Used by:Timeline |
Symbol 121 Bitmap | Used by:122 | |
Symbol 122 Graphic | Uses:121 | Used by:123 |
Symbol 123 MovieClip | Uses:1 122 | Used by:Timeline |
Symbol 124 Graphic | Used by:125 | |
Symbol 125 MovieClip [lib_ballMain] | Uses:124 | Used by:Timeline |
Symbol 126 Graphic | Used by:134 141 148 155 162 167 171 174 181 185 189 193 196 202 205 | |
Symbol 127 Graphic | Used by:134 196 | |
Symbol 128 Graphic | Used by:134 | |
Symbol 129 Graphic | Used by:134 | |
Symbol 130 Graphic | Used by:134 141 148 155 162 167 171 174 181 185 189 193 196 202 205 | |
Symbol 131 Graphic | Used by:134 | |
Symbol 132 Graphic | Used by:134 | |
Symbol 133 Graphic | Used by:134 | |
Symbol 134 MovieClip [lib_ball2_5] | Uses:126 127 128 129 130 131 132 133 | Used by:Timeline |
Symbol 135 Graphic | Used by:141 | |
Symbol 136 Graphic | Used by:141 | |
Symbol 137 Graphic | Used by:141 | |
Symbol 138 Graphic | Used by:141 | |
Symbol 139 Graphic | Used by:141 | |
Symbol 140 Graphic | Used by:141 | |
Symbol 141 MovieClip [lib_ball2_3] | Uses:126 135 136 137 130 138 139 140 | Used by:Timeline |
Symbol 142 Graphic | Used by:148 | |
Symbol 143 Graphic | Used by:148 | |
Symbol 144 Graphic | Used by:148 | |
Symbol 145 Graphic | Used by:148 | |
Symbol 146 Graphic | Used by:148 | |
Symbol 147 Graphic | Used by:148 | |
Symbol 148 MovieClip [lib_ball2_8] | Uses:126 142 143 144 130 145 146 147 | Used by:Timeline |
Symbol 149 Graphic | Used by:155 | |
Symbol 150 Graphic | Used by:155 | |
Symbol 151 Graphic | Used by:155 | |
Symbol 152 Graphic | Used by:155 | |
Symbol 153 Graphic | Used by:155 | |
Symbol 154 Graphic | Used by:155 | |
Symbol 155 MovieClip [lib_ball2_4] | Uses:126 149 150 151 130 152 153 154 | Used by:Timeline |
Symbol 156 Graphic | Used by:162 174 | |
Symbol 157 Graphic | Used by:162 | |
Symbol 158 Graphic | Used by:162 | |
Symbol 159 Graphic | Used by:162 | |
Symbol 160 Graphic | Used by:162 | |
Symbol 161 Graphic | Used by:162 | |
Symbol 162 MovieClip [lib_ball2_6] | Uses:126 156 157 158 130 159 160 161 | Used by:Timeline |
Symbol 163 Graphic | Used by:167 | |
Symbol 164 Graphic | Used by:167 171 174 185 189 196 205 | |
Symbol 165 Graphic | Used by:167 | |
Symbol 166 Graphic | Used by:167 | |
Symbol 167 MovieClip [lib_ball1_3] | Uses:126 163 164 165 130 166 | Used by:Timeline |
Symbol 168 Graphic | Used by:171 | |
Symbol 169 Graphic | Used by:171 | |
Symbol 170 Graphic | Used by:171 | |
Symbol 171 MovieClip [lib_ball1_7] | Uses:126 168 164 169 130 170 | Used by:Timeline |
Symbol 172 Graphic | Used by:174 | |
Symbol 173 Graphic | Used by:174 | |
Symbol 174 MovieClip [lib_ball1_6] | Uses:126 156 164 172 130 173 | Used by:Timeline |
Symbol 175 Graphic | Used by:181 | |
Symbol 176 Graphic | Used by:181 | |
Symbol 177 Graphic | Used by:181 | |
Symbol 178 Graphic | Used by:181 | |
Symbol 179 Graphic | Used by:181 | |
Symbol 180 Graphic | Used by:181 | |
Symbol 181 MovieClip [lib_ball2_7] | Uses:126 175 176 177 130 178 179 180 | Used by:Timeline |
Symbol 182 Graphic | Used by:185 | |
Symbol 183 Graphic | Used by:185 | |
Symbol 184 Graphic | Used by:185 | |
Symbol 185 MovieClip [lib_ball1_4] | Uses:126 182 164 183 130 184 | Used by:Timeline |
Symbol 186 Graphic | Used by:189 193 | |
Symbol 187 Graphic | Used by:189 | |
Symbol 188 Graphic | Used by:189 | |
Symbol 189 MovieClip [lib_ball1_2] | Uses:126 186 164 187 130 188 | Used by:Timeline |
Symbol 190 Graphic | Used by:193 | |
Symbol 191 Graphic | Used by:193 | |
Symbol 192 Graphic | Used by:193 | |
Symbol 193 MovieClip [lib_ball2_2] | Uses:126 186 190 130 191 192 | Used by:Timeline |
Symbol 194 Graphic | Used by:196 | |
Symbol 195 Graphic | Used by:196 | |
Symbol 196 MovieClip [lib_ball1_5] | Uses:126 127 164 194 130 195 | Used by:Timeline |
Symbol 197 Graphic | Used by:202 | |
Symbol 198 Graphic | Used by:202 | |
Symbol 199 Graphic | Used by:202 | |
Symbol 200 Graphic | Used by:202 | |
Symbol 201 Graphic | Used by:202 | |
Symbol 202 MovieClip [lib_ball2] | Uses:126 197 198 130 199 200 201 | Used by:Timeline |
Symbol 203 Graphic | Used by:205 | |
Symbol 204 Graphic | Used by:205 | |
Symbol 205 MovieClip [lib_ball1_1] | Uses:126 164 203 130 204 | Used by:Timeline |
Symbol 206 Graphic | Used by:Timeline | |
Symbol 207 Graphic | Used by:210 211 | |
Symbol 208 Bitmap | Used by:209 | |
Symbol 209 Graphic | Uses:208 | Used by:210 |
Symbol 210 Button | Uses:207 209 17 | Used by:Timeline |
Symbol 211 MovieClip | Uses:207 | Used by:219 |
Symbol 212 Graphic | Used by:213 | |
Symbol 213 MovieClip | Uses:212 | Used by:219 |
Symbol 214 Bitmap | Used by:215 | |
Symbol 215 Graphic | Uses:214 | Used by:219 |
Symbol 216 Bitmap | Used by:217 | |
Symbol 217 Graphic | Uses:216 | Used by:218 |
Symbol 218 MovieClip | Uses:217 | Used by:219 |
Symbol 219 MovieClip [lib_indicator] | Uses:211 213 215 218 | Used by:Timeline |
Symbol 220 Text | Uses:62 | Used by:221 |
Symbol 221 MovieClip | Uses:220 | Used by:222 |
Symbol 222 MovieClip | Uses:221 | Used by:Timeline |
Symbol 223 Text | Uses:62 | Used by:224 |
Symbol 224 MovieClip | Uses:223 | Used by:225 |
Symbol 225 MovieClip | Uses:224 | Used by:Timeline |
Symbol 226 Text | Uses:62 | Used by:227 |
Symbol 227 MovieClip | Uses:226 | Used by:228 |
Symbol 228 MovieClip | Uses:227 | Used by:Timeline |
Symbol 229 Graphic | Used by:230 | |
Symbol 230 MovieClip | Uses:229 | Used by:Timeline |
Symbol 231 Graphic | Used by:232 | |
Symbol 232 MovieClip | Uses:231 | Used by:Timeline |
Symbol 233 Graphic | Used by:234 | |
Symbol 234 MovieClip | Uses:233 | Used by:Timeline |
Symbol 235 Graphic | Used by:236 | |
Symbol 236 MovieClip | Uses:235 | Used by:237 |
Symbol 237 MovieClip | Uses:236 | Used by:Timeline |
Symbol 238 Text | Uses:62 | Used by:239 |
Symbol 239 MovieClip | Uses:238 | Used by:240 |
Symbol 240 MovieClip | Uses:239 | Used by:271 |
Symbol 241 Graphic | Used by:242 | |
Symbol 242 MovieClip | Uses:241 | Used by:271 |
Symbol 243 Text | Uses:62 | Used by:244 |
Symbol 244 MovieClip | Uses:243 | Used by:245 |
Symbol 245 MovieClip | Uses:244 | Used by:271 |
Symbol 246 Text | Uses:62 | Used by:247 |
Symbol 247 MovieClip | Uses:246 | Used by:248 |
Symbol 248 MovieClip | Uses:247 | Used by:252 |
Symbol 249 Text | Uses:62 | Used by:250 |
Symbol 250 MovieClip | Uses:249 | Used by:251 |
Symbol 251 MovieClip | Uses:250 | Used by:252 |
Symbol 252 MovieClip | Uses:248 251 | Used by:271 |
Symbol 253 Text | Uses:62 | Used by:254 |
Symbol 254 MovieClip | Uses:253 | Used by:255 |
Symbol 255 MovieClip | Uses:254 | Used by:271 |
Symbol 256 Text | Uses:62 | Used by:257 |
Symbol 257 MovieClip | Uses:256 | Used by:258 |
Symbol 258 MovieClip | Uses:257 | Used by:271 |
Symbol 259 Text | Uses:62 | Used by:260 |
Symbol 260 MovieClip | Uses:259 | Used by:261 |
Symbol 261 MovieClip | Uses:260 | Used by:271 |
Symbol 262 Text | Uses:62 | Used by:263 |
Symbol 263 MovieClip | Uses:262 | Used by:264 |
Symbol 264 MovieClip | Uses:263 | Used by:271 |
Symbol 265 Text | Uses:62 | Used by:266 |
Symbol 266 MovieClip | Uses:265 | Used by:267 |
Symbol 267 MovieClip | Uses:266 | Used by:271 |
Symbol 268 Text | Uses:62 | Used by:269 |
Symbol 269 MovieClip | Uses:268 | Used by:270 |
Symbol 270 MovieClip | Uses:269 | Used by:271 |
Symbol 271 MovieClip | Uses:240 242 245 252 255 258 261 264 267 270 | Used by:Timeline |
Symbol 272 Graphic | Used by:273 | |
Symbol 273 MovieClip | Uses:272 | Used by:Timeline |
Instance Names
"mc_bar" | Frame 2 | Symbol 16 MovieClip |
"btn_sound" | Frame 5 | Symbol 44 MovieClip |
"mc_sloop" | Frame 5 | Symbol 46 MovieClip |
"btn_right" | Frame 6 | Symbol 51 Button |
"btn_left" | Frame 6 | Symbol 56 Button |
"mc_rules" | Frame 6 | Symbol 68 MovieClip |
"mc_shadows" | Frame 7 | Symbol 71 MovieClip |
"mc_pocket5" | Frame 7 | Symbol 73 MovieClip |
"mc_pocket4" | Frame 7 | Symbol 74 MovieClip |
"mc_pocket2" | Frame 7 | Symbol 73 MovieClip |
"mc_pocket3" | Frame 7 | Symbol 74 MovieClip |
"mc_pocket6" | Frame 7 | Symbol 74 MovieClip |
"mc_pocket1" | Frame 7 | Symbol 74 MovieClip |
"mc_p11" | Frame 7 | Symbol 71 MovieClip |
"mc_p12" | Frame 7 | Symbol 71 MovieClip |
"mc_p21" | Frame 7 | Symbol 71 MovieClip |
"mc_p22" | Frame 7 | Symbol 71 MovieClip |
"mc_p31" | Frame 7 | Symbol 71 MovieClip |
"mc_p32" | Frame 7 | Symbol 71 MovieClip |
"mc_p41" | Frame 7 | Symbol 71 MovieClip |
"mc_p42" | Frame 7 | Symbol 71 MovieClip |
"mc_p51" | Frame 7 | Symbol 71 MovieClip |
"mc_p52" | Frame 7 | Symbol 71 MovieClip |
"mc_p61" | Frame 7 | Symbol 71 MovieClip |
"mc_p62" | Frame 7 | Symbol 71 MovieClip |
"mc_p10" | Frame 7 | Symbol 71 MovieClip |
"mc_p13" | Frame 7 | Symbol 71 MovieClip |
"mc_p20" | Frame 7 | Symbol 71 MovieClip |
"mc_p23" | Frame 7 | Symbol 71 MovieClip |
"mc_p30" | Frame 7 | Symbol 71 MovieClip |
"mc_p33" | Frame 7 | Symbol 71 MovieClip |
"mc_p40" | Frame 7 | Symbol 71 MovieClip |
"mc_p43" | Frame 7 | Symbol 71 MovieClip |
"mc_p50" | Frame 7 | Symbol 71 MovieClip |
"mc_p53" | Frame 7 | Symbol 71 MovieClip |
"mc_p60" | Frame 7 | Symbol 71 MovieClip |
"mc_p63" | Frame 7 | Symbol 71 MovieClip |
"mc_goal2" | Frame 7 | Symbol 71 MovieClip |
"mc_goal3" | Frame 7 | Symbol 71 MovieClip |
"mc_goal4" | Frame 7 | Symbol 71 MovieClip |
"mc_goal5" | Frame 7 | Symbol 71 MovieClip |
"mc_goal6" | Frame 7 | Symbol 71 MovieClip |
"mc_goal1" | Frame 7 | Symbol 71 MovieClip |
"mc_lu" | Frame 7 | Symbol 71 MovieClip |
"mc_rd" | Frame 7 | Symbol 71 MovieClip |
"mc_ndp_player" | Frame 7 | Symbol 78 MovieClip |
"mc_ndp_computer" | Frame 7 | Symbol 81 MovieClip |
"pb7" | Frame 7 | Symbol 84 MovieClip |
"pb6" | Frame 7 | Symbol 87 MovieClip |
"pb5" | Frame 7 | Symbol 90 MovieClip |
"pb4" | Frame 7 | Symbol 93 MovieClip |
"pb3" | Frame 7 | Symbol 96 MovieClip |
"pb2" | Frame 7 | Symbol 99 MovieClip |
"pb1" | Frame 7 | Symbol 102 MovieClip |
"pb15" | Frame 7 | Symbol 105 MovieClip |
"pb14" | Frame 7 | Symbol 108 MovieClip |
"pb13" | Frame 7 | Symbol 111 MovieClip |
"pb12" | Frame 7 | Symbol 114 MovieClip |
"pb11" | Frame 7 | Symbol 117 MovieClip |
"pb10" | Frame 7 | Symbol 120 MovieClip |
"pb9" | Frame 7 | Symbol 123 MovieClip |
"mc_ball0" | Frame 7 | Symbol 125 MovieClip [lib_ballMain] |
"mc_ball5" | Frame 7 | Symbol 134 MovieClip [lib_ball2_5] |
"mc_ball3" | Frame 7 | Symbol 141 MovieClip [lib_ball2_3] |
"mc_ball8" | Frame 7 | Symbol 148 MovieClip [lib_ball2_8] |
"mc_ball4" | Frame 7 | Symbol 155 MovieClip [lib_ball2_4] |
"mc_ball6" | Frame 7 | Symbol 162 MovieClip [lib_ball2_6] |
"mc_ball11" | Frame 7 | Symbol 167 MovieClip [lib_ball1_3] |
"mc_ball15" | Frame 7 | Symbol 171 MovieClip [lib_ball1_7] |
"mc_ball14" | Frame 7 | Symbol 174 MovieClip [lib_ball1_6] |
"mc_ball7" | Frame 7 | Symbol 181 MovieClip [lib_ball2_7] |
"mc_ball12" | Frame 7 | Symbol 185 MovieClip [lib_ball1_4] |
"mc_ball10" | Frame 7 | Symbol 189 MovieClip [lib_ball1_2] |
"mc_ball2" | Frame 7 | Symbol 193 MovieClip [lib_ball2_2] |
"mc_ball13" | Frame 7 | Symbol 196 MovieClip [lib_ball1_5] |
"mc_ball1" | Frame 7 | Symbol 202 MovieClip [lib_ball2] |
"mc_ball9" | Frame 7 | Symbol 205 MovieClip [lib_ball1_1] |
"btn_mc" | Frame 7 | Symbol 210 Button |
"ind_mc" | Frame 7 | Symbol 219 MovieClip [lib_indicator] |
"btn_sound" | Frame 7 | Symbol 44 MovieClip |
"mc_freeShot" | Frame 7 | Symbol 228 MovieClip |
"cue1_mc" | Frame 7 | Symbol 230 MovieClip |
"cue21_mc" | Frame 7 | Symbol 232 MovieClip |
"cue22_mc" | Frame 7 | Symbol 232 MovieClip |
"cueBall_mc" | Frame 7 | Symbol 234 MovieClip |
"cue_mc" | Frame 7 | Symbol 237 MovieClip |
"mc_msg" | Frame 7 | Symbol 271 MovieClip |
"mc" | Symbol 16 MovieClip Frame 1 | Symbol 15 MovieClip |
"mc_mask" | Symbol 219 MovieClip [lib_indicator] Frame 1 | Symbol 211 MovieClip |
"mc_limit" | Symbol 219 MovieClip [lib_indicator] Frame 1 | Symbol 213 MovieClip |
"mc" | Symbol 219 MovieClip [lib_indicator] Frame 1 | Symbol 218 MovieClip |
"mc_who" | Symbol 271 MovieClip Frame 2 | Symbol 252 MovieClip |
Special Tags
Protect (24) | Timeline Frame 1 | 0 bytes "" |
ExportAssets (56) | Timeline Frame 1 | Symbol 2 as "lib_shadow" |
ExportAssets (56) | Timeline Frame 1 | Symbol 274 as "__Packages.CBall" |
ExportAssets (56) | Timeline Frame 1 | Symbol 275 as "__Packages.CBounds2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 276 as "__Packages.CBounds" |
ExportAssets (56) | Timeline Frame 1 | Symbol 277 as "__Packages.CIntersection" |
ExportAssets (56) | Timeline Frame 1 | Symbol 278 as "__Packages.CBall_1" |
ExportAssets (56) | Timeline Frame 1 | Symbol 279 as "__Packages.CVector3D" |
ExportAssets (56) | Timeline Frame 1 | Symbol 280 as "__Packages.CBall_2" |
ExportAssets (56) | Timeline Frame 1 | Symbol 281 as "__Packages.CIndicator" |
ExportAssets (56) | Timeline Frame 4 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 4 | Symbol 18 as "lib_snd_cue" |
ExportAssets (56) | Timeline Frame 4 | Symbol 19 as "lib_snd_lusa" |
ExportAssets (56) | Timeline Frame 4 | Symbol 20 as "lib_snd_ball" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 5 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 6 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 6 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 6 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 6 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 6 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 6 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 7 | Symbol 125 as "lib_ballMain" |
ExportAssets (56) | Timeline Frame 7 | Symbol 134 as "lib_ball2_5" |
ExportAssets (56) | Timeline Frame 7 | Symbol 141 as "lib_ball2_3" |
ExportAssets (56) | Timeline Frame 7 | Symbol 148 as "lib_ball2_8" |
ExportAssets (56) | Timeline Frame 7 | Symbol 155 as "lib_ball2_4" |
ExportAssets (56) | Timeline Frame 7 | Symbol 162 as "lib_ball2_6" |
ExportAssets (56) | Timeline Frame 7 | Symbol 167 as "lib_ball1_3" |
ExportAssets (56) | Timeline Frame 7 | Symbol 171 as "lib_ball1_7" |
ExportAssets (56) | Timeline Frame 7 | Symbol 174 as "lib_ball1_6" |
ExportAssets (56) | Timeline Frame 7 | Symbol 181 as "lib_ball2_7" |
ExportAssets (56) | Timeline Frame 7 | Symbol 185 as "lib_ball1_4" |
ExportAssets (56) | Timeline Frame 7 | Symbol 189 as "lib_ball1_2" |
ExportAssets (56) | Timeline Frame 7 | Symbol 193 as "lib_ball2_2" |
ExportAssets (56) | Timeline Frame 7 | Symbol 196 as "lib_ball1_5" |
ExportAssets (56) | Timeline Frame 7 | Symbol 202 as "lib_ball2" |
ExportAssets (56) | Timeline Frame 7 | Symbol 205 as "lib_ball1_1" |
ExportAssets (56) | Timeline Frame 7 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 7 | Symbol 17 as "lib_snd_menu" |
ExportAssets (56) | Timeline Frame 7 | Symbol 219 as "lib_indicator" |
Labels
"main" | Frame 5 |
"rulez" | Frame 6 |
"start" | Frame 7 |
"st1" | Symbol 271 MovieClip Frame 1 |
"st2" | Symbol 271 MovieClip Frame 2 |
"st3" | Symbol 271 MovieClip Frame 3 |
"st4" | Symbol 271 MovieClip Frame 4 |
"st5" | Symbol 271 MovieClip Frame 5 |
"st6" | Symbol 271 MovieClip Frame 6 |
"st7" | Symbol 271 MovieClip Frame 7 |
"st8" | Symbol 271 MovieClip Frame 8 |
"st0" | Symbol 271 MovieClip Frame 10 |
Dynamic Text Variables
txtPer | Symbol 10 EditableText | "0% " |
|