dc96a5ac8d
(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
184 lignes
4.8 KiB
JavaScript
184 lignes
4.8 KiB
JavaScript
var VERSION = "2.11a";
|
|
var AI_VERSION = 4;
|
|
|
|
var NO_OF_TILES_X = 28,
|
|
NO_OF_TILES_Y = 16;
|
|
|
|
var BASE_TILE_X = 40,
|
|
BASE_TILE_Y = 44;
|
|
|
|
var GROUND_TILE_X = 40,
|
|
GROUND_TILE_Y = 20,
|
|
TEXT_TILE_X = 40,
|
|
TEXT_TILE_Y = 44;
|
|
|
|
var BASE_SCREEN_X = (NO_OF_TILES_X * BASE_TILE_X);
|
|
var BASE_SCREEN_Y = (NO_OF_TILES_Y * BASE_TILE_Y + GROUND_TILE_Y + TEXT_TILE_Y);
|
|
|
|
var MIN_SCALE = 0.5,
|
|
MAX_SCALE = 2;
|
|
|
|
var MENU_ICON_X = 40, MENU_ICON_Y = 36, ICON_BORDER = 4;
|
|
var BASE_ICON_X = (MENU_ICON_X + ICON_BORDER * 2);
|
|
|
|
var KEYCODE_BKSPACE = 8, //backspace
|
|
KEYCODE_ENTER = 13,
|
|
KEYCODE_SPACE = 32,
|
|
KEYCODE_ESC = 27, //escape
|
|
|
|
KEYCODE_Z = 90, //dig left
|
|
KEYCODE_X = 88, //dig right
|
|
|
|
KEYCODE_LEFT = 37, //move left
|
|
KEYCODE_RIGHT = 39, //move right
|
|
KEYCODE_UP = 38, //move up
|
|
KEYCODE_DOWN = 40, //move down
|
|
|
|
KEYCODE_SUBTRACT = 109, //Add KEYCODE_SUBTRACT & KEYCODE_HYPHEN for support fireFox 'dash' keycode
|
|
KEYCODE_HYPHEN = 173, //
|
|
KEYCODE_DASH = 189, //'-'
|
|
KEYCODE_DOT = 190, //'.'
|
|
|
|
KEYCODE_U = 85, //dig left
|
|
KEYCODE_O = 79, //dig right
|
|
|
|
KEYCODE_J = 74, //move left
|
|
KEYCODE_L = 76, //move right
|
|
KEYCODE_I = 73, //move up
|
|
KEYCODE_K = 75, //move down
|
|
|
|
KEYCODE_PERIOD = 190, //'.'
|
|
KEYCODE_COMMA = 188, //','
|
|
|
|
KEYCODE_A = 65, //'A'
|
|
KEYCODE_C = 67, //'C'
|
|
KEYCODE_G = 71, //'G'
|
|
KEYCODE_R = 82, //'R'
|
|
KEYCODE_S = 83, //'S'
|
|
KEYCODE_T = 84, //'T'
|
|
KEYCODE_V = 86; //'V'
|
|
|
|
var KEYCODE_0 = 48,
|
|
KEYCODE_1 = 49,
|
|
KEYCODE_2 = 50,
|
|
KEYCODE_3 = 51,
|
|
KEYCODE_4 = 52,
|
|
KEYCODE_5 = 53,
|
|
KEYCODE_6 = 54,
|
|
KEYCODE_7 = 55,
|
|
KEYCODE_8 = 56,
|
|
KEYCODE_9 = 57;
|
|
|
|
var SCORE_COMPLETE_LEVEL = 1500, SCORE_COUNTER = 15;
|
|
SCORE_GET_GOLD = 250,
|
|
SCORE_IN_HOLE = 75,
|
|
SCORE_GUARD_DEAD = 75;
|
|
|
|
var SCORE_VALUE_PER_POINT = 100; //for modern & edit mode
|
|
|
|
var PLAY_NONE = 0, PLAY_CLASSIC = 1, PLAY_MODERN = 2, PLAY_DEMO = 3,
|
|
PLAY_EDIT = 4, PLAY_TEST = 5, PLAY_AUTO = 6, PLAY_DEMO_ONCE = 7;
|
|
|
|
var GAME_START = 0, GAME_RUNNING = 1,
|
|
GAME_FINISH = 2, GAME_FINISH_SCORE_COUNT= 3,
|
|
GAME_WAITING = 4, GAME_PAUSE = 5,
|
|
GAME_NEW_LEVEL = 6, GAME_RUNNER_DEAD = 7,
|
|
GAME_OVER_ANIMATION = 8, GAME_OVER = 9,
|
|
GAME_NEXT_LEVEL = 10, GAME_PREV_LEVEL = 11,
|
|
GAME_LOADING = 12, GAME_WIN = 13;
|
|
|
|
var ACT_UNKNOWN = -1, ACT_STOP = 0,
|
|
ACT_LEFT = 1, ACT_RIGHT = 2,
|
|
ACT_UP = 3, ACT_DOWN = 4,
|
|
ACT_FALL = 5, ACT_FALL_BAR = 6,
|
|
ACT_DIG_LEFT = 7, ACT_DIG_RIGHT = 8,
|
|
ACT_DIGGING = 9,
|
|
ACT_IN_HOLE = 10, ACT_CLIMB_OUT = 11,
|
|
ACT_REBORN = 12;
|
|
|
|
//value | Character | Type
|
|
//------+-----------+-----------
|
|
// 0x0 | <space> | Empty space
|
|
// 0x1 | # | Normal Brick
|
|
// 0x2 | @ | Solid Brick
|
|
// 0x3 | H | Ladder
|
|
// 0x4 | - | Hand-to-hand bar (Line of rope)
|
|
// 0x5 | X | False brick
|
|
// 0x6 | S | Ladder appears at end of level
|
|
// 0x7 | $ | Gold chest
|
|
// 0x8 | 0 | Guard
|
|
// 0x9 | & | Player
|
|
|
|
var EMPTY_T = 0x00;
|
|
var BLOCK_T = 0x01;
|
|
var SOLID_T = 0x02;
|
|
var LADDR_T = 0x03;
|
|
var BAR_T = 0x04;
|
|
var TRAP_T = 0x05;
|
|
var HLADR_T = 0x06;
|
|
var GOLD_T = 0x07;
|
|
var GUARD_T = 0x08;
|
|
var RUNNER_T = 0x09;
|
|
|
|
var REBORN_T = 0x10; //template: for reborn
|
|
|
|
var CLOSE_SCREEN_SPEED = 35; //20 ~ 80
|
|
|
|
var MAX_OLD_GUARD = 6; //maximum number of guards for AI Version 1 and 2
|
|
var MAX_NEW_GUARD = 5; //for AI Version >= 3
|
|
|
|
var RUNNER_LIFE = 5; //number of runner life
|
|
var RUNNER_MAX_LIFE = 100;
|
|
|
|
var MAX_TIME_COUNT = 999; //for moden mode
|
|
var TICK_COUNT_PER_TIME = 16;
|
|
var MAX_DEMO_WAIT_COUNT = 200 * TICK_COUNT_PER_TIME;
|
|
|
|
var MAX_EDIT_LEVEL = 120;
|
|
|
|
var MAX_HISCORE_RECORD = 10, MAX_HISCORE_NAME_LENGTH = 12;
|
|
|
|
//===========================
|
|
// Define value for playData
|
|
//===========================
|
|
var PLAY_DATA_USERDEF = 999;
|
|
|
|
//================================================
|
|
// Define themes string also as theme folder name
|
|
//================================================
|
|
var THEME_APPLE2 = "APPLE2";
|
|
var THEME_C64 = "C64";
|
|
|
|
//================================
|
|
// Below defined for LocalStorage
|
|
//================================
|
|
|
|
var STORAGE_LASTPLAY_MODE = "loderunner_lastplay";
|
|
|
|
var STORAGE_CLASSIC_INFO = "loderunner_classicInfo";
|
|
|
|
var STORAGE_MODERN_INFO = "loderunner_modernInfo";
|
|
|
|
var STORAGE_DEMO_INFO = "loderunner_demoInfo";
|
|
|
|
var STORAGE_FIRST_PLAY = "loderunner_firstRun";
|
|
|
|
var STORAGE_MODERN_SCORE_INFO = "loderunner_modernScore";
|
|
|
|
var STORAGE_USER_INFO = "loderunner_userInfo"; //user created
|
|
var STORAGE_USER_SCORE_INFO = "loderunner_userScore"; //user created
|
|
|
|
var STORAGE_EDIT_INFO = "loderunner_editInfo";
|
|
|
|
var STORAGE_USER_LEVEL = "loderunner_userLevel";
|
|
var STORAGE_TEST_LEVEL = "loderunner_testlevel";
|
|
|
|
var STORAGE_HISCORE_INFO = "loderunner_hiScore";
|
|
|
|
var STORAGE_PLAYER_NAME = "loderunner_player";
|
|
var STORAGE_UID = "loderunner_uid";
|
|
|
|
var STORAGE_THEME_MODE = "loderunner_theme";
|
|
|
|
var STORAGE_REPEAT_ACTION = "loderunner_actRepeat";
|