diff --git a/libs/core.js b/libs/core.js index 1528dfb5..d786f573 100644 --- a/libs/core.js +++ b/libs/core.js @@ -1990,7 +1990,8 @@ core.prototype.stopHero = function () { core.prototype.drawHero = function (direction, x, y, status, offsetX, offsetY) { offsetX = offsetX || 0; offsetY = offsetY || 0; - core.clearAutomaticRouteNode(x, y); + var dx=offsetX==0?0:offsetX/Math.abs(offsetX), dy=offsetY==0?0:offsetY/Math.abs(offsetY); + core.clearAutomaticRouteNode(x+dx, y+dy); var heroIcon = core.material.icons.hero[direction]; x = x * 32; y = y * 32; @@ -3948,6 +3949,13 @@ core.prototype.checkStatus = function (name, need, item) { ////// 点击怪物手册时的打开操作 ////// core.prototype.openBook = function (need) { if (core.isset(core.status.replay)&&core.status.replay.replaying) return; + + // 从“浏览地图”页面打开 + if (core.status.event.id=='viewMaps') { + need=false; + core.status.event.selection = core.status.event.data; + } + if (!core.checkStatus('book', need, true)) return; core.useItem('book'); diff --git a/libs/enemys.js b/libs/enemys.js index ed33c7d5..4cfaa0ae 100644 --- a/libs/enemys.js +++ b/libs/enemys.js @@ -289,10 +289,11 @@ enemys.prototype.calDamage = function (monster, hero_hp, hero_atk, hero_def, her } ////// 获得当前楼层的怪物列表 ////// -enemys.prototype.getCurrentEnemys = function () { +enemys.prototype.getCurrentEnemys = function (floorId) { + floorId=floorId||core.status.floorId; var enemys = []; var used = {}; - var mapBlocks = core.status.thisMap.blocks; + var mapBlocks = core.status.maps[floorId].blocks; for (var b = 0; b < mapBlocks.length; b++) { if (core.isset(mapBlocks[b].event) && !(core.isset(mapBlocks[b].enable) && !mapBlocks[b].enable) && mapBlocks[b].event.cls == 'enemys') { var monsterId = mapBlocks[b].event.id; diff --git a/libs/events.js b/libs/events.js index 74547ab0..b38b9a65 100644 --- a/libs/events.js +++ b/libs/events.js @@ -996,7 +996,12 @@ events.prototype.clickBook = function(x,y) { } // 返回 if (x>=10 && x<=12 && y==12) { - core.ui.closePanel(); + if (core.status.event.selection==null) + core.ui.closePanel(); + else { + core.status.boxAnimateObjs = []; + core.ui.drawMaps(core.status.event.selection); + } return; } // 怪物信息 @@ -1024,7 +1029,12 @@ events.prototype.keyDownBook = function (keycode) { ////// 怪物手册界面时,放开某个键的操作 ////// events.prototype.keyUpBook = function (keycode) { if (keycode==27 || keycode==88) { - core.ui.closePanel(); + if (core.status.event.selection==null) + core.ui.closePanel(); + else { + core.status.boxAnimateObjs = []; + core.ui.drawMaps(core.status.event.selection); + } return; } if (keycode==13 || keycode==32 || keycode==67) { @@ -1099,11 +1109,14 @@ events.prototype.keyDownViewMaps = function (keycode) { ////// 查看地图界面时,放开某个键的操作 ////// events.prototype.keyUpViewMaps = function (keycode) { - if (keycode==27 || keycode==88 || keycode==13 || keycode==32 || keycode==67) { + if (keycode==27 || keycode==13 || keycode==32 || keycode==67) { core.clearMap('data', 0, 0, 416, 416); core.setOpacity('data', 1); core.ui.closePanel(); } + if (keycode==88) { + core.openBook(false); + } return; } @@ -1573,7 +1586,7 @@ events.prototype.clickSettings = function (x,y) { core.drawTip("本塔不允许浏览地图!"); } else { - core.drawText("\t[系统提示]即将进入浏览地图模式。\n\n点击地图上半部分,或按[↑]键可查看前一张地图\n点击地图下半部分,或按[↓]键可查看后一张地图\n点击地图中间,或按[ESC]键可离开浏览地图模式", function () { + core.drawText("\t[系统提示]即将进入浏览地图模式。\n\n点击地图上半部分,或按[↑]键可查看前一张地图\n点击地图下半部分,或按[↓]键可查看后一张地图\n点击地图中间,或按[ESC]键可离开浏览地图模式\n此模式下可以打开怪物手册以查看某层楼的怪物属性", function () { core.ui.drawMaps(core.floorIds.indexOf(core.status.floorId)); }) } diff --git a/libs/ui.js b/libs/ui.js index b00ca87d..d558cefc 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -749,7 +749,7 @@ ui.prototype.drawCursor = function () { ////// 绘制怪物手册 ////// ui.prototype.drawBook = function (index) { - var enemys = core.enemys.getCurrentEnemys(); + var enemys = core.enemys.getCurrentEnemys(core.floorIds[core.status.event.selection]); var background = core.canvas.ui.createPattern(core.material.ground, "repeat"); clearInterval(core.interval.tipAnimate); diff --git a/更新说明.txt b/更新说明.txt index 8c4f7fab..fe235fc2 100644 --- a/更新说明.txt +++ b/更新说明.txt @@ -3,10 +3,11 @@ 瞬间移动。 单存档同步到服务器,下载到文件和读取。 键盘支持自动寻路操作。 +浏览地图模式下可以查看怪物数据。 未成功打怪和开门则不自动存档。 重新支持楼梯穿透。 支持多结局,成绩将分开统计。 -重构勇士行走过程和事件检测,大幅提升性能。 +重构全局动画、行走动画和行走检测,大幅提升性能。 修复所有已知Bug。 -----------------------------------------------------------------------