diff --git a/docs/event.md b/docs/event.md index ea24d46a..12b2aacb 100644 --- a/docs/event.md +++ b/docs/event.md @@ -1234,7 +1234,7 @@ text为提示文字,可以在这里给输入提示文字。这里同样可以 ``` js "x,y": [ // 实际执行的事件列表 - {"type": "swtich", "condition": "...", // 计算某个表达式 + {"type": "switch", "condition": "...", // 计算某个表达式 "caseList": [ {"case": "a", "action": [// 若表达式的值等于a则执行该处事件 @@ -1282,7 +1282,7 @@ text为提示文字,可以在这里给输入提示文字。这里同样可以 需要额外注意的几点: -- 各个条件分支的判断是顺序执行的,因此若多个分支的条件都满足,将只执行最靠前的分支,同理,请不要在`"default"`分支后添加分支,这些分支将不可能被执行。 +- 各个条件分支的判断是顺序执行的,因此若多个分支的条件都满足,将只执行最靠前的分支,同理,请不要在`default`分支后添加分支,这些分支将不可能被执行。 - `default`分支并不是必要的,如果删除,则在没有满足条件的分支时将不执行任何事件。 - 即使某个场合不执行事件,对应的action数组也需要存在,不过简单的留空就好。 - switch可以不断进行嵌套,一层套一层;如某条件成立的场合再进行另一个switch判断等。 diff --git a/libs/control.js b/libs/control.js index 6ec7e3eb..134ae37f 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1536,15 +1536,9 @@ control.prototype.updateDamage = function (floorId, canvas) { if (core.isset(mapBlocks[b].event) && mapBlocks[b].event.cls.indexOf('enemy')==0 && !mapBlocks[b].disable) { - // 非系统默认的战斗事件(被覆盖) - if (mapBlocks[b].event.trigger != 'battle') { - // 判断显伤 - var event = core.floors[floorId].events[x+","+y]; - if (core.isset(event) && !(event instanceof Array)) { - if (event.displayDamage === false) - continue; - } - } + // 判定是否显伤 + if (mapBlocks[b].event.displayDamage === false) + continue; var id = mapBlocks[b].event.id; diff --git a/libs/maps.js b/libs/maps.js index 20d50ef3..510141d3 100644 --- a/libs/maps.js +++ b/libs/maps.js @@ -123,28 +123,20 @@ maps.prototype.addEvent = function (block, x, y, event) { if (!core.isset(event.data)) event.data = []; - // 覆盖noPass - if (core.isset(event.noPass)) - block.event.noPass = event.noPass; - // 覆盖enable if (!core.isset(block.disable) && core.isset(event.enable)) { block.disable=!event.enable; } - // 覆盖trigger - if (!core.isset(block.event.trigger)) { - if (core.isset(event.trigger)) block.event.trigger=event.trigger; - else block.event.trigger='action'; - } - else if (core.isset(event.trigger) && event.trigger!='checkBlock') { - block.event.trigger=event.trigger; - } - // 覆盖其他属性 + // 覆盖所有属性 for (var key in event) { - if (key!="disable" && key!="trigger" && key!="noPass" && core.isset(event[key])) { + if (key!="enable" && core.isset(event[key])) { block.event[key]=core.clone(event[key]); } } + // 给无trigger的增加trigger:action + if (!core.isset(block.event.trigger)) { + block.event.trigger = 'action'; + } } ////// 向该楼层添加剧本的楼层转换事件 //////