From 76a84c5f8fc67680fdf1eceae8ec377f516069f5 Mon Sep 17 00:00:00 2001 From: oc Date: Thu, 11 Oct 2018 23:48:54 +0800 Subject: [PATCH] setFg & setWeather --- libs/control.js | 6 ++---- libs/events.js | 50 +++++++++++++++++++++++++------------------- project/functions.js | 2 +- 3 files changed, 32 insertions(+), 26 deletions(-) diff --git a/libs/control.js b/libs/control.js index 505ab2d4..69ce1ce8 100644 --- a/libs/control.js +++ b/libs/control.js @@ -1514,7 +1514,7 @@ control.prototype.updateDamage = function () { // 判断显伤 var event = core.floors[core.status.floorId].events[x+","+y]; if (core.isset(event) && !(event instanceof Array)) { - if (core.isset(event.displayDamage) && !event.displayDamage) + if (event.displayDamage === false) continue; } } @@ -2441,9 +2441,7 @@ control.prototype.getStatus = function (statusName) { ////// 获得某个等级的名称 ////// control.prototype.getLvName = function () { - if (!core.isset(core.firstData.levelUp) || core.status.hero.lv<=0 - || core.status.hero.lv>core.firstData.levelUp.length) return core.status.hero.lv; - return core.firstData.levelUp[core.status.hero.lv-1].name || core.status.hero.lv; + return ((core.firstData.levelUp||[])[core.status.hero.lv-1]||{}).name || core.status.hero.lv; } ////// 设置某个自定义变量或flag ////// diff --git a/libs/events.js b/libs/events.js index 23786921..5ea87222 100644 --- a/libs/events.js +++ b/libs/events.js @@ -657,16 +657,21 @@ events.prototype.doAction = function() { case "setFg": // 颜色渐变 if (data.async) { core.setFg(data.color, data.time); + core.setFlag('color', data.color||null); this.doAction(); } else { core.setFg(data.color, data.time, function() { + core.setFlag('color', data.color||null); core.events.doAction(); }); } break; case "setWeather": // 更改天气 core.setWeather(data.name, data.level); + if (core.isset(data.name)) + core.setFlag('weather', [data.name, data.level]); + else core.setFlag('weather', null); this.doAction(); break; case "openDoor": // 开一个门,包括暗墙 @@ -1272,29 +1277,32 @@ events.prototype.changeFloor = function (floorId, stair, heroLoc, time, callback } // 不存在事件时,更改画面色调 - if (core.status.event.id == null) { - // 默认画面色调 - if (core.isset(core.floors[floorId].color)) { - var color = core.floors[floorId].color; - - // 直接变色 - core.clearMap('curtain'); - if (core.isset(color[3])) - core.setAlpha('curtain', color[3]); - else - core.setAlpha('curtain', 1); - core.fillRect('curtain', 0, 0, 416, 416, core.arrayToRGB(color)); - core.status.curtainColor = color; - } - else { - core.clearMap('curtain'); - core.setAlpha('curtain', 0); - } + var color = core.getFlag('color', null); + if (!core.isset(color) && core.isset(core.floors[floorId].color)) { + color = core.floors[floorId].color; + } + if (core.isset(color)) { + // 直接变色 + core.clearMap('curtain'); + if (core.isset(color[3])) + core.setAlpha('curtain', color[3]); + else + core.setAlpha('curtain', 1); + core.fillRect('curtain', 0, 0, 416, 416, core.arrayToRGB(color)); + core.status.curtainColor = color; + } + else { + core.clearMap('curtain'); + core.setAlpha('curtain', 0); } // 更改天气 - if (core.isset(core.floors[floorId].weather)) { - core.setWeather(core.floors[floorId].weather[0], core.floors[floorId].weather[1]) + var weather = core.getFlag('weather', null); + if (!core.isset(weather) && core.isset(core.floors[floorId].weather)) { + weather = core.floors[floorId].weather; + } + if (core.isset(weather)) { + core.setWeather(weather[0], weather[1]) } else core.setWeather(); @@ -1582,7 +1590,7 @@ events.prototype.checkLvUp = function () { if (!core.flags.enableLevelUp || !core.isset(core.firstData.levelUp) || core.status.hero.lv>=core.firstData.levelUp.length) return; // 计算下一个所需要的数值 - var need=core.firstData.levelUp[core.status.hero.lv].need; + var need=(core.firstData.levelUp[core.status.hero.lv]||{}).need; if (!core.isset(need)) return; if (core.status.hero.experience>=need) { // 升级 diff --git a/project/functions.js b/project/functions.js index d34b5b6c..fc0ea1af 100644 --- a/project/functions.js +++ b/project/functions.js @@ -344,7 +344,7 @@ functions_d6ad677b_427a_4623_b50f_a445a3b0ef8a = // 返回null代表可以使用 // 检查当前楼层的canUseQuickShop选项是否为false - if (core.isset(core.floors[core.status.floorId].canUseQuickShop) && !core.floors[core.status.floorId].canUseQuickShop) + if (core.floors[core.status.floorId].canUseQuickShop === false) return '当前楼层不能使用快捷商店。'; return null;