Commit f2648427ae9867da4d35e7b3b1a78d1b1e3876d0
1 parent
edf2ee12
修改中继营地解锁条件
Showing
2 changed files
with
20 additions
and
13 deletions
Show diff stats
src/actions/AdvAction.lua
| @@ -137,7 +137,8 @@ function _M.startAdvRpc( agent, data ) | @@ -137,7 +137,8 @@ function _M.startAdvRpc( agent, data ) | ||
| 137 | local relayData = role:getAdvData():isHaveRelay(layer, chapterId, true) | 137 | local relayData = role:getAdvData():isHaveRelay(layer, chapterId, true) |
| 138 | if not relayData then return 6 end -- 不是中继层 | 138 | if not relayData then return 6 end -- 不是中继层 |
| 139 | if layer ~= 1 then | 139 | if layer ~= 1 then |
| 140 | - if (advPass[chapterId] or 0) < relayData.floor then return 21 end | 140 | + local advRelay = role:getProperty("advRelay") |
| 141 | + if not (advRelay[chapterId] or {})[layer] then return 21 end -- 没有开放 | ||
| 141 | end | 142 | end |
| 142 | if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力 | 143 | if not role:checkAdvCount(relayData.supply) then return 2 end -- 是否有体力 |
| 143 | -- 关卡开放判断 | 144 | -- 关卡开放判断 |
| @@ -191,7 +192,7 @@ function _M.startHangRpc(agent, data) | @@ -191,7 +192,7 @@ function _M.startHangRpc(agent, data) | ||
| 191 | local format = msg.format --编队 | 192 | local format = msg.format --编队 |
| 192 | local index = msg.index or 1--时间索引id | 193 | local index = msg.index or 1--时间索引id |
| 193 | 194 | ||
| 194 | - local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId] | 195 | + local chapterData = csvdb["adv_chapter_campsiteCsv"][chapterId] |
| 195 | if not chapterData then return 1 end | 196 | if not chapterData then return 1 end |
| 196 | local campSiteData = chapterData[campId] | 197 | local campSiteData = chapterData[campId] |
| 197 | if not campSiteData then return 1 end | 198 | if not campSiteData then return 1 end |
| @@ -213,7 +214,7 @@ function _M.startHangRpc(agent, data) | @@ -213,7 +214,7 @@ function _M.startHangRpc(agent, data) | ||
| 213 | if AdvCommon.isEndless(chapterId) then return 5 end -- 无尽没有代理 | 214 | if AdvCommon.isEndless(chapterId) then return 5 end -- 无尽没有代理 |
| 214 | 215 | ||
| 215 | local advRelay = role:getProperty("advRelay") | 216 | local advRelay = role:getProperty("advRelay") |
| 216 | - if not next(advRelay[chapterId] or {}) then return 6 end -- 没有开放 | 217 | + if not (advRelay[chapterId] or {})[campSiteData.floor] then return 6 end -- 没有开放 |
| 217 | 218 | ||
| 218 | 219 | ||
| 219 | if not role:checkAdvCount(adv_idle_energy) then return 7 end -- 是否有体力 | 220 | if not role:checkAdvCount(adv_idle_energy) then return 7 end -- 是否有体力 |
src/adv/Adv.lua
| @@ -140,12 +140,8 @@ function Adv:initByChapter(params) | @@ -140,12 +140,8 @@ function Adv:initByChapter(params) | ||
| 140 | local chapter = self:isEndless() and -1 or self.chapterId | 140 | local chapter = self:isEndless() and -1 or self.chapterId |
| 141 | if not (advRelay[chapter] or {})[self.level] then | 141 | if not (advRelay[chapter] or {})[self.level] then |
| 142 | isNewRelay = true | 142 | isNewRelay = true |
| 143 | - advRelay[chapter] = advRelay[chapter] or {} | ||
| 144 | - advRelay[chapter][self.level] = 1 | ||
| 145 | - self.owner:updateProperty({field = "advRelay", value = advRelay}) | ||
| 146 | end | 143 | end |
| 147 | end | 144 | end |
| 148 | - | ||
| 149 | self.maps = {} | 145 | self.maps = {} |
| 150 | self.maps[1] = AdvMap.new(self, 1, mapId, isEnter, isNewRelay) | 146 | self.maps[1] = AdvMap.new(self, 1, mapId, isEnter, isNewRelay) |
| 151 | 147 | ||
| @@ -153,8 +149,6 @@ function Adv:initByChapter(params) | @@ -153,8 +149,6 @@ function Adv:initByChapter(params) | ||
| 153 | 149 | ||
| 154 | self:initLayerTask() | 150 | self:initLayerTask() |
| 155 | 151 | ||
| 156 | - | ||
| 157 | - | ||
| 158 | self:checkTask(Adv.TaskType.Arrive) | 152 | self:checkTask(Adv.TaskType.Arrive) |
| 159 | self:checkAdvUnlock(1, self.level) | 153 | self:checkAdvUnlock(1, self.level) |
| 160 | 154 | ||
| @@ -168,6 +162,20 @@ function Adv:initByChapter(params) | @@ -168,6 +162,20 @@ function Adv:initByChapter(params) | ||
| 168 | end | 162 | end |
| 169 | end | 163 | end |
| 170 | 164 | ||
| 165 | +function Adv:passAdvRelay() | ||
| 166 | + local advRelay = self.owner:getProperty("advRelay") | ||
| 167 | + local chapter = self:isEndless() and -1 or self.chapterId | ||
| 168 | + if not (advRelay[chapter] or {})[self.level] then | ||
| 169 | + advRelay[chapter] = advRelay[chapter] or {} | ||
| 170 | + advRelay[chapter][self.level] = 1 | ||
| 171 | + self.owner:updateProperty({field = "advRelay", value = advRelay}) | ||
| 172 | + local relayData = self:isHaveRelay() | ||
| 173 | + if relayData and relayData.award ~= "" then | ||
| 174 | + self:pushBackEvent(AdvBackEventType.RelayReward, {items = self:award(relayData.award:toNumMap(), {log = {desc = "relayReward"}})}) | ||
| 175 | + end | ||
| 176 | + end | ||
| 177 | +end | ||
| 178 | + | ||
| 171 | function Adv:clear() | 179 | function Adv:clear() |
| 172 | self.chapterId = nil | 180 | self.chapterId = nil |
| 173 | self.level = nil | 181 | self.level = nil |
| @@ -1124,6 +1132,7 @@ local function clickOut(self, room, block, params, isExit) | @@ -1124,6 +1132,7 @@ local function clickOut(self, room, block, params, isExit) | ||
| 1124 | end | 1132 | end |
| 1125 | 1133 | ||
| 1126 | if not self:isEndless() and (self.level >= csvdb["adv_chapterCsv"][self.chapterId].limitlevel) then --关卡结束 | 1134 | if not self:isEndless() and (self.level >= csvdb["adv_chapterCsv"][self.chapterId].limitlevel) then --关卡结束 |
| 1135 | + self:passAdvRelay() | ||
| 1127 | self:over(true) | 1136 | self:over(true) |
| 1128 | else | 1137 | else |
| 1129 | self.battle.player:triggerPassive(Passive.DOWN_LAYER) | 1138 | self.battle.player:triggerPassive(Passive.DOWN_LAYER) |
| @@ -1676,10 +1685,7 @@ function Adv:clickBlock(roomId, blockId, params) | @@ -1676,10 +1685,7 @@ function Adv:clickBlock(roomId, blockId, params) | ||
| 1676 | if self.isRelay or checkAroundBlocks() then --开放 | 1685 | if self.isRelay or checkAroundBlocks() then --开放 |
| 1677 | self:getCurMap():openBlock(roomId, blockId, true, true) | 1686 | self:getCurMap():openBlock(roomId, blockId, true, true) |
| 1678 | if self.isRelay and self:getCurMap():isAllOpen() then -- 发放翻开的奖励 | 1687 | if self.isRelay and self:getCurMap():isAllOpen() then -- 发放翻开的奖励 |
| 1679 | - local relayData = self:isHaveRelay() | ||
| 1680 | - if relayData and relayData.award ~= "" then | ||
| 1681 | - self:pushBackEvent(AdvBackEventType.RelayReward, {items = self:award(relayData.award:toNumMap(), {log = {desc = "relayReward"}})}) | ||
| 1682 | - end | 1688 | + self:passAdvRelay() |
| 1683 | end | 1689 | end |
| 1684 | status = true | 1690 | status = true |
| 1685 | end | 1691 | end |