From a60b6ff3db37decd73e5d666103369460d7998ac Mon Sep 17 00:00:00 2001 From: oc Date: Fri, 5 Apr 2019 22:16:39 +0800 Subject: [PATCH] if_1_s --- _server/MotaAction.g4 | 34 ++++++++++++++++++++++++++++------ _server/editor_blockly.js | 1 + libs/control.js | 2 +- libs/events.js | 1 + libs/ui.js | 1 + 5 files changed, 32 insertions(+), 7 deletions(-) diff --git a/_server/MotaAction.g4 b/_server/MotaAction.g4 index a43d0c9a..a8741045 100644 --- a/_server/MotaAction.g4 +++ b/_server/MotaAction.g4 @@ -324,6 +324,7 @@ action | win_s | lose_s | if_s + | if_1_s | switch_s | while_s | break_s @@ -1588,6 +1589,20 @@ var code = ['{"type": "if", "condition": "',expression_0,'",\n', return code; */; +if_1_s + : '如果' ':' expression BGNL? Newline action+ BEND Newline + + +/* if_1_s +tooltip : if: 条件判断 +helpUrl : https://h5mota.com/games/template/docs/#/event?id=if%EF%BC%9A%E6%9D%A1%E4%BB%B6%E5%88%A4%E6%96%AD +colour : this.eventColor +var code = ['{"type": "if", "condition": "',expression_0,'",\n', + '"true": [\n',action_0,'],\n', +'},\n'].join(''); +return code; +*/; + switch_s : '多重分歧 条件判定' ':' expression BGNL? Newline switchCase+ BEND Newline @@ -2583,12 +2598,19 @@ ActionParser.prototype.parseAction = function() { data.text,this.next]); break; case "if": // 条件判断 - this.next = MotaActionBlocks['if_s'].xmlText([ - // MotaActionBlocks['evalString_e'].xmlText([data.condition]), - this.tryToUseEvFlag_e('evalString_e', [data.condition]), - this.insertActionList(data["true"]), - this.insertActionList(data["false"]), - this.next]); + if (data["false"]) { + this.next = MotaActionBlocks['if_s'].xmlText([ + this.tryToUseEvFlag_e('evalString_e', [data.condition]), + this.insertActionList(data["true"]), + this.insertActionList(data["false"]), + this.next]); + } + else { + this.next = MotaActionBlocks['if_1_s'].xmlText([ + this.tryToUseEvFlag_e('evalString_e', [data.condition]), + this.insertActionList(data["true"]), + this.next]); + } break; case "confirm": // 显示确认框 this.next = MotaActionBlocks['confirm_s'].xmlText([ diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index 1c81e65c..2a641312 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -111,6 +111,7 @@ editor_blockly = function () { ], '事件控制':[ MotaActionBlocks['if_s'].xmlText(), + MotaActionBlocks['if_1_s'].xmlText(), MotaActionFunctions.actionParser.parseList({"type": "switch", "condition": "判别值", "caseList": [ {"action": [{"type": "comment", "text": "当判别值是值的场合执行此事件"}]}, {"action": [], "nobreak": true}, diff --git a/libs/control.js b/libs/control.js index f0de8ee1..5f38acfd 100644 --- a/libs/control.js +++ b/libs/control.js @@ -323,6 +323,7 @@ control.prototype._showStartAnimate_resetDom = function () { core.dom.levelChooseButtons.style.display = 'none'; core.status.played = false; core.clearStatus(); + core.clearMap('all'); core.dom.musicBtn.style.display = 'block'; core.setMusicBtn(); // 重置音量 @@ -360,7 +361,6 @@ control.prototype.clearStatus = function() { } core.status = {}; core.clearStatusBar(); - core.clearMap('all'); core.deleteAllCanvas(); core.status.played = false; } diff --git a/libs/events.js b/libs/events.js index 8ecea618..814afc2b 100644 --- a/libs/events.js +++ b/libs/events.js @@ -1683,6 +1683,7 @@ events.prototype.load = function (fromUserAction) { if (!core.isPlaying()) { core.dom.startPanel.style.display = 'none'; core.clearStatus(); + core.clearMap('all'); core.status.event = {'id': 'load', 'data': null}; core.status.lockControl = true; core.ui.drawSLPanel(10*page+offset); diff --git a/libs/ui.js b/libs/ui.js index db1a09e9..9d63d8d0 100644 --- a/libs/ui.js +++ b/libs/ui.js @@ -1084,6 +1084,7 @@ ui.prototype.drawConfirmBox = function (text, yesCallback, noCallback) { // 处理自定义事件 if (core.status.event.id != 'action') { core.status.event.id = 'confirmBox'; + core.status.event.ui = text; core.status.event.data = {'yes': yesCallback, 'no': noCallback}; }