diff --git a/docs/event.md b/docs/event.md index 08d0fe91..c82682f9 100644 --- a/docs/event.md +++ b/docs/event.md @@ -971,9 +971,12 @@ events.prototype.addPoint = function (enemy) { 要使用战前剧情,首先你需要覆盖该店的系统默认事件,改成你自己的自定义事件,然后在战前剧情后调用`{"type": "battle"}`强制战斗。 +值得注意的是,使用这种自定义事件来覆盖系统的默认战斗事件时,可以增加`displayDamage`代表该点是否需要显伤。此项可省略,默认为有显伤。 + ``` js "x,y": { // (x,y)为该怪物坐标 "trigger": "action", // 覆盖该点本身默认事件,变成自定义事件 + "displayDamage": true, // 覆盖后,该点是否有显伤;此项可忽略,默认为有。 "data": [ // 该点的自定义事件列表 // ... 战前剧情 {"type": "battle", "id": "xxx"}, // 强制战斗 @@ -982,34 +985,6 @@ events.prototype.addPoint = function (enemy) { } ``` -这种方式可以实现战前剧情。 - -**值得注意的是,如果一个怪物本身的系统默认事件被覆盖,则地图上也不会有显伤!** - -要想让被自定义事件覆盖的怪物也有显伤显示,则需要在`core.js`的`updateFg`函数中进行一些的修改: - -``` js -// ... 上略 - -// 非系统默认的战斗事件(被覆盖):无显伤 -if (mapBlocks[b].event.trigger != 'battle') { - - var shouldDisplayDamage = false; - - // 部分特殊的点(例如战前剧情)需要显伤的可类似在这里手动添加 - /* - if (core.status.floorId='???' && x=? && y=?) - shouldDisplayDamage = true; - */ - - if (!shouldDisplayDamage) - continue; -} - -// ... 下略 -``` - -即手动指定一下哪些层的哪些点上被覆盖的怪物也需要显伤。 !> 如果想让所有怪物都有显伤,也可以简单直接删除或注释这一段。 diff --git a/libs/core.js b/libs/core.js index 1e3956fa..51df3aa5 100644 --- a/libs/core.js +++ b/libs/core.js @@ -2879,19 +2879,14 @@ core.prototype.updateFg = function () { if (core.isset(mapBlocks[b].event) && mapBlocks[b].event.cls == 'enemys' && !(core.isset(mapBlocks[b].enable) && !mapBlocks[b].enable)) { - // 非系统默认的战斗事件(被覆盖):无显伤 + // 非系统默认的战斗事件(被覆盖) if (mapBlocks[b].event.trigger != 'battle') { - - var shouldDisplayDamage = false; - - // 部分特殊的点(例如战前剧情)需要显伤的可类似在这里手动添加 - /* - if (core.status.floorId='???' && x=? && y=?) - shouldDisplayDamage = true; - */ - - if (!shouldDisplayDamage) - continue; + // 判断显伤 + var event = core.floors[core.status.floorId].events[x+","+y]; + if (core.isset(event) && !(event instanceof Array)) { + if (core.isset(event.displayDamage) && !event.displayDamage) + continue; + } } var id = mapBlocks[b].event.id; diff --git a/libs/floors/sample2.js b/libs/floors/sample2.js index acb6b881..5e440aa4 100644 --- a/libs/floors/sample2.js +++ b/libs/floors/sample2.js @@ -202,10 +202,26 @@ main.floors.sample2 = { {"type": "trigger", "loc": [6,6]} // 立刻触发妖精事件 ] }, - "4,3": {"trigger":"action","enable":false}, // 四个角的大法师,添加trigger:action可避免该点出现显伤 - "8,3": {"trigger":"action","enable":false}, // 四个角的大法师 - "4,6": {"trigger":"action","enable":false}, // 四个角的大法师 - "8,6": {"trigger":"action","enable":false}, // 四个角的大法师 + "4,3": { // 四个角的大法师, + "trigger": "action", + "displayDamage": false, + "enable":false + }, + "8,3": { // 四个角的大法师, + "trigger": "action", + "displayDamage": false, + "enable":false + }, + "4,6": { // 四个角的大法师, + "trigger": "action", + "displayDamage": false, + "enable":false + }, + "8,6": { // 四个角的大法师, + "trigger": "action", + "displayDamage": false, + "enable":false + }, "6,6": { // 妖精 "enable":false, // 初始时禁用状态