46fac6f1
zhouahaihai
酱料
|
1
2
|
local Passive = require "adv.AdvPassive"
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
3
4
|
local AdvCommon = require "adv.AdvCommon"
local AdvMap = require "adv.AdvMap"
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
5
|
local Buff = require "adv.AdvBuff"
|
46fac6f1
zhouahaihai
酱料
|
6
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
7
|
local Adv = class("Adv")
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
8
9
10
|
local AdvTask = import(".AdvTask") --任务相关数据搞出去
AdvTask.bind(Adv)
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
11
12
13
14
15
16
|
function Adv:ctor(owner)
assert(owner, "Adv instance must have owner(role)")
self.owner = owner
self.maps = {}
self.battle = nil
self.backEvents = {} --发给客户端的事件组
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
17
18
19
20
21
|
self.advTask = self.owner:getProperty("advTask")
self.advMTask = self.owner:getProperty("advMTask")
self.advTaskChange = false -- 任务改变才更新
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
22
|
self:initByInfo(self.owner:getProperty("advInfo"))
|
46fac6f1
zhouahaihai
酱料
|
23
24
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
25
26
27
28
29
30
|
--初始化adv 信息
function Adv:initByInfo(advInfo)
if not next(advInfo) then return end --还没有 开始新地图
self.chapterId = advInfo.chapterId
self.level = advInfo.level or 1
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
31
|
self.round = advInfo.round or 0
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
32
33
34
|
self.score = advInfo.score or {}
self.lastEnemyId = advInfo.lastEId or 1
self.mapStack = advInfo.mstack or {}
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
35
|
self.lchoose = advInfo.lch or {}
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
36
37
38
|
self.maps = {}
for id, map in ipairs(advInfo.maps or {}) do
self.maps[id] = AdvMap.new(self, id, map)
|
46fac6f1
zhouahaihai
酱料
|
39
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
40
41
|
self:initBattle()
|
46fac6f1
zhouahaihai
酱料
|
42
43
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
44
45
|
-- 随机新的地图
function Adv:initByChapter(chapterId, level, isToNext, notNotify)
|
b176d7d3
zhouhaihai
冒险成就
|
46
47
48
49
50
51
52
|
if not self.chapterId then -- 开始新的章节
self.chapterId = chapterId
self:checkAchievement(Adv.AchievType.StartBattle, 1)
elseif chapterId ~= self.chapterId then -- 正常不会出现
return
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
53
|
self.level = level or 1
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
54
|
self.round = 0
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
55
56
57
|
self.score = self.score or {}
self.lastEnemyId = 1
self.mapStack = {1} -- 最后一个为当前的地图
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
58
|
self.lchoose = self.lchoose or {}
|
f4c65591
zhouhaihai
抽奖
|
59
60
|
self.owner._advWheelSurfCount = nil -- 抽奖进行次数
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
61
62
63
64
|
-- 随机出地图
local mapId = self:randomMapId(chapterId, level)
self.maps = {}
self.maps[1] = AdvMap.new(self, 1, mapId)
|
46fac6f1
zhouahaihai
酱料
|
65
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
66
67
|
if isToNext then
self:scoreChange(AdvScoreType.Level) --增加层级加分
|
46fac6f1
zhouahaihai
酱料
|
68
|
end
|
46fac6f1
zhouahaihai
酱料
|
69
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
70
71
|
self:initBattle()
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
72
73
74
|
self:initLayerTask()
self:checkTask(Adv.TaskType.Arrive)
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
75
76
|
if not notNotify then
self:saveDB(notNotify)
|
1607a7f0
zhouahaihai
冒险事件 new
|
77
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
78
|
end
|
b0fe1817
zhouahaihai
冒险分数
|
79
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
80
81
82
83
|
function Adv:clear()
self.chapterId = nil
self.level = nil
self.score = {}
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
84
|
self.round = 0
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
85
86
|
self.lastEnemyId = 1
self.mapStack = {}
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
87
|
self.lchoose = {}
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
88
89
90
|
self.maps = {}
self.battle = nil
end
|
b0fe1817
zhouahaihai
冒险分数
|
91
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
92
93
94
|
function Adv:saveDB(notNotify)
local advInfo, advTeam = {}, self.owner:getProperty("advTeam")
if self.chapterId then
|
46fac6f1
zhouahaihai
酱料
|
95
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
96
97
|
advInfo.chapterId = self.chapterId
advInfo.level = self.level
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
98
|
advInfo.round = self.round
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
99
100
101
|
advInfo.score = self.score
advInfo.lastEId = self.lastEnemyId
advInfo.mstack = self.mapStack
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
102
|
advInfo.lch = self.lchoose
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
103
|
advInfo.maps = {}
|
1607a7f0
zhouahaihai
冒险事件 new
|
104
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
105
|
self.battle:saveDB()
|
1607a7f0
zhouahaihai
冒险事件 new
|
106
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
107
108
|
for id , map in ipairs(self.maps) do
advInfo.maps[id] = map:getDB()
|
46fac6f1
zhouahaihai
酱料
|
109
|
end
|
46fac6f1
zhouahaihai
酱料
|
110
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
111
|
advTeam.player = self.battle.player:getDB()
|
46fac6f1
zhouahaihai
酱料
|
112
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
113
114
|
else
advTeam.player = nil
|
46fac6f1
zhouahaihai
酱料
|
115
|
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
116
117
|
self:updateTask(notNotify)
|
b176d7d3
zhouhaihai
冒险成就
|
118
|
self:updateAchievement(notNotify)
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
119
|
self.owner:updateProperties({advInfo = advInfo, advTeam = advTeam}, notNotify)
|
46fac6f1
zhouahaihai
酱料
|
120
121
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
122
123
124
125
|
function Adv:initBattle()
self.battle = require("adv.AdvBattle").new(self)
for _, passiveC in ipairs(self.cachePassiveEvent or {}) do
self.battle:triggerPassive(passiveC[1], passiveC[2])
|
46fac6f1
zhouahaihai
酱料
|
126
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
127
|
self.cachePassiveEvent = {}
|
46fac6f1
zhouahaihai
酱料
|
128
129
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
130
131
132
133
134
135
136
|
function Adv:triggerPassive(condType, params)
self.cachePassiveEvent = self.cachePassiveEvent or {}
if not self.battle then
table.insert(self.cachePassiveEvent, {condType, params})
else
self.battle:triggerPassive(condType, params)
end
|
46fac6f1
zhouahaihai
酱料
|
137
138
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
139
140
|
function Adv:getCurMap()
return self.maps[self.mapStack[#self.mapStack]]
|
46fac6f1
zhouahaihai
酱料
|
141
142
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
143
144
|
function Adv:getCurMapIdx()
return self.mapStack[#self.mapStack]
|
46fac6f1
zhouahaihai
酱料
|
145
146
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
147
148
149
150
151
|
function Adv:getRoom(roomId, mapIdx)
mapIdx = mapIdx or self:getCurMapIdx()
local map = self.maps[mapIdx]
if map then
return map.rooms[roomId]
|
36c30c5c
zhouahaihai
冒险
|
152
|
end
|
46fac6f1
zhouahaihai
酱料
|
153
154
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
155
156
157
158
|
function Adv:getBlock(roomId, blockId, mapIdx)
local room = self:getRoom(roomId, mapIdx)
if room then
return room.blocks[blockId]
|
c0b7797f
zhouhaihai
陷阱、点击生效点
|
159
|
end
|
46fac6f1
zhouahaihai
酱料
|
160
161
162
163
|
end
|
46fac6f1
zhouahaihai
酱料
|
164
165
|
--关卡通关,非层 score < 0 失败
function Adv:over(success)
|
b0fe1817
zhouahaihai
冒险分数
|
166
|
local score = self:getScore()
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
167
|
local scoreInfo = self.score
|
00115a7a
zhouahaihai
奖励发放
|
168
|
local reward
|
46fac6f1
zhouahaihai
酱料
|
169
|
if success then
|
09be9059
zhouhaihai
冒险接口
|
170
|
reward = self.owner:award(self.owner:getProperty("advItems"):toNumMap())
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
171
|
self.owner:checkTaskEnter(self.owner.TaskType.AdvPass, {id = self.chapterId})
|
b176d7d3
zhouhaihai
冒险成就
|
172
173
174
175
176
177
178
179
180
181
182
183
184
|
-- 冒险队等级升一下子
local advL = self.owner:getProperty("advL")
advL[2] = (advL[2] or 0) + 1
for level = ((advL[1] or 0) + 1), #csvdb["adv_rankCsv"] do
local ldata = csvdb["adv_rankCsv"][level]
if ldata.unlock >= advL[2] then
advL[1] = level
self.owner:award(ldata.reward)
end
end
self.owner:updateProperty("advL", advL)
|
f4c65591
zhouhaihai
抽奖
|
185
186
187
|
if self.owner:isFuncOpen(FuncOpenType.AdvWheelSurf) then
self.owner._advWheelSurfCount = 0 -- 抽奖进行次数
end
|
46fac6f1
zhouahaihai
酱料
|
188
|
end
|
46fac6f1
zhouahaihai
酱料
|
189
|
self:clear()
|
00115a7a
zhouahaihai
奖励发放
|
190
|
|
bedca62d
zhouahaihai
冒险
|
191
|
self.owner:updateProperty({field = "advItems", value = ""})
|
00115a7a
zhouahaihai
奖励发放
|
192
|
|
b0fe1817
zhouahaihai
冒险分数
|
193
|
self:backEnd(success, score, scoreInfo, reward)
|
46fac6f1
zhouahaihai
酱料
|
194
195
|
end
|
ec87b4a5
zhouahaihai
冒险 完善
|
196
|
function Adv:exit()
|
4b7c7c96
zhouahaihai
增加 清空 挂机 冒险gm 角色经验
|
197
|
self:over(false)
|
ec87b4a5
zhouahaihai
冒险 完善
|
198
199
200
|
self:saveDB()
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
201
202
203
204
205
|
function Adv:randomMapId(chapterId, level)
local chapterData = csvdb["adv_chapterCsv"][chapterId]
if not chapterData then
error("chapterId " .. chapterId .. " dont exist!")
return
|
46fac6f1
zhouahaihai
酱料
|
206
|
end
|
8da953a7
zhouhaihai
无尽模式
|
207
208
209
210
211
212
213
214
215
216
|
if AdvCommon.isEndless(chapterId) then
level = level % chapterData.limitlevel
if level == 0 then
level = chapterData.limitlevel
end
else
if level > chapterData.limitlevel then
error("level overflow!")
return
end
|
46fac6f1
zhouahaihai
酱料
|
217
|
end
|
8da953a7
zhouhaihai
无尽模式
|
218
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
219
220
|
--随出地图Id
local raw_pool = chapterData.mapid:toArray(true, "=")
|
46fac6f1
zhouahaihai
酱料
|
221
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
222
223
224
|
local lastMapIds = {}
for id, map in ipairs(self.maps or {}) do
lastMapIds[map.mapId] = 1
|
46fac6f1
zhouahaihai
酱料
|
225
|
end
|
02c4de8d
zhouahaihai
增加 固有技
|
226
|
|
46fac6f1
zhouahaihai
酱料
|
227
|
local pool = {}
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
228
229
230
231
232
|
for _, mapId in ipairs(raw_pool) do
local temp = csvdb["mapCsv"][mapId]
if temp and not lastMapIds[mapId] then
if AdvCommon.checkIsIn(level, temp.leveltype, temp.levellimit) then
table.insert(pool, mapId)
|
46fac6f1
zhouahaihai
酱料
|
233
234
235
|
end
end
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
236
237
238
|
if not next(pool) then
error("mapIds is empty!")
return
|
46fac6f1
zhouahaihai
酱料
|
239
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
240
|
return pool[math.randomInt(1, #pool)]
|
46fac6f1
zhouahaihai
酱料
|
241
242
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
243
|
|
46fac6f1
zhouahaihai
酱料
|
244
245
|
-- 在冒险中获得的物品都发放在冒险背包内
function Adv:award(gift, params)
|
8c199cec
zhengshouren
简化物品奖励接口,设置默认参数
|
246
|
params = params or {}
|
46fac6f1
zhouahaihai
酱料
|
247
248
249
250
251
252
253
254
255
256
|
local tgift = {}
if type(gift) == "string" then
for _, one in pairs(gift:toTableArray(true)) do
tgift[one[1]] = (tgift[one[1]] or 0) + one[2]
end
else
tgift = gift
end
local items = self.owner:getProperty("advItems")
for itemId, count in pairs(tgift) do
|
b0fe1817
zhouahaihai
冒险分数
|
257
258
|
if count > 0 then
self:scoreChange(AdvScoreType.Item, {itemId, count})
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
259
|
self:checkTask(Adv.TaskType.Item, count, itemId)
|
b176d7d3
zhouhaihai
冒险成就
|
260
|
self:checkAchievement(Adv.AchievType.GetItem, count, itemId)
|
b0fe1817
zhouahaihai
冒险分数
|
261
|
end
|
46fac6f1
zhouahaihai
酱料
|
262
263
264
265
266
267
268
269
270
|
local origin = items:getv(itemId, 0)
local nums = origin + count
if nums <= 0 then
items = items:delk(itemId)
nums = 0
else
items = items:incrv(itemId, count)
end
end
|
9cffb42b
zhouahaihai
抉择点 建筑
|
271
|
|
46fac6f1
zhouahaihai
酱料
|
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
|
self.owner:updateProperty({field = "advItems", value = items, notNotify = params.notNotify})
return tgift
end
-- 消耗物品 优先冒险背包 --check 只是检查够不够
function Adv:cost(item, params, check)
local items = self.owner:getProperty("advItems")
local less = {}
local advCost = {}
for itemId, count in pairs(item) do
advCost[itemId] = - math.min(items:getv(itemId, 0), count)
if advCost[itemId] == 0 then
advCost[itemId] = nil
end
local last = items:getv(itemId, 0) - count
if last < 0 then
less[itemId] = -last
end
end
if next(less) and not self.owner:checkItemEnough(less) then return end --不够
if check then return true end
self:award(advCost, params)
self.owner:costItems(less, params)
return true
end
--事件点击处理
local function clickOut(self, room, block, params)
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
302
303
304
305
306
|
if self:getCurMap():checkOver() then --检查是否可以出去了
if #self.mapStack > 1 then -- 处于夹层中
table.remove(self.mapStack) --退出夹层
self:backLayer()
else --处于底层
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
307
308
|
local advPass = self.owner:getProperty("advPass")
|
4d943586
zhouhaihai
直通 advt gm
|
309
|
|
8da953a7
zhouhaihai
无尽模式
|
310
311
312
313
314
315
316
317
318
|
if AdvCommon.isEndless(self.chapterId) then
-- 刷新最高层
if self.owner:getProperty("advElM") < self.level then
self.owner:updateProperty({field = "advElM", value = self.level})
end
else
if self.level > (advPass[self.chapterId] or 0) then
self.owner:changeUpdates({{type = "advPass", field = self.chapterId, value = self.level}})
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
319
320
|
end
if params.relay then
|
4d943586
zhouhaihai
直通 advt gm
|
321
|
if self.level % globalCsv.adv_can_out_layer_pre ~= 0 or not self.owner:isFuncOpen(FuncOpenType.AdvRelay) then return end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
322
|
end
|
b176d7d3
zhouhaihai
冒险成就
|
323
324
|
self:checkAchievement(Adv.AchievType.OverWin, 1, self.level)
|
51718558
zhouhaihai
中继层初始经验
|
325
|
local levellimit = csvdb["adv_chapterCsv"][self.chapterId].limitlevel
|
8da953a7
zhouhaihai
无尽模式
|
326
|
if params.relay or (not AdvCommon.isEndless(self.chapterId) and (self.level >= levellimit or not self.owner:advChapterIsOpen(self.chapterId, self.level + 1))) then --关卡结束
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
327
328
329
330
331
|
self:over(true)
else
self:initByChapter(self.chapterId, self.level + 1, true, true)
self:backNext() --下一关
end
|
b176d7d3
zhouhaihai
冒险成就
|
332
|
|
46fac6f1
zhouahaihai
酱料
|
333
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
334
|
|
46fac6f1
zhouahaihai
酱料
|
335
336
337
338
339
340
|
return true
end
end
--战斗 普通攻击
local function clickMonster(self, room, block, params)
|
12f7b52c
zhouhaihai
冒险战斗
|
341
|
self.battle:battleBegin(room.roomId, block.blockId, params)
|
46fac6f1
zhouahaihai
酱料
|
342
343
344
|
return true
end
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
345
|
local function chooseCommon(self, room, block, chooseData, choose)
|
46fac6f1
zhouahaihai
酱料
|
346
347
348
349
|
if not chooseData or not chooseData["button".. choose .."cond"] then return end
local cond = chooseData["button".. choose .."cond"]:toArray(true, "=")
local checkCond = {
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
350
351
352
353
|
-- 没有条件
[0] = function()
return true
end,
|
46fac6f1
zhouahaihai
酱料
|
354
355
356
357
358
359
360
361
|
-- 拥有道具
[1] = function()
if self:cost({[cond[2]] = cond[3]}, {}, true) then
return true
end
end,
-- xx角色(todo 队长)
[2] = function()
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
362
363
364
|
local hero = self.owner.heros[self.owner:getProperty("advTeam").leader]
if hero and hero:getProperty("type") == cond[2] then
return true
|
46fac6f1
zhouahaihai
酱料
|
365
366
367
368
|
end
end,
--消灭所有怪
[3] = function()
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
369
|
for _, room in pairs(self:getCurMap().rooms) do
|
4ae223df
zhouahaihai
Buff bug
|
370
|
for _, block in pairs(room.blocks) do
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
371
|
if block:isMonster() then
|
46fac6f1
zhouahaihai
酱料
|
372
373
374
375
376
377
378
379
380
381
382
383
|
return
end
end
end
return true
end,
--制定属性 >
[4] = function()
if (self.battle.player[AttsEnumEx[cond[2]]] or 0) > cond[3] then
return true
end
end,
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
384
385
386
387
388
389
|
-- 提交一个物品
[5] = function ()
if self:cost({[cond[2]] = cond[3]}, {}) then
return true
end
end,
|
46fac6f1
zhouahaihai
酱料
|
390
|
}
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
391
392
|
assert(not cond[1] or checkCond[cond[1]], "error cond, event_[link]chooseCsv id :" .. block.event.id)
|
9cffb42b
zhouahaihai
抉择点 建筑
|
393
|
if cond[1] and not checkCond[cond[1]]() then return end
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
394
|
local clearBlock = chooseData.keep ~= 1
|
e10edb5f
zhouahaihai
冒险事件新
|
395
396
397
398
399
400
|
local effects = chooseData["button".. choose .."effect"]:toTableArray(true)
for _, effect in ipairs(effects) do
if effect[1] == 1 then
local reward = csvdb["event_dropCsv"][effect[2]]["range"]:randWeight(true)
effect[2] = reward[1]
effect[3] = reward[2]
|
46fac6f1
zhouahaihai
酱料
|
401
|
end
|
e10edb5f
zhouahaihai
冒险事件新
|
402
403
404
405
406
407
408
409
410
|
local doEffect = {
[1] = function() -- 获得某道具N个
self:backReward(self:award({[effect[2]] = effect[3]}, {}))
end,
[2] = function() --获得冒险buff
self.battle.player:addBuff(effect[2])
end,
[3] = function() --发现怪物
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
411
|
self:getCurMap():addNewMonsterRand(effect[2], {room, block})
|
e10edb5f
zhouahaihai
冒险事件新
|
412
413
414
415
416
|
clearBlock = false
end,
[4] = function() --无事发生
end
}
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
417
|
assert(doEffect[effect[1]], "error effect, event_[link]chooseCsv id :" .. block.event.id)
|
e10edb5f
zhouahaihai
冒险事件新
|
418
419
|
doEffect[effect[1]]()
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
420
|
self:checkTask(Adv.TaskType.Choose, 1, block.event.id)
|
b176d7d3
zhouhaihai
冒险成就
|
421
|
self:checkAchievement(Adv.AchievType.Choose, 1, block.event.id)
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
|
return true, clearBlock
end
local function clickChoose(self, room, block, params)
local choose = params.choose
local chooseData = csvdb["event_chooseCsv"][block.event.id]
local status, clearBlock = chooseCommon(self, room, block, chooseData, choose)
if not status then return end
if clearBlock then
block:clear()
end
return true
end
local function clickLinkChoose(self, room, block, params)
local choose = params.choose
local chooseData = csvdb["event_linkchooseCsv"][block.event.id]
local status, clearBlock = chooseCommon(self, room, block, chooseData, choose)
if not status then return end
-- 完成统计次数
local idx = block.event.id % 10
if idx == 9 or not csvdb["event_linkchooseCsv"][block.event.id + 1] then --全部完成
local startId = math.floor(block.event.id / 10) * 10 + 1
self.lchoose[startId] = (self.lchoose[startId] or 0) + 1
|
b176d7d3
zhouhaihai
冒险成就
|
448
|
self:checkAchievement(Adv.AchievType.LinkChoose, 1, startId)
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
449
450
451
|
else
self.lchoose.ing = block.event.id + 1 --后面会出现后继事件
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
452
|
|
02c4de8d
zhouahaihai
增加 固有技
|
453
|
if clearBlock then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
454
|
block:clear()
|
02c4de8d
zhouahaihai
增加 固有技
|
455
|
end
|
b176d7d3
zhouhaihai
冒险成就
|
456
|
|
46fac6f1
zhouahaihai
酱料
|
457
458
459
460
461
462
|
return true
end
local function clickDrop(self, room, block, params)
local reward = {}
if not block.event.item then return end
|
8c199cec
zhengshouren
简化物品奖励接口,设置默认参数
|
463
|
local reward = self:award({[block.event.item[1]] = block.event.item[2]})
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
464
|
block:clear()
|
46fac6f1
zhouahaihai
酱料
|
465
466
467
468
469
470
471
472
473
474
475
476
|
self:backReward(reward)
return true
end
local function clickTrader(self, room, block, params)
local buyId = params.id
local traderData = csvdb["event_traderCsv"][block.event.id]
if not traderData then return end -- 偷偷改表了
if not block.event.shop or not block.event.shop[buyId] then return end
if (block.event.status or ""):getv(buyId, 0) == 1 then return end -- 买过了
|
e10edb5f
zhouahaihai
冒险事件新
|
477
|
if not self:cost({[traderData.type] = block.event.shop[buyId][3]}, {}) then return end --不够
|
46fac6f1
zhouahaihai
酱料
|
478
|
|
8c199cec
zhengshouren
简化物品奖励接口,设置默认参数
|
479
|
local reward = self:award({[block.event.shop[buyId][1]] = block.event.shop[buyId][2]})
|
46fac6f1
zhouahaihai
酱料
|
480
|
block.event.status = block.event.status:setv(buyId, 1)
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
481
|
self:checkTask(Adv.TaskType.Shop, 1, block.event.id)
|
b176d7d3
zhouhaihai
冒险成就
|
482
|
self:checkAchievement(Adv.AchievType.Shop, 1, block.event.id)
|
46fac6f1
zhouahaihai
酱料
|
483
484
485
486
487
488
489
490
|
self:backReward(reward)
return true
end
local function clickBuild(self, room, block, params)
local buildData = csvdb["event_buildingCsv"][block.event.id]
if not buildData then return end-- 偷偷改表了
if not block.event.effect then return end -- 没有效果 气人不
|
02c4de8d
zhouahaihai
增加 固有技
|
491
|
local clearBlock = true
|
46fac6f1
zhouahaihai
酱料
|
492
493
494
495
496
497
498
499
500
501
|
local effect = block.event.effect
--todo 效果生效
local doEffect = {
[1] = function() -- 获得某道具N个
self:backReward(self:award({[effect[2]] = effect[3]}, {}))
end,
[2] = function() --获得冒险buff
self.battle.player:addBuff(effect[2])
end,
[3] = function() --发现怪物
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
502
|
self:getCurMap():addNewMonsterRand(effect[2], {room, block})
|
02c4de8d
zhouahaihai
增加 固有技
|
503
|
clearBlock = false
|
46fac6f1
zhouahaihai
酱料
|
504
505
506
507
508
|
end,
[4] = function() --无事发生
end
}
assert(doEffect[effect[1]], "error effect, event_buildingCsv id :" .. block.event.id)
|
e10edb5f
zhouahaihai
冒险事件新
|
509
|
if not self:cost(buildData.required:toNumMap(), {}) then return end
|
46fac6f1
zhouahaihai
酱料
|
510
|
doEffect[effect[1]]()
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
511
|
self:checkTask(Adv.TaskType.Build, 1, block.event.id)
|
b176d7d3
zhouhaihai
冒险成就
|
512
|
self:checkAchievement(Adv.AchievType.Build, 1, block.event.id)
|
02c4de8d
zhouahaihai
增加 固有技
|
513
|
if clearBlock then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
514
|
block:clear()
|
02c4de8d
zhouahaihai
增加 固有技
|
515
|
end
|
46fac6f1
zhouahaihai
酱料
|
516
517
518
|
return true
end
|
c0b7797f
zhouhaihai
陷阱、点击生效点
|
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
|
local function clickClick(self, room, block, params)
local clickData = csvdb["event_clickCsv"][block.event.id]
if not clickData then return end
local clearBlock = true
local doEffect = {
[1] = function() -- 技能
for _, skillId in ipairs(clickData.effect:toArray(true, "=")) do
self.battle.player:releaseSkill(skillId)
end
end,
[2] = function() -- dropId
local reward = {}
for _, dropId in ipairs(clickData.effect:toArray(true, "=")) do
local item = csvdb["event_dropCsv"][dropId]["range"]:randWeight(true)
reward[item[1]] = (reward[item[1]] or 0) + reward[item[2]]
end
self:backReward(self:award(reward, {}))
end,
}
if clearBlock then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
539
|
block:clear()
|
c0b7797f
zhouhaihai
陷阱、点击生效点
|
540
|
end
|
f20cc9ca
zhouhaihai
点击点返回清空信息
|
541
|
return true
|
c0b7797f
zhouhaihai
陷阱、点击生效点
|
542
543
|
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
544
545
546
547
548
549
550
551
552
553
554
555
|
local function clickLayer(self, room, block, params)
if block.event.mapIdx then
table.insert(self.mapStack, block.event.mapIdx) --进入夹层
else
--生成夹层
local mapId = csvdb["event_layerCsv"][block.event.id].effect
local mapIdx = #self.maps + 1
block.event.mapIdx = mapIdx
table.insert(self.mapStack, mapIdx)
self.maps[mapIdx] = AdvMap.new(self, mapIdx, mapId)
self.battle:initMapEnemys(mapIdx)
|
b176d7d3
zhouhaihai
冒险成就
|
556
|
self:checkAchievement(Adv.AchievType.EnterILayer, 1, mapId)
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
557
558
559
560
561
|
end
self:backLayer()
return true
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
562
563
564
565
566
567
568
|
local function clickTask(self, room, block, params)
if self:addTask(block.event.id) then --增加任务
block:clear()
return true
end
end
|
46fac6f1
zhouahaihai
酱料
|
569
570
571
572
573
|
local eventCallFunc = {
[AdvEventType.Out] = clickOut,
[AdvEventType.BOSS] = clickMonster,
[AdvEventType.Monster] = clickMonster,
[AdvEventType.Choose] = clickChoose,
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
574
|
[AdvEventType.LinkChoose] = clickLinkChoose,
|
46fac6f1
zhouahaihai
酱料
|
575
576
577
|
[AdvEventType.Drop] = clickDrop,
[AdvEventType.Trader] = clickTrader,
[AdvEventType.Build] = clickBuild,
|
c0b7797f
zhouhaihai
陷阱、点击生效点
|
578
|
[AdvEventType.Click] = clickClick,
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
579
|
[AdvEventType.Layer] = clickLayer,
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
580
|
[AdvEventType.Task] = clickTask,
|
46fac6f1
zhouahaihai
酱料
|
581
582
583
584
585
|
}
--点击处理 roomId, blockId
--params 某些事件需要的客户端传递的参数
function Adv:clickBlock(roomId, blockId, params)
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
586
587
588
|
local map = self:getCurMap()
local room = self:getRoom(roomId)
local block = self:getBlock(roomId, blockId)
|
46fac6f1
zhouahaihai
酱料
|
589
590
|
if not block then return end
|
46fac6f1
zhouahaihai
酱料
|
591
|
local status = false
|
36c30c5c
zhouahaihai
冒险
|
592
|
local clickEvent = false
|
46fac6f1
zhouahaihai
酱料
|
593
|
if not block.isOpen then
|
36c30c5c
zhouahaihai
冒险
|
594
595
|
local canOpen = false --如果未开放是否可以开放
local hadMonster = false -- 周围是否有解锁的怪未击败
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
596
|
for _, one in ipairs(map:getAroundBlocks(room, block)) do
|
36c30c5c
zhouahaihai
冒险
|
597
598
|
local _room, _block = one[1], one[2]
if _block.isOpen then canOpen = true end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
599
|
if _block.isOpen and _block:isMonster() then
|
36c30c5c
zhouahaihai
冒险
|
600
601
602
|
hadMonster = true
end
end
|
46fac6f1
zhouahaihai
酱料
|
603
|
if canOpen and not hadMonster then --开放
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
604
|
room:openBlock(block)
|
46fac6f1
zhouahaihai
酱料
|
605
606
607
|
status = true
end
else
|
36c30c5c
zhouahaihai
冒险
|
608
|
clickEvent = true
|
46fac6f1
zhouahaihai
酱料
|
609
610
611
612
613
|
--点了空地
if not block.event then
return
end
--可点击的事件
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
614
|
if not room.isBossRoom or block:isBoss() then
|
46fac6f1
zhouahaihai
酱料
|
615
|
if eventCallFunc[block.event.etype] then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
616
|
status = eventCallFunc[block:getEventType()](self, room, block, params)
|
46fac6f1
zhouahaihai
酱料
|
617
618
619
|
end
end
end
|
39a6e08b
suhongyang
冒险战斗内逻辑调整
|
620
|
local needChange = true
|
ae20365b
suhongyang
Revert "修改冒险战斗逻辑"
|
621
|
if clickEvent and block.event then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
622
|
if block:getEventType() == AdvEventType.Out then
|
ae20365b
suhongyang
Revert "修改冒险战斗逻辑"
|
623
624
|
needChange = false
end
|
39a6e08b
suhongyang
冒险战斗内逻辑调整
|
625
626
|
end
if status and needChange then --出去了就不计算回合了
|
46fac6f1
zhouahaihai
酱料
|
627
628
629
|
self:backBlockChange(roomId, blockId)
self:afterRound()
end
|
36c30c5c
zhouahaihai
冒险
|
630
|
self:saveDB()
|
46fac6f1
zhouahaihai
酱料
|
631
632
633
|
return status
end
|
46fac6f1
zhouahaihai
酱料
|
634
635
636
637
638
639
640
641
642
643
644
645
646
647
|
--使用道具产生效果
function Adv:useItem(itemId, count, target)
count = count or 1
local itemData = csvdb["adv_itemCsv"][itemId]
if not itemData then return end
--重置数量
if itemData["function"] == 0 or itemData["function"] == 2 then count = 1 end
if not self:cost({[itemId] = count}, {}, true) then return true end
--消耗
if itemData["function"] == 0 or itemData["function"] == 1 then
self:cost({[itemId] = count}, {})
end
--生效
if itemData.type == 1 or itemData.type == 0 then --技能
|
d27ad5e0
suhongyang
使用营养技
|
648
|
self.battle.player:releaseSkill(itemData.effect, target)
|
46fac6f1
zhouahaihai
酱料
|
649
650
651
652
653
654
655
|
elseif itemData.type == 2 then --掉落
local item = csvdb["event_dropCsv"][itemData.effect]["range"]:randWeight(true)
self:backReward(self:award({[item[1]] = item[2]}, {}))
else
return
end
|
b176d7d3
zhouhaihai
冒险成就
|
656
657
|
self:checkAchievement(Adv.AchievType.UseItem, count, itemId)
|
46fac6f1
zhouahaihai
酱料
|
658
|
self:afterRound()
|
36c30c5c
zhouahaihai
冒险
|
659
|
self:saveDB()
|
46fac6f1
zhouahaihai
酱料
|
660
661
662
|
return true
end
|
d27ad5e0
suhongyang
使用营养技
|
663
664
665
666
|
--使用技能
function Adv:usePotion(potionId, potionLevel, target)
-- cost
local potionData = csvdb["adv_potionCsv"][potionId][potionLevel]
|
d27ad5e0
suhongyang
使用营养技
|
667
668
669
670
671
672
673
674
|
local enemy = self.battle:getEnemy(target.roomId, target.blockId)
if not enemy then return end
--生效
if potionData.type == 1 or potionData.type == 0 then --技能
self.battle.player:releaseSkill(potionData.effect, enemy)
elseif potionData.type == 2 then --掉落
local item = csvdb["event_dropCsv"][potionData.effect]["range"]:randWeight(true)
self:backReward(self:award({[item[1]] = item[2]}, {}))
|
46fac6f1
zhouahaihai
酱料
|
675
|
else
|
d27ad5e0
suhongyang
使用营养技
|
676
|
return
|
46fac6f1
zhouahaihai
酱料
|
677
|
end
|
46fac6f1
zhouahaihai
酱料
|
678
|
self:afterRound()
|
36c30c5c
zhouahaihai
冒险
|
679
|
self:saveDB()
|
46fac6f1
zhouahaihai
酱料
|
680
681
682
|
return true
end
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
|
-- 地图上物品变化
function Adv:mapItemChange(ctype)
local clist = csvdb["transform_itemCsv"][ctype]
if clist then
for roomId, room in pairs(self:getCurMap().rooms) do
for blockId, block in pairs(room.blocks) do
if block:getEventType() == AdvEventType.Drop and block.event.item then
local id = block.event.item[1]
local changeTo = nil
if clist[id] then
changeTo = {clist[id].toId, clist[id].num}
elseif clist[-1] then
changeTo = {clist[-1].toId, clist[-1].num}
end
if changeTo and changeTo[1] ~= 0 and changeTo[2] ~= 0 then
block.event.item = changeTo
self:backBlockChange(roomId, blockId)
end
end
end
end
end
end
|
46fac6f1
zhouahaihai
酱料
|
707
|
--敌人死亡
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
708
709
|
function Adv:enemyDead(enemy, escape)
local roomId, blockId = enemy.roomId, enemy.blockId
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
710
711
712
713
|
local map = self:getCurMap()
local room = self:getRoom(roomId)
local block = self:getBlock(roomId, blockId)
if not block then return end
|
46fac6f1
zhouahaihai
酱料
|
714
|
--死了以后掉东西
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
715
716
|
if block:isMonster() then --处理死亡
if block:isBoss() then
|
36c30c5c
zhouahaihai
冒险
|
717
718
|
room.isBossRoom = false
end
|
02c4de8d
zhouahaihai
增加 固有技
|
719
|
if escape then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
720
|
block:clear()
|
02c4de8d
zhouahaihai
增加 固有技
|
721
|
else
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
722
723
|
local enemyId = block.event.id
local monsterData = csvdb["event_monsterCsv"][enemyId]
|
b0fe1817
zhouahaihai
冒险分数
|
724
|
self:scoreChange(AdvScoreType.Kill, monsterData.type)
|
6732f756
zhouhaihai
玩家升级
|
725
|
self.battle.player:addExp(monsterData.exp)
|
02c4de8d
zhouahaihai
增加 固有技
|
726
727
|
local item = block.event.item
if not item then
|
7828ffd0
zhouhaihai
冒险 连续选择点 和 地图因子
|
728
729
730
731
732
733
734
735
|
local buff = enemy:hadBuff(Buff.CHANGE_DROP)
if buff then
item = table.pack(buff:effect())
else
local dropData = csvdb["event_dropCsv"][monsterData.dropid]
item = dropData["range"]:randWeight(true)
end
|
46fac6f1
zhouahaihai
酱料
|
736
|
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
737
|
|
4b7c7c96
zhouahaihai
增加 清空 挂机 冒险gm 角色经验
|
738
|
if item[1] == 0 then
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
739
|
block:clear()
|
4b7c7c96
zhouahaihai
增加 清空 挂机 冒险gm 角色经验
|
740
|
else
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
741
742
743
744
|
block:updateEvent({
etype = AdvEventType.Drop,
item = item
})
|
4b7c7c96
zhouahaihai
增加 清空 挂机 冒险gm 角色经验
|
745
|
end
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
746
747
|
self:checkTask(Adv.TaskType.Kill, 1, enemyId)
self:checkTask(Adv.TaskType.KillAll)
|
b176d7d3
zhouhaihai
冒险成就
|
748
|
self:checkAchievement(Adv.AchievType.Kill, 1, enemyId)
|
46fac6f1
zhouahaihai
酱料
|
749
|
end
|
46fac6f1
zhouahaihai
酱料
|
750
751
752
753
|
end
self:backBlockChange(roomId, blockId)
end
|
46fac6f1
zhouahaihai
酱料
|
754
755
756
757
758
759
760
761
762
763
764
765
766
|
function Adv:pushBackEvent(btype, params)
table.insert(self.backEvents, {btype = btype, params = params})
end
function Adv:backReward(items)
self:pushBackEvent(AdvBackEventType.Reward, {items = items})
end
-- if is player enemyId is nil
--isMax 是否是改变血量上限
function Adv:backHpChange(enemyId, change, isMax)
self:pushBackEvent(AdvBackEventType.HpChange, {enemyId = enemyId, change = change, isMax = isMax})
end
|
ae9a74b5
suhongyang
返回miss,快速战斗逻辑
|
767
768
769
770
|
function Adv:backMiss(enemyId)
self:pushBackEvent(AdvBackEventType.Miss, {enemyId = enemyId})
end
|
46fac6f1
zhouahaihai
酱料
|
771
772
773
774
|
-- if is player enemyId is nil
function Adv:backAtkChange(enemyId, change)
self:pushBackEvent(AdvBackEventType.AtkChange, {enemyId = enemyId, change = change})
end
|
e996b82a
zhouahaihai
冒险增加防御属性
|
775
776
777
778
779
780
|
-- if is player enemyId is nil
function Adv:backDefChange(enemyId, change)
self:pushBackEvent(AdvBackEventType.DefChange, {enemyId = enemyId, change = change})
end
|
46fac6f1
zhouahaihai
酱料
|
781
782
783
784
785
786
|
-- if is player enemyId is nil
function Adv:backBuff(enemyId, buffId, isDel)
self:pushBackEvent(AdvBackEventType.Buff, {enemyId = enemyId, buffId = buffId, isDel = isDel})
end
-- if is player enemyId is nil
function Adv:backSkill(enemyId, skillId, receiver)
|
36c30c5c
zhouahaihai
冒险
|
787
|
self:pushBackEvent(AdvBackEventType.Skill, {enemyId = enemyId, skillId = skillId, receiver = receiver})
|
46fac6f1
zhouahaihai
酱料
|
788
789
|
end
|
4eadc2ab
suhongyang
獲得被動暫時增加log,後面可以去掉
|
790
791
792
793
794
|
-- if is player enemyId is nil
function Adv:backPassive(enemyId, passiveId)
self:pushBackEvent(AdvBackEventType.Passive, {enemyId = enemyId, passiveId = passiveId})
end
|
46fac6f1
zhouahaihai
酱料
|
795
796
797
798
|
function Adv:backNext()
self:pushBackEvent(AdvBackEventType.Next, {})
end
|
b0fe1817
zhouahaihai
冒险分数
|
799
800
|
function Adv:backEnd(success, score, scoreInfo, reward)
self:pushBackEvent(AdvBackEventType.End, {success = success, score = score, scoreInfo = scoreInfo, reward = reward})
|
46fac6f1
zhouahaihai
酱料
|
801
802
803
804
805
806
807
808
809
810
|
end
function Adv:backBlockChange(roomId, blockId)
self:pushBackEvent(AdvBackEventType.BlockChange, {roomId = roomId, blockId = blockId})
end
function Adv:backAtk(enemyId, receiver)
self:pushBackEvent(AdvBackEventType.Atk, {enemyId = enemyId, receiver = receiver})
end
|
bedca62d
zhouahaihai
冒险
|
811
812
813
814
|
function Adv:backDead(enemyId)
self:pushBackEvent(AdvBackEventType.Dead, {enemyId = enemyId})
end
|
386ca58e
zhouhaihai
优化log
|
815
816
817
|
function Adv:backTrap()
self:pushBackEvent(AdvBackEventType.Trap, {})
end
|
ec87b4a5
zhouahaihai
冒险 完善
|
818
|
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
819
820
821
822
|
function Adv:backLayer()
self:pushBackEvent(AdvBackEventType.Layer, {})
end
|
b0fe1817
zhouahaihai
冒险分数
|
823
824
825
826
827
828
829
|
function Adv:scoreChange(scoreType, pms)
local cutTypes = {}
local score = 0
cutTypes[AdvScoreType.Level] = function()
score = globalCsv.adv_score_floor
end
cutTypes[AdvScoreType.Kill] = function()
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
830
|
local chapterData = csvdb["adv_chapterCsv"][self.chapterId]
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
831
|
score = globalCsv.adv_score_monster[pms] * chapterData["reward"]
|
b0fe1817
zhouahaihai
冒险分数
|
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
|
end
cutTypes[AdvScoreType.Item] = function()
score = csvdb["itemCsv"][pms[1]].adv_score_item * pms[2]
end
cutTypes[AdvScoreType.Hurt] = function()
score = globalCsv.adv_score_hurt * pms
end
cutTypes[AdvScoreType.Block] = function()
score = globalCsv.adv_score_block
end
if cutTypes[scoreType] then
cutTypes[scoreType]()
else
return
end
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
847
848
|
self.score[scoreType] = self.score[scoreType] or 0
self.score[scoreType] = self.score[scoreType] + score
|
b0fe1817
zhouahaihai
冒险分数
|
849
850
851
|
end
function Adv:getScore()
|
43babcff
zhouhaihai
优化冒险结构 增加夹层功能
|
852
853
854
855
856
857
858
859
|
self.score[AdvScoreType.Level] = math.floor(self.score[AdvScoreType.Level] or 0)
self.score[AdvScoreType.Block] = math.floor(self.score[AdvScoreType.Block] or 0)
self.score[AdvScoreType.Hurt] = math.max(math.floor(self.score[AdvScoreType.Hurt] or 0), - (self.score[AdvScoreType.Level] + self.score[AdvScoreType.Block]))
self.score[AdvScoreType.Kill] = math.floor(self.score[AdvScoreType.Kill] or 0)
self.score[AdvScoreType.Item] = math.floor(self.score[AdvScoreType.Item] or 0)
return self.score[AdvScoreType.Level] + self.score[AdvScoreType.Block] + self.score[AdvScoreType.Hurt]
+ self.score[AdvScoreType.Kill] + self.score[AdvScoreType.Item]
|
b0fe1817
zhouahaihai
冒险分数
|
860
861
|
end
|
46fac6f1
zhouahaihai
酱料
|
862
863
|
function Adv:popBackEvents()
local events = self.backEvents
|
46fac6f1
zhouahaihai
酱料
|
864
865
866
867
868
869
|
self.backEvents = {}
return events
end
--回合事件处理
function Adv:afterRound()
|
4faef572
zhouhaihai
冒险任务,冒险扫荡, 冒险中继
|
870
|
self.round = self.round + 1
|
46fac6f1
zhouahaihai
酱料
|
871
872
873
|
if self.battle then
self.battle:afterRound()
end
|
36c30c5c
zhouahaihai
冒险
|
874
875
|
end
|
46fac6f1
zhouahaihai
酱料
|
876
|
return Adv
|