diff --git a/libs/actions.js b/libs/actions.js index 48601e6f..17809fd5 100644 --- a/libs/actions.js +++ b/libs/actions.js @@ -1389,15 +1389,21 @@ actions.prototype.clickSwitchs = function (x,y) { core.ui.drawSwitchs(); break; case 4: + core.flags.displayCritical=!core.flags.displayCritical; + core.updateFg(); + core.setLocalStorage('critical', core.flags.displayCritical); + core.ui.drawSwitchs(); + break; + case 5: core.flags.displayExtraDamage=!core.flags.displayExtraDamage; core.updateFg(); core.setLocalStorage('extraDamage', core.flags.displayExtraDamage); core.ui.drawSwitchs(); break; - case 5: + case 6: window.open(core.firstData.name+".zip", "_blank"); break; - case 6: + case 7: core.status.event.selection=0; core.ui.drawSettings(); break; diff --git a/libs/control.js b/libs/control.js index f51c1133..85c001db 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1252,7 +1252,7 @@ control.prototype.updateFg = function () { if (!core.hasItem('book')) return; core.setFont('fg', "bold 11px Arial"); var hero_hp = core.status.hero.hp; - if (core.flags.displayEnemyDamage) { + if (core.flags.displayEnemyDamage || core.flags.displayCritical) { core.canvas.fg.textAlign = 'left'; for (var b = 0; b < mapBlocks.length; b++) { var x = mapBlocks[b].x, y = mapBlocks[b].y; @@ -1271,31 +1271,46 @@ control.prototype.updateFg = function () { var id = mapBlocks[b].event.id; - var damage = core.enemys.getDamage(id); - var color = '#000000'; + if (core.flags.displayEnemyDamage) { + var damage = core.enemys.getDamage(id); + var color = '#000000'; - if (damage == null) { - damage = "???"; - color = '#FF0000'; - } - else { - if (damage <= 0) color = '#00FF00'; - else if (damage < hero_hp / 3) color = '#FFFFFF'; - else if (damage < hero_hp * 2 / 3) color = '#FFFF00'; - else if (damage < hero_hp) color = '#FF7F00'; - else color = '#FF0000'; + if (damage == null) { + damage = "???"; + color = '#FF0000'; + } + else { + if (damage <= 0) color = '#00FF00'; + else if (damage < hero_hp / 3) color = '#FFFFFF'; + else if (damage < hero_hp * 2 / 3) color = '#FFFF00'; + else if (damage < hero_hp) color = '#FF7F00'; + else color = '#FF0000'; - damage = core.formatBigNumber(damage); + damage = core.formatBigNumber(damage); + } + + core.setFillStyle('fg', '#000000'); + core.canvas.fg.fillText(damage, 32 * x + 2, 32 * (y + 1) - 2); + core.canvas.fg.fillText(damage, 32 * x, 32 * (y + 1) - 2); + core.canvas.fg.fillText(damage, 32 * x + 2, 32 * (y + 1)); + core.canvas.fg.fillText(damage, 32 * x, 32 * (y + 1)); + + core.setFillStyle('fg', color); + core.canvas.fg.fillText(damage, 32 * x + 1, 32 * (y + 1) - 1); } - core.setFillStyle('fg', '#000000'); - core.canvas.fg.fillText(damage, 32 * x + 2, 32 * (y + 1) - 2); - core.canvas.fg.fillText(damage, 32 * x, 32 * (y + 1) - 2); - core.canvas.fg.fillText(damage, 32 * x + 2, 32 * (y + 1)); - core.canvas.fg.fillText(damage, 32 * x, 32 * (y + 1)); - - core.setFillStyle('fg', color); - core.canvas.fg.fillText(damage, 32 * x + 1, 32 * (y + 1) - 1); + // 临界显伤 + if (core.flags.displayCritical) { + var critical = core.formatBigNumber(core.enemys.getCritical(id)); + if (critical == '???') critical = '?'; + core.setFillStyle('fg', '#000000'); + core.canvas.fg.fillText(critical, 32 * x + 2, 32 * (y + 1) - 2 - 10); + core.canvas.fg.fillText(critical, 32 * x, 32 * (y + 1) - 2 - 10); + core.canvas.fg.fillText(critical, 32 * x + 2, 32 * (y + 1) - 10); + core.canvas.fg.fillText(critical, 32 * x, 32 * (y + 1) - 10); + core.setFillStyle('fg', '#FFFFFF'); + core.canvas.fg.fillText(critical, 32 * x + 1, 32 * (y + 1) - 1 - 10); + } } } diff --git a/libs/core.js b/libs/core.js index d88d10f2..a01080a5 100644 --- a/libs/core.js +++ b/libs/core.js @@ -268,6 +268,7 @@ core.prototype.init = function (coreData, callback) { // switchs core.flags.battleAnimate = core.getLocalStorage('battleAnimate', core.flags.battleAnimate); core.flags.displayEnemyDamage = core.getLocalStorage('enemyDamage', core.flags.displayEnemyDamage); + core.flags.displayCritical = core.getLocalStorage('critical', core.flags.displayCritical); core.flags.displayExtraDamage = core.getLocalStorage('extraDamage', core.flags.displayExtraDamage); core.material.ground = new Image(); diff --git a/libs/ui.js b/libs/ui.js index 4c3eee5e..fb1d43ef 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -734,6 +734,7 @@ ui.prototype.drawSwitchs = function() { "背景音效:"+(core.musicStatus.soundStatus ? "[ON]" : "[OFF]"), "战斗动画: "+(core.flags.battleAnimate ? "[ON]" : "[OFF]"), "怪物显伤: "+(core.flags.displayEnemyDamage ? "[ON]" : "[OFF]"), + "临界显伤: "+(core.flags.displayCritical ? "[ON]" : "[OFF]"), "领域显伤: "+(core.flags.displayExtraDamage ? "[ON]" : "[OFF]"), "下载离线版本", "返回主菜单"