From e56b92d78e0d0195a1d62dad2274f6822cbcfb15 Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 15 Feb 2018 19:01:43 +0800 Subject: [PATCH 1/3] Support \\n --- libs/core.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libs/core.js b/libs/core.js index 61139cd2..9567dbe1 100644 --- a/libs/core.js +++ b/libs/core.js @@ -3931,6 +3931,10 @@ core.prototype.splitLines = function(canvas, text, maxLength, font) { contents.push(text.substring(last, i)); last=i+1; } + else if (text.charAt(i)=='\\' && text.charAt(i+1)=='n') { + contents.push(text.substring(last, i)); + last=i+2; + } else { var toAdd = text.substring(last, i+1); var width = core.canvas[canvas].measureText(toAdd).width; From 9fe928530ce5ab68d0a17fe0e0b222631e734b89 Mon Sep 17 00:00:00 2001 From: YouWei Zhao Date: Thu, 15 Feb 2018 19:23:37 +0800 Subject: [PATCH 2/3] fix bug: default floor in floor selecter of editor --- _server/editor_mode.js | 1 + 1 file changed, 1 insertion(+) diff --git a/_server/editor_mode.js b/_server/editor_mode.js index 8835baa4..f21f93b2 100644 --- a/_server/editor_mode.js +++ b/_server/editor_mode.js @@ -257,6 +257,7 @@ editor_mode.prototype.listen = function(callback){ outstr.push(["\n'].join('')); }); selectFloor.innerHTML=outstr.join(''); + selectFloor.value=core.status.floorId; selectFloor.onchange = function(){ editor_mode.onmode(''); editor.changeFloor(selectFloor.value); From 169233955a98d3f4e0decc5ede47f14372b7f6d2 Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 16 Feb 2018 15:27:47 +0800 Subject: [PATCH 3/3] Support constant damage --- libs/core.js | 11 ++++++++++- libs/enemys.js | 9 +++++++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/libs/core.js b/libs/core.js index 9567dbe1..0678d697 100644 --- a/libs/core.js +++ b/libs/core.js @@ -4417,7 +4417,16 @@ core.prototype.doSL = function (id, type) { return; } if (data.version != core.firstData.version) { - core.drawTip("存档版本不匹配"); + // core.drawTip("存档版本不匹配"); + if (confirm("存档版本不匹配!\n你想回放此存档的录像吗?")) { + core.dom.startPanel.style.display = 'none'; + core.resetStatus(core.firstData.hero, data.hard, core.firstData.floorId, null, core.initStatus.maps); + core.events.setInitData(data.hard); + core.changeFloor(core.status.floorId, null, core.firstData.hero.loc, null, function() { + //core.setHeroMoveTriggerInterval(); + core.startReplay(core.decodeRoute(data.route)); + }); + } return; } core.ui.closePanel(); diff --git a/libs/enemys.js b/libs/enemys.js index 4cfaa0ae..5d3033ae 100644 --- a/libs/enemys.js +++ b/libs/enemys.js @@ -118,6 +118,7 @@ enemys.prototype.getSpecialText = function (enemyId) { if (this.hasSpecial(special, 19)) text.push("自爆"); if (this.hasSpecial(special, 20)) text.push("无敌"); if (this.hasSpecial(special, 21)) text.push("退化"); + if (this.hasSpecial(special, 22)) text.push("固伤"); return text; } @@ -150,13 +151,14 @@ enemys.prototype.getSpecialHint = function (enemy, special) { case 12: return "中毒:战斗后,勇士陷入中毒状态,每一步损失生命"+core.values.poisonDamage+"点"; case 13: return "衰弱:战斗后,勇士陷入衰弱状态,攻防暂时下降"+core.values.weakValue+"点"; case 14: return "诅咒:战斗后,勇士陷入诅咒状态,战斗无法获得金币和经验"; - case 15: return "领域:经过怪物周围"+(enemy.range||1)+"格时自动减生命"+enemy.value+"点"; + case 15: return "领域:经过怪物周围"+(enemy.range||1)+"格时自动减生命"+(enemy.value||0)+"点"; case 16: return "夹击:经过两只相同的怪物中间,勇士生命值变成一半"; case 17: return "仇恨:战斗前,怪物附加之前积累的仇恨值作为伤害"+(core.flags.hatredDecrease?";战斗后,释放一半的仇恨值":"")+"。(每杀死一个怪物获得"+core.values.hatred+"点仇恨值)"; - case 18: return "阻击:经过怪物的十字领域时自动减生命"+enemy.value+"点,同时怪物后退一格"; + case 18: return "阻击:经过怪物的十字领域时自动减生命"+(enemy.value||0)+"点,同时怪物后退一格"; case 19: return "自爆:战斗后勇士的生命值变成1"; case 20: return "无敌:勇士无法打败怪物,除非拥有十字架"; case 21: return "退化:战斗后勇士永久下降"+(enemy.atkValue||0)+"点攻击和"+(enemy.defValue||0)+"点防御"; + case 22: return "固伤:战斗前,怪物对勇士造成"+(enemy.damage||0)+"点固定伤害,无视勇士魔防。"; default: break; } return "" @@ -176,6 +178,9 @@ enemys.prototype.getExtraDamage = function (monster) { if (this.hasSpecial(monster.special, 17)) { // 仇恨 extra_damage += core.getFlag('hatred', 0); } + if (this.hasSpecial(monster.special, 22)) { // 固伤 + extra_damage += monster.damage||0; + } return extra_damage; }