From dc96a5ac8d050159df677cedb67c963b778d31ae Mon Sep 17 00:00:00 2001 From: simon_hung Date: Mon, 6 Jun 2016 22:10:32 +0800 Subject: [PATCH] Lode Runner version 2.11a, AI_VERSION=4 (1) Modified for AI VERSION = 4 (1.1) When guard failing in hole, will drop gold before guard failing into hole totally (1.2) Shake time extension when guard in hole. NOW the runner can dig three hold for three guards and pass through them. (MUST quickly) ==> The behavior almost same as original lode runner (APPLE-II version). Modified files: LodeRunner/lodeRunner.guard.js (2) New Demo Data all ai_version = 4 modified files: lodeRunner.demoData1.js (3) Slow down play speed: //slow normal fast change from speedMode = [15, 20, 25, 30, 35]; to speedMode = [14, 18, 23, 29, 35]; Modified files: lodeRunner.main.js (4) Keep ai version don't overflow: Modified files: lodeRunner.preload.js --- image/help.png | Bin 34028 -> 18442 bytes lodeRunner.def.js | 4 +- lodeRunner.demoData1.js | 302 ++++++++++++++++++---------------------- lodeRunner.guard.js | 32 ++++- lodeRunner.main.js | 29 +++- lodeRunner.preload.js | 5 +- lodeRunner.runner.js | 7 +- 7 files changed, 199 insertions(+), 180 deletions(-) diff --git a/image/help.png b/image/help.png index a4cf9e2a22af3c6c93e4af8198decf36f63fbe98..23409960ec489d3c366087e17d14c21febae1d10 100644 GIT binary patch literal 18442 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

!% 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 rz_QzBsk-G%fpxZ{c;UbM%KuqNs?V= literal 34028 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 4, drop gold before guard failing into hole totally + if(curAiVersion >= 4 && curGuard.hasGold > 0) { + if(map[x][y-1].base == EMPTY_T) { + //drop gold above + addGold(x, y-1); + } else + decGold(); //gold disappear + curGuard.hasGold = 0; + } + //---------------------------------------------------------------------- + + } else { //fall into hole (yOffset MUST = 0) + + //---------------------------------------------------------------------- + //For AI version < 4, drop gold after guard failing into hole totally if( curGuard.hasGold > 0 ) { if(map[x][y-1].base == EMPTY_T) { //drop gold above @@ -219,6 +236,8 @@ function guardMoveStep( id, action) decGold(); //gold disappear } curGuard.hasGold = 0; + //---------------------------------------------------------------------- + if( curShape == "fallRight") newShape = "shakeRight"; else newShape = "shakeLeft"; themeSoundPlay("trap"); @@ -403,6 +422,15 @@ function initStillFrameVariable() function initGuardShakeVariable() { shakingGuardList = []; + + //------------------------------------------------------------------------- + // Shake time extension when guard in hole, + // so the runner can dig three hold for three guards and pass through them. + // The behavior almost same as original lode runner (APPLE-II version). + // 2016/06/04 + //------------------------------------------------------------------------- + if(curAiVersion <= 3) shakeTime = [ 36, 3, 3, 3, 3, 3 ]; //for AI VERSION = 3 + else shakeTime = [ 51, 3, 3, 3, 3, 3 ]; //for AI VERSION > 3 } function add2GuardShakeQueue(id, shape) diff --git a/lodeRunner.main.js b/lodeRunner.main.js index 6d44833..fe45452 100644 --- a/lodeRunner.main.js +++ b/lodeRunner.main.js @@ -37,7 +37,8 @@ var loadingTxt; var gameState, lastGameState ; var tileScale, xMove, yMove; -var speedMode = [15, 20, 25, 30, 35]; //slow normal fast +//var speedMode = [15, 20, 25, 30, 35]; //slow normal fast +var speedMode = [14, 18, 23, 29, 35]; //slow normal fast , slow down all speed 6/2/2016 var speedText = ["VERY SLOW", "SLOW", "NORMAL", "FAST", "VERY FAST"]; var speed = 2; //normal var demoSpeed = 35; @@ -992,9 +993,9 @@ function toggleTrapTile() for(var x = 0; x < NO_OF_TILES_X; x++) { if( map[x][y].base == TRAP_T) { if(dspTrapTile) { - map[x][y].bitmap.set({alpha:0.5}); //hidden tile + map[x][y].bitmap.set({alpha:0.5}); //show trap tile } else { - map[x][y].bitmap.set({alpha:1}); //display tile + map[x][y].bitmap.set({alpha:1}); //hide trap tile } } } @@ -1084,7 +1085,22 @@ function gameOverAnimation() .to({scaleY:-tileScale},750) .to({scaleY:tileScale},750) .wait(1500) - .call(function(){gameState = GAME_OVER;}); + .call(function(){ if(gameState == GAME_OVER_ANIMATION) gameState = GAME_OVER;}); + /* + BUG: + while in PLAY_AUTO MODE and demo dead into the gameOverAnimation() + At this time if player press any key or click mouse will cause + gameState changed to "GAME_START" and start play the game, + and after the TWEEN function into final "call( function() { gameState = GAME_OVER;})" + will cause program orderless and want player record hiscore table + + BUG FIXED: 9/15/2015 + if TWEEN complete and into call() func need check gameState MUST = "GAME_OVER_ANIMATION" + + ==> call(function(){ if(gameState == GAME_OVER_ANIMATION) gameState = GAME_OVER;}); + + */ + mainStage.addChild(rectBlock); mainStage.addChild(gameOverImage); @@ -1386,6 +1402,7 @@ var scoreIncValue, finalScore; function mainTick(event) { var deltaS = event.delta/1000; + var scoreInfo; switch(gameState) { case GAME_START: @@ -1464,7 +1481,7 @@ function mainTick(event) break; case GAME_OVER: ////getClassicInfo(); - var scoreInfo = null; + scoreInfo = null; if(playMode == PLAY_CLASSIC && !sometimePlayInGodMode) { //try to set hi-score record //scoreInfo = {s:curScore, l:(curLevel>maxLevel)?curLevel:maxLevel}; @@ -1575,7 +1592,7 @@ function mainTick(event) newLevel(); break; case GAME_WIN: - var scoreInfo = {s:curScore, l: levelData.length, w:1 }; //winner + scoreInfo = {s:curScore, l: levelData.length, w:1 }; //winner menuIconDisable(1); clearClassicInfo(); showScoreTable(playData, scoreInfo , function() { showCoverPage();}); diff --git a/lodeRunner.preload.js b/lodeRunner.preload.js index 83a376e..8af9a78 100644 --- a/lodeRunner.preload.js +++ b/lodeRunner.preload.js @@ -420,14 +420,15 @@ function createSoundInstance() var spriteSpeed = [ { runnerSpeed: 0.65, guardSpeed: 0.3, digSpeed: 0.68, fillSpeed: 0.24, xMoveBase: 8, yMoveBase: 8 }, //ver 1 { runnerSpeed: 0.70, guardSpeed: 0.35, digSpeed: 0.68, fillSpeed: 0.27, xMoveBase: 8, yMoveBase: 9 }, //ver 2 - { runnerSpeed: 0.8, guardSpeed: 0.4, digSpeed: 1, fillSpeed: 1, xMoveBase: 8, yMoveBase: 9 } //ver 3 + { runnerSpeed: 0.8, guardSpeed: 0.4, digSpeed: 1, fillSpeed: 1, xMoveBase: 8, yMoveBase: 9 } //ver 3 & 4 ]; var curAiVersion = AI_VERSION; var maxGuard = MAX_NEW_GUARD; function setSpeedByAiVersion() { - var speedObj = spriteSpeed[curAiVersion-1]; + var idx = (curAiVersion > spriteSpeed.length)?(spriteSpeed.length-1):(curAiVersion-1); //array index don't overflow + var speedObj = spriteSpeed[idx]; RUNNER_SPEED = speedObj.runnerSpeed; GUARD_SPEED = speedObj.guardSpeed; diff --git a/lodeRunner.runner.js b/lodeRunner.runner.js index 8ec49c9..1cb8c42 100644 --- a/lodeRunner.runner.js +++ b/lodeRunner.runner.js @@ -289,6 +289,9 @@ function runnerMoveStep(action, stayCurrPos ) } map[x][y].act = RUNNER_T; + //show trap tile if runner fall into the tile, 9/12/2015 + if(map[x][y].base == TRAP_T) map[x][y].bitmap.set({alpha:0.5}); //show trap tile + // Check runner to get gold (MAX MOVE MUST < H4 & W4) if( map[x][y].base == GOLD_T && ((!xOffset && yOffset >= 0 && yOffset < H4) || @@ -321,9 +324,7 @@ function decGold() showHideLaddr(); if(runner.pos.y > 0) { if(curTheme == "C64") soundPlay("goldFinish" + ((curLevel-1)%6+1)); //six sounds - else if (playMode == PLAY_MODERN || playMode == PLAY_TEST || playMode == PLAY_DEMO_ONCE) { - soundPlay("goldFinish"); //TIME MODE - } + else soundPlay("goldFinish"); //for all apple2 mode, 9/12/2015 } } }