From f2648427ae9867da4d35e7b3b1a78d1b1e3876d0 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Wed, 20 Jan 2021 16:12:18 +0800 Subject: [PATCH] 修改中继营地解锁条件 --- src/actions/AdvAction.lua | 7 ++++--- src/adv/Adv.lua | 26 ++++++++++++++++---------- 2 files changed, 20 insertions(+), 13 deletions(-) diff --git a/src/actions/AdvAction.lua b/src/actions/AdvAction.lua index 204536e..4956dd8 100644 --- a/src/actions/AdvAction.lua +++ b/src/actions/AdvAction.lua @@ -137,7 +137,8 @@ function _M.startAdvRpc( agent, data ) local relayData = role:getAdvData():isHaveRelay(layer, chapterId, true) if not relayData then return 6 end -- 不是中继层 if layer ~= 1 then - if (advPass[chapterId] or 0) < relayData.floor then return 21 end + local advRelay = role:getProperty("advRelay") + if not (advRelay[chapterId] or {})[layer] then return 21 end -- 没有开放 end if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力 -- 关卡开放判断 @@ -191,7 +192,7 @@ function _M.startHangRpc(agent, data) local format = msg.format --编队 local index = msg.index or 1--时间索引id - local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId] + local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId] if not chapterData then return 1 end local campSiteData = chapterData[campId] if not campSiteData then return 1 end @@ -213,7 +214,7 @@ function _M.startHangRpc(agent, data) if AdvCommon.isEndless(chapterId) then return 5 end -- 无尽没有代理 local advRelay = role:getProperty("advRelay") - if not next(advRelay[chapterId] or {}) then return 6 end -- 没有开放 + if not (advRelay[chapterId] or {})[campSiteData.floor] then return 6 end -- 没有开放 if not role:checkAdvCount(adv_idle_energy) then return 7 end -- 是否有体力 diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 7ebeb22..36f9d58 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -140,12 +140,8 @@ function Adv:initByChapter(params) local chapter = self:isEndless() and -1 or self.chapterId if not (advRelay[chapter] or {})[self.level] then isNewRelay = true - advRelay[chapter] = advRelay[chapter] or {} - advRelay[chapter][self.level] = 1 - self.owner:updateProperty({field = "advRelay", value = advRelay}) end end - self.maps = {} self.maps[1] = AdvMap.new(self, 1, mapId, isEnter, isNewRelay) @@ -153,8 +149,6 @@ function Adv:initByChapter(params) self:initLayerTask() - - self:checkTask(Adv.TaskType.Arrive) self:checkAdvUnlock(1, self.level) @@ -168,6 +162,20 @@ function Adv:initByChapter(params) end end +function Adv:passAdvRelay() + local advRelay = self.owner:getProperty("advRelay") + local chapter = self:isEndless() and -1 or self.chapterId + if not (advRelay[chapter] or {})[self.level] then + advRelay[chapter] = advRelay[chapter] or {} + advRelay[chapter][self.level] = 1 + self.owner:updateProperty({field = "advRelay", value = advRelay}) + local relayData = self:isHaveRelay() + if relayData and relayData.award ~= "" then + self:pushBackEvent(AdvBackEventType.RelayReward, {items = self:award(relayData.award:toNumMap(), {log = {desc = "relayReward"}})}) + end + end +end + function Adv:clear() self.chapterId = nil self.level = nil @@ -1124,6 +1132,7 @@ local function clickOut(self, room, block, params, isExit) end if not self:isEndless() and (self.level >= csvdb["adv_chapterCsv"][self.chapterId].limitlevel) then --关卡结束 + self:passAdvRelay() self:over(true) else self.battle.player:triggerPassive(Passive.DOWN_LAYER) @@ -1676,10 +1685,7 @@ function Adv:clickBlock(roomId, blockId, params) if self.isRelay or checkAroundBlocks() then --开放 self:getCurMap():openBlock(roomId, blockId, true, true) if self.isRelay and self:getCurMap():isAllOpen() then -- 发放翻开的奖励 - local relayData = self:isHaveRelay() - if relayData and relayData.award ~= "" then - self:pushBackEvent(AdvBackEventType.RelayReward, {items = self:award(relayData.award:toNumMap(), {log = {desc = "relayReward"}})}) - end + self:passAdvRelay() end status = true end -- libgit2 0.21.2