home *** CD-ROM | disk | FTP | other *** search
Wrap
function init() { loadSettings(); state = stStop; unSelect(); gameDownload.url = DownloadURL; bonus_mc.points_lbl.text = bonusCost; bonus_mc.points_lbl.type = "static"; _root.globalMusicID = game.cMusic.addStream("mus_gameplay"); game.cMusic.play(_root.globalMusicID,0,999); game.cMusic.soundOff(); fmusic = !fmusic; musicOnOff(); soundColor(); if(!fshowIntro) { _root.w_pregame.intro_btn._visible = true; } else { _root.w_pregame.intro_btn._visible = false; } ball = new cBall(_root.ball_mc); beam = new cBeam(_root.lBeam,_root.rBeam); } function initGame() { level = -1; gameSpeed = startSpeed; scores = 0; bonusCount = 0; bns_power._x = -100; bns_size._x = -100; bns_points._x = -100; _root.level_lbl.text = "1.0"; _root.scores_lbl.text = "0"; if(fshowIntro) { showIntro(); } else { skipIntro(); } } function showBuilderMovie() { level++; changeBucketColor(); fmovie = true; builder_mc._visible = true; builder_mc.play(); } function initStage() { tempScores = 0; elapsed = 0; _root.level_lbl.text = Math.floor(level / 10) + 1 add "." add level % 10; fchange = false; fgot = false; fpower = false; fsize = false; fpoints = false; fcd = false; bns_power._x = -100; bns_size._x = -100; bns_points._x = -100; ball.start(gameSpeed); beam.newPos(); ball.mc._visible = true; state = stPlay; startTimer(); play(); } function changeBucketColor() { ball.mc.gotoAndStop(Math.floor(level / 10) % 5 + 1); builder_mc.bucket.gotoAndStop(Math.floor(level / 10) % 5 + 1); } function startTimer() { startTime = getTimer(); } function checkTime() { if(state != stPlay) { return undefined; } _root.elapsed = getTimer() - _root.startTime; _root.scores_lbl.text = Math.floor(_root.elapsed / 10) + scores + tempScores; if(Math.floor(_root.elapsed / 1000) % _root.countAmount == 0) { if(!fchange) { incLevel(); } fchange = true; } else { fchange = false; } if(ball.state == cBall.stPower && _root.elapsed > _root.powerTime) { fpower = false; ball.unmake(); } if(ball.state == cBall.stSize && _root.elapsed > _root.sizeTime) { fsize = false; ball.unmake(); } } function keyListen() { if(state == stPlay) { if(Key.isDown(37)) { ball.moveLeft(); } if(Key.isDown(39)) { ball.moveRight(); } } } function ready() { if(state == stStop && Key.getAscii() == 13 && fnextLevel) { trace("ready"); w_prompt._visible = false; ignoreUser = false; nextStage(); } } function pause() { if(state == stPlay) { state = stPause; if(elapsed > 1) { tempScores += Math.floor(elapsed / 10); } if(ball.state == cBall.stPower) { powerTime -= elapsed; } if(ball.state == cBall.stSize) { sizeTime -= elapsed; } playSound("snd_pause"); showPrompt("game paused",pause); } else if(state == stPause) { w_prompt._visible = false; state = stPlay; startTimer(); } } function checkPos() { if(ball.mc._y < ball.mc._height) { gameOver(); } else if(beam.leftBeam._y - ball.mc._y <= ball.mc._height / 2 + beam.leftBeam._height / 2 + 7 && beam.leftBeam._y - ball.mc._y > ball.mc._height / 2 + beam.leftBeam._height / 2 - 7) { if(beam.kind == cBeam.stSoft && ball.state == cBall.stPower) { return undefined; } if(beam.leftBeam._x > ball.mc._x - ball.halfWidth + 10 || beam.rightBeam._x < ball.mc._x + ball.halfWidth - 10) { if(!fgot || ball.state == cBall.stPower) { fgot = true; ball.dy = -1; ball.speed = level; ball.mc._y = beam.leftBeam._y - ball.mc._height / 2 - beam.leftBeam._height / 2; } } else { fgot = false; if(!ball.ffloor) { ball.dy = 1; ball.speed = ballSpeed; } } } switch(true) { case fpower: checkBonusPos(bns_power); case fsize: checkBonusPos(bns_size); case fpoints: checkBonusPos(bns_points); } } function gameOver() { if(state == stStop) { return undefined; } state = stOver; _root.countDown_mc.end(); ball.mc._visible = false; bns_points._x = -100; bns_points._y = -100; bns_power._x = -100; bns_power._y = -100; bns_size._x = -100; bns_size._y = -100; playSound("snd_gameover"); splash = _root["plump" add ball.mc._currentframe]; splash._width = ball.mc._width; splash._height = ball.mc._height; splash._x = ball.mc._x; splash._y = ball.mc._y; splash._visible = true; splash.gotoAndPlay(1); } function putBonus(bonus) { ran = Math.round(Math.random() * 1000); ran %= stageX - 50; bonus._x = 25 + ran; ran = Math.round(Math.random() * 1000); ran %= stageY - 100; bonus._y = 100 + ran; } function incLevel() { _root.level_lbl.text = Math.floor(level / 10) + 1 add "." add level % 10; if(level > 1 && level % 10 == 0) { state = stStop; ball.normSize(); showTakeBucket(); _root.level_lbl.text = Math.floor(level / 10) + 1 add ".0"; return undefined; } level++; gameSpeed++; if(fpower && ball.state != cBall.stPower) { fpower = false; _root.bns_power._x = -100; _root.bns_power._y = -100; } if(fsize && ball.state != cBall.stSize) { fsize = false; _root.bns_size._x = -100; _root.bns_size._y = -100; } if(fpoints) { fpoints = false; _root.bns_points._x = -100; _root.bns_points._y = -100; } } function checkBonusPos(bonus) { if(state == stPlay) { if(Math.abs(ball.mc._x - bonus._x) <= Math.round(ball.mc._width / 2 + bonus._width / 2) && Math.abs(ball.mc._y - bonus._y) <= Math.round(ball.mc._height / 2 + bonus._height / 2)) { bonus._x = -100; bonus._y = -100; switch(bonus) { case bns_points: addPoints(); break; case bns_power: addPower(); break; case bns_size: addSize(); } } } } function addPoints() { bonusCount++; bonus_mc._visible = true; bonus_mc.gotoAndPlay(1); playSound("snd_points"); } function addPower() { ball.makePower(); if(beam.kind == cBeam.stSoft) { ball.dy = 1; } showCountDown(); playSound("snd_power"); powerTime = elapsed + powerTimeAmount * 1000; } function addSize() { showCountDown(); ball.makeSize(); playSound("snd_size"); sizeTime = elapsed + sizeTimeAmount * 1000; } function checkPowerPos() { if(state == stPlay && ball.state == cBall.stNormal) { if(Math.abs(ball.mc._x - bns_power._x) <= Math.round(ball.mc._width / 2 + bns_power._width / 2) && Math.abs(ball.mc._y - bns_power._y) <= Math.round(ball.mc._height / 2 + bns_power._height / 2)) { bns_power._x = -100; bns_power._y = -100; } } } function checkSizePos() { if(state == stPlay && ball.state == cBall.stNormal) { if(Math.abs(ball.mc._x - bns_size._x) <= Math.round(ball.mc._width / 2 + bns_size._width / 2) && Math.abs(ball.mc._y - bns_size._y) <= Math.round(ball.mc._height / 2 + bns_size._height / 2)) { bns_size._x = -100; bns_size._y = -100; } } } function showCountDown() { _root.cdStartTime = getTimer(); _root.countDown_mc._x = stageX / 2; _root.countDown_mc._y = stageY / 2; _root.countDown_mc.gotoAndPlay(1); _root.fcd = true; } function musicOnOff() { if(!fmusic) { game.cMusic.soundOn(); } else { game.cMusic.soundOff(); } fmusic = !fmusic; musicColor(); saveSettings(); } function musicColor() { if(!fmusic) { music_btn.gotoAndStop(2); w_pregame.music_btn.gotoAndStop(2); } else { music_btn.gotoAndStop(1); w_pregame.music_btn.gotoAndStop(1); } } function soundOnOff() { fsound = !fsound; soundColor(); saveSettings(); } function soundColor() { if(!fsound) { sound_btn.gotoAndStop(2); w_pregame.sound_btn.gotoAndStop(2); } else { sound_btn.gotoAndStop(1); w_pregame.sound_btn.gotoAndStop(1); } } function playSound(snd) { if(fsound) { var _loc1_ = game.cSound.addStream(snd); game.cSound.play(_loc1_); } } function showTakeBucket() { ball.mc._y = stageY - ball.mc._height / 2 - beam.rightBeam._height; beam.leftBeam._y = stageY - beam.leftBeam._height / 2 - 2; beam.rightBeam._y = stageY - beam.rightBeam._height / 2 - 2; if(ball.mc._x > stageX / 2) { beam.leftBeam._x = ball.mc._x - stageX / 2 - holeHalfWidth; beam.rightBeam._x = ball.mc._x - stageX / 2 + holeHalfWidth; if(beam.leftBeam._x < stageX / 2 + holeHalfWidth && beam.leftBeam._x > stageX / 2 - 3 * holeHalfWidth) { beam.leftBeam._x = stageX / 2 - 5 * holeHalfWidth; beam.rightBeam._x = stageX / 2 - 3 * holeHalfWidth; } takeBucketRight._x = ball.mc._x - ball.mc._width / 2; takeBuck = takeBucketRight; } else { beam.leftBeam._x = stageX - ball.mc._x - holeHalfWidth; beam.rightBeam._x = stageX - ball.mc._x + holeHalfWidth; if(beam.leftBeam._x < stageX / 2 + holeHalfWidth && beam.leftBeam._x > stageX / 2 - 3 * holeHalfWidth) { beam.leftBeam._x = stageX / 2 + 3 * holeHalfWidth; beam.rightBeam._x = stageX / 2 + 5 * holeHalfWidth; } takeBucketLeft._x = ball.mc._x + ball.mc._width / 2; takeBuck = takeBucketLeft; } takeBuck._visible = true; takeBuck.gotoAndPlay(1); } function hideTakeBucket() { takeBuck._visible = false; ball.mc._visible = false; fnextLevel = true; showPrompt("good job! \ntake a break now.\nready?",nextStage); } function showGameOver() { state = stStop; beam.hide(); scores += Math.floor(elapsed / 10) + tempScores; _root.gameOver_plate._visible = true; _root.loadScores(); _root.bonus_mc._visible = false; _root.gameOver_plate._visible = true; if(_root.gameSpeed > _root.startSpeed) { _root.gameOver_plate.level_lbl.text = Math.floor(level / 10) + 1 add "." add (level - 1); } else { _root.gameOver_plate.level_lbl.text = "1.1"; } with(_root.gameOver_plate) { scores_lbl.text = _root.scores; bonus_lbl.text = _root.bonusCount * bonusCost; menu_btn.onPress = _root.showMenuPlate; } _root.scores += _root.bonusCount * bonusCost; _root.gameOver_plate.total_lbl.text = _root.scores; _root.musicColor(); _root.checkScores(); } function showMenuPlate() { if(!fshowIntro) { _root.w_pregame.intro_btn._visible = true; } else { _root.w_pregame.intro_btn._visible = false; } _root.gameOver_plate._visible = false; _root.w_pregame._visible = true; } function showIntro() { fmovie = true; intro._visible = true; intro.gotoAndPlay(1); intro.man.gotoAndPlay(1); } function skipIntro() { intro.man.gotoAndStop(1); intro._visible = false; showBuilderMovie(); } function nextStage() { fnextLevel = false; state = stStop; beam.hide(); ball.mc._visible = false; gameSpeed -= 7; scores += tempScores + Math.floor(_root.elapsed / 10); showBuilderMovie(); } function showPrompt(_text, fn) { function hidePrompt() { w_prompt._visible = false; ignoreUser = false; fn(); } w_prompt.txt.text = _text; w_prompt.ok_btn.onPress = hidePrompt; ignoreUser = true; w_prompt._visible = true; } function showConfirm(_text, fn) { function hideConfirm() { w_confirm._visible = false; ignoreUser = false; fn(); } w_confirm.txt.text = _text; w_confirm.ok_btn.onPress = hideConfirm; w_confirm._visible = true; } function clearHiScores() { _root.clearScores(); _root.loadScores(); _root.showScores(); } function loadSettings() { firstLoad(); _root.fsound = settings.data.sound; _root.fmusic = settings.data.music; } function saveSettings() { settings.data.sound = _root.fsound; settings.data.music = _root.fmusic; } function firstLoad() { if(settings.data.firstLoad == undefined) { _root.clearScores(); settings.data.firstLoad = 1; settings.data.sound = true; settings.data.music = true; settings.data.intro = true; } } function loadScores() { if(settings.data.firstLoad == undefined) { _root.clearScores(); settings.data.firstLoad = 1; clearScores(); } _root.hiScores = new Array(); var _loc2_ = 0; while(_loc2_ < _root.numHiScores) { _root.hiScores.push(new Array(settings.data["pname" add _loc2_],settings.data["pscores" add _loc2_])); _loc2_ = _loc2_ + 1; } } function saveScores() { var _loc2_ = 0; while(_loc2_ < _root.numHiScores) { settings.data["pname" add _loc2_] = _root.hiScores[_loc2_][0]; settings.data["pscores" add _loc2_] = _root.hiScores[_loc2_][1]; _loc2_ = _loc2_ + 1; } } function clearScores() { var _loc2_ = 0; while(_loc2_ < _root.numHiScores) { settings.data["pname" add _loc2_] = defUsers[_loc2_][0]; settings.data["pscores" add _loc2_] = defUsers[_loc2_][1]; _loc2_ = _loc2_ + 1; } } function showScores() { _root.scores_plate._visible = true; var _loc2_ = 0; while(_loc2_ < _root.numHiScores) { _root.scores_plate["pname" add _loc2_].text = _root.hiScores[_loc2_][0]; _root.scores_plate["pscores" add _loc2_].text = _root.hiScores[_loc2_][1]; _loc2_ = _loc2_ + 1; } } function checkScores() { var _loc2_ = 0; pos = -1; while(_loc2_ < _root.numHiScores) { if(_root.scores > _root.hiScores[_loc2_][1]) { pos = _loc2_; askName(pos); _loc2_ = _root.numHiScores; } _loc2_ = _loc2_ + 1; } } function askName(pos) { function endEditing() { if(_root.scores_plate["pname" add pos].type == "input" && _root.scores_plate["pname" add pos].text != "unnamed") { _root.scores_plate["pname" add pos].type = "dynamic"; saveName(_root.scores_plate["pname" add pos].text,pos); _root.scores_plate["pname" add pos].selectable = false; col.setRGB(0); } } _root.hiScores.splice(pos,0,new Array("unnamed",_root.scores)); if(_root.hiScores.length >= _root.numHiScores) { _root.hiScores.splice(_root.numHiScores,1); } showScores(); var col = new Color(_root.scores_plate["pscores" add pos]); col.setRGB(10053273); _root.scores_plate["pname" add pos].text = "unnamed"; _root.scores_plate["pname" add pos].type = "input"; _root.scores_plate["pname" add pos].selectable = true; Selection.setFocus(_root.scores_plate["pname" add pos]); Selection.setSelection(0,_root.scores_plate["pname" add pos].length); _root.scores_plate["pname" add pos].onKillFocus = endEditing; _root.scores_plate["pname" add pos].onKeyUp = function() { if(Key.getAscii() == 13) { endEditing(); } }; Key.addListener(_root.scores_plate["pname" add pos]); } function saveName(_text, pos) { _root.hiScores[pos][0] = _text; _root.showScores(); _root.saveScores(); } var holeHalfWidth = 50; var offsetX = 10; var countAmount = 5; var powerTimeAmount = 10; var sizeTimeAmount = 10; var ballSpeed = 8; var startOffset = 50; var stStop = 0; var stPause = 1; var stPlay = 2; var stOver = 3; var stNext = 4; var posX = 390; var posY = 330; var numHiScores = 10; bonusCost = 1000; startSpeed = 8; DownloadURL = "http://www.doublegames.com/downloads.html?fr=paintermadnesson"; MoreGamesURL = "http://www.doublegames.com/?fr=paintermadnesson"; var beam; var ball; var countAmount; var elapsed; var startTime; var cdStartTime; var powerTime; var sizeTime; var gameSpeed; var level; var fchange; var fgot; var fpower; var fsize; var fpoints; var fcd; var fmovie; var fmusic; var fsound = true; var fnextLevel = false; var fshowIntro = true; var state; var scores; var tempScores; var scores; var hiScores; var bonusCount; var ignoreUser = false; var pos; var stageX = Stage.width; var stageY = Stage.height; var splash; var takeBuck; var game = new com.itpremium.games.Game(); var gameDownload = new TextFormat(); var ignoreUser; var defUsers = [["Jack",25023],["Smith",24978],["Tom",23487],["Tracy",19390],["Jane",17345],["Kyle",16223],["Stane",12800],["Cole",10406],["Larry",8381],["John",7989]]; settings = SharedObject.getLocal("painter_madness_settings_v0.0"); _root.rules_plate._visible = false; _root.askName_plate._visible = false; _root.builder_mc._visible = false; _root.builder_mc.gotoAndStop(1); _root.w_prompt._visible = false; _root.w_confirm._visible = false; _root.w_confirm1._visible = false; _root.bonus_mc._visible = false; _root.bonus_mc.gotoAndStop(1); _root.plump1.gotoAndStop(1); _root.plump2.gotoAndStop(1); _root.plump3.gotoAndStop(1); _root.plump4.gotoAndStop(1); _root.plump5.gotoAndStop(1); _root.intro.gotoAndStop(1); _root.intro.man.gotoAndStop(1); _root.intro._visible = false; _root.takeBucketRight.gotoAndStop(1); _root.takeBucketRight._visible = false; _root.takeBucketLeft.gotoAndStop(1); _root.takeBucketLeft._visible = false; _root.gameOver_plate._visible = false; _root.w_end._visible = false; _root.scores_plate._visible = false; _root.w_pregame.intro_btn._visible = false; _root.snds.removeMovieClip(); game.cKeyboard.addCombination("space",_root.pause,[],"UP"); game.cKeyboard.addCombintation("enter",_root.ready,[],"UP"); var keyListener = new Object(); keyListener.onKeyUp = function() { ready(); }; Key.addListener(keyListener); var cl = new CConfigLoader("paintermadness.xml",init);