Commit 7828ffd0d78c0cb074911bc82a944efa105aa6ec
1 parent
e38b9c49
冒险 连续选择点 和 地图因子
Showing
9 changed files
with
156 additions
and
24 deletions
Show diff stats
src/GlobalVar.lua
| @@ -86,7 +86,8 @@ ItemId = { | @@ -86,7 +86,8 @@ ItemId = { | ||
| 86 | AdvSpecialStage = { | 86 | AdvSpecialStage = { |
| 87 | [1]= "In", | 87 | [1]= "In", |
| 88 | [2] = "Out", | 88 | [2] = "Out", |
| 89 | - [3] = "BOSS" | 89 | + [3] = "BOSS", |
| 90 | + [4] = "LinkChoose", | ||
| 90 | } | 91 | } |
| 91 | --客户端需要知道这个 | 92 | --客户端需要知道这个 |
| 92 | AdvEventType = { | 93 | AdvEventType = { |
| @@ -94,6 +95,7 @@ AdvEventType = { | @@ -94,6 +95,7 @@ AdvEventType = { | ||
| 94 | In = -1, --入口 | 95 | In = -1, --入口 |
| 95 | Out = -2, --出口 | 96 | Out = -2, --出口 |
| 96 | BOSS = -3, -- boss | 97 | BOSS = -3, -- boss |
| 98 | + LinkChoose = -4, -- 连续选择 | ||
| 97 | -- 普通事件(随机) | 99 | -- 普通事件(随机) |
| 98 | Choose = 1, --选择点 | 100 | Choose = 1, --选择点 |
| 99 | Drop = 2, --物品掉落点 | 101 | Drop = 2, --物品掉落点 |
src/adv/Adv.lua
| @@ -2,6 +2,7 @@ local Passive = require "adv.AdvPassive" | @@ -2,6 +2,7 @@ local Passive = require "adv.AdvPassive" | ||
| 2 | 2 | ||
| 3 | local AdvCommon = require "adv.AdvCommon" | 3 | local AdvCommon = require "adv.AdvCommon" |
| 4 | local AdvMap = require "adv.AdvMap" | 4 | local AdvMap = require "adv.AdvMap" |
| 5 | +local Buff = require "adv.AdvBuff" | ||
| 5 | 6 | ||
| 6 | local Adv = class("Adv") | 7 | local Adv = class("Adv") |
| 7 | local AdvTask = import(".AdvTask") --任务相关数据搞出去 | 8 | local AdvTask = import(".AdvTask") --任务相关数据搞出去 |
| @@ -31,6 +32,7 @@ function Adv:initByInfo(advInfo) | @@ -31,6 +32,7 @@ function Adv:initByInfo(advInfo) | ||
| 31 | self.score = advInfo.score or {} | 32 | self.score = advInfo.score or {} |
| 32 | self.lastEnemyId = advInfo.lastEId or 1 | 33 | self.lastEnemyId = advInfo.lastEId or 1 |
| 33 | self.mapStack = advInfo.mstack or {} | 34 | self.mapStack = advInfo.mstack or {} |
| 35 | + self.lchoose = advInfo.lch or {} | ||
| 34 | self.maps = {} | 36 | self.maps = {} |
| 35 | for id, map in ipairs(advInfo.maps or {}) do | 37 | for id, map in ipairs(advInfo.maps or {}) do |
| 36 | self.maps[id] = AdvMap.new(self, id, map) | 38 | self.maps[id] = AdvMap.new(self, id, map) |
| @@ -48,7 +50,7 @@ function Adv:initByChapter(chapterId, level, isToNext, notNotify) | @@ -48,7 +50,7 @@ function Adv:initByChapter(chapterId, level, isToNext, notNotify) | ||
| 48 | self.score = self.score or {} | 50 | self.score = self.score or {} |
| 49 | self.lastEnemyId = 1 | 51 | self.lastEnemyId = 1 |
| 50 | self.mapStack = {1} -- 最后一个为当前的地图 | 52 | self.mapStack = {1} -- 最后一个为当前的地图 |
| 51 | - | 53 | + self.lchoose = self.lchoose or {} |
| 52 | self.owner._advWheelSurfCount = nil -- 抽奖进行次数 | 54 | self.owner._advWheelSurfCount = nil -- 抽奖进行次数 |
| 53 | 55 | ||
| 54 | -- 随机出地图 | 56 | -- 随机出地图 |
| @@ -77,6 +79,7 @@ function Adv:clear() | @@ -77,6 +79,7 @@ function Adv:clear() | ||
| 77 | self.round = 0 | 79 | self.round = 0 |
| 78 | self.lastEnemyId = 1 | 80 | self.lastEnemyId = 1 |
| 79 | self.mapStack = {} | 81 | self.mapStack = {} |
| 82 | + self.lchoose = {} | ||
| 80 | self.maps = {} | 83 | self.maps = {} |
| 81 | self.battle = nil | 84 | self.battle = nil |
| 82 | end | 85 | end |
| @@ -91,6 +94,7 @@ function Adv:saveDB(notNotify) | @@ -91,6 +94,7 @@ function Adv:saveDB(notNotify) | ||
| 91 | advInfo.score = self.score | 94 | advInfo.score = self.score |
| 92 | advInfo.lastEId = self.lastEnemyId | 95 | advInfo.lastEId = self.lastEnemyId |
| 93 | advInfo.mstack = self.mapStack | 96 | advInfo.mstack = self.mapStack |
| 97 | + advInfo.lch = self.lchoose | ||
| 94 | advInfo.maps = {} | 98 | advInfo.maps = {} |
| 95 | 99 | ||
| 96 | self.battle:saveDB() | 100 | self.battle:saveDB() |
| @@ -315,13 +319,15 @@ local function clickMonster(self, room, block, params) | @@ -315,13 +319,15 @@ local function clickMonster(self, room, block, params) | ||
| 315 | return true | 319 | return true |
| 316 | end | 320 | end |
| 317 | 321 | ||
| 318 | -local function clickChoose(self, room, block, params) | ||
| 319 | - local choose = params.choose | ||
| 320 | - local chooseData = csvdb["event_chooseCsv"][block.event.id] | 322 | +local function chooseCommon(self, room, block, chooseData, choose) |
| 321 | if not chooseData or not chooseData["button".. choose .."cond"] then return end | 323 | if not chooseData or not chooseData["button".. choose .."cond"] then return end |
| 322 | 324 | ||
| 323 | local cond = chooseData["button".. choose .."cond"]:toArray(true, "=") | 325 | local cond = chooseData["button".. choose .."cond"]:toArray(true, "=") |
| 324 | local checkCond = { | 326 | local checkCond = { |
| 327 | + -- 没有条件 | ||
| 328 | + [0] = function() | ||
| 329 | + return true | ||
| 330 | + end, | ||
| 325 | -- 拥有道具 | 331 | -- 拥有道具 |
| 326 | [1] = function() | 332 | [1] = function() |
| 327 | if self:cost({[cond[2]] = cond[3]}, {}, true) then | 333 | if self:cost({[cond[2]] = cond[3]}, {}, true) then |
| @@ -339,7 +345,7 @@ local function clickChoose(self, room, block, params) | @@ -339,7 +345,7 @@ local function clickChoose(self, room, block, params) | ||
| 339 | [3] = function() | 345 | [3] = function() |
| 340 | for _, room in pairs(self:getCurMap().rooms) do | 346 | for _, room in pairs(self:getCurMap().rooms) do |
| 341 | for _, block in pairs(room.blocks) do | 347 | for _, block in pairs(room.blocks) do |
| 342 | - if block.event and (block.event.etype == AdvEventType.BOSS or block.event.etype == AdvEventType.Monster) then | 348 | + if block:isMonster() then |
| 343 | return | 349 | return |
| 344 | end | 350 | end |
| 345 | end | 351 | end |
| @@ -352,10 +358,17 @@ local function clickChoose(self, room, block, params) | @@ -352,10 +358,17 @@ local function clickChoose(self, room, block, params) | ||
| 352 | return true | 358 | return true |
| 353 | end | 359 | end |
| 354 | end, | 360 | end, |
| 361 | + -- 提交一个物品 | ||
| 362 | + [5] = function () | ||
| 363 | + if self:cost({[cond[2]] = cond[3]}, {}) then | ||
| 364 | + return true | ||
| 365 | + end | ||
| 366 | + end, | ||
| 355 | } | 367 | } |
| 356 | - assert(not cond[1] or checkCond[cond[1]], "error cond, event_chooseCsv id :" .. block.event.id) | 368 | + assert(not cond[1] or checkCond[cond[1]], "error cond, event_[link]chooseCsv id :" .. block.event.id) |
| 369 | + | ||
| 357 | if cond[1] and not checkCond[cond[1]]() then return end | 370 | if cond[1] and not checkCond[cond[1]]() then return end |
| 358 | - local clearBlock = true | 371 | + local clearBlock = chooseData.keep ~= 1 |
| 359 | local effects = chooseData["button".. choose .."effect"]:toTableArray(true) | 372 | local effects = chooseData["button".. choose .."effect"]:toTableArray(true) |
| 360 | for _, effect in ipairs(effects) do | 373 | for _, effect in ipairs(effects) do |
| 361 | if effect[1] == 1 then | 374 | if effect[1] == 1 then |
| @@ -378,15 +391,44 @@ local function clickChoose(self, room, block, params) | @@ -378,15 +391,44 @@ local function clickChoose(self, room, block, params) | ||
| 378 | [4] = function() --无事发生 | 391 | [4] = function() --无事发生 |
| 379 | end | 392 | end |
| 380 | } | 393 | } |
| 381 | - assert(doEffect[effect[1]], "error effect, event_chooseCsv id :" .. block.event.id) | 394 | + assert(doEffect[effect[1]], "error effect, event_[link]chooseCsv id :" .. block.event.id) |
| 382 | doEffect[effect[1]]() | 395 | doEffect[effect[1]]() |
| 383 | end | 396 | end |
| 384 | - | ||
| 385 | self:checkTask(Adv.TaskType.Choose, 1, block.event.id) | 397 | self:checkTask(Adv.TaskType.Choose, 1, block.event.id) |
| 398 | + return true, clearBlock | ||
| 399 | +end | ||
| 400 | + | ||
| 401 | +local function clickChoose(self, room, block, params) | ||
| 402 | + local choose = params.choose | ||
| 403 | + local chooseData = csvdb["event_chooseCsv"][block.event.id] | ||
| 404 | + local status, clearBlock = chooseCommon(self, room, block, chooseData, choose) | ||
| 405 | + if not status then return end | ||
| 406 | + | ||
| 407 | + if clearBlock then | ||
| 408 | + block:clear() | ||
| 409 | + end | ||
| 410 | + return true | ||
| 411 | +end | ||
| 412 | + | ||
| 413 | +local function clickLinkChoose(self, room, block, params) | ||
| 414 | + local choose = params.choose | ||
| 415 | + local chooseData = csvdb["event_linkchooseCsv"][block.event.id] | ||
| 416 | + local status, clearBlock = chooseCommon(self, room, block, chooseData, choose) | ||
| 417 | + if not status then return end | ||
| 418 | + | ||
| 419 | + -- 完成统计次数 | ||
| 420 | + local idx = block.event.id % 10 | ||
| 421 | + if idx == 9 or not csvdb["event_linkchooseCsv"][block.event.id + 1] then --全部完成 | ||
| 422 | + local startId = math.floor(block.event.id / 10) * 10 + 1 | ||
| 423 | + self.lchoose[startId] = (self.lchoose[startId] or 0) + 1 | ||
| 424 | + else | ||
| 425 | + self.lchoose.ing = block.event.id + 1 --后面会出现后继事件 | ||
| 426 | + end | ||
| 386 | 427 | ||
| 387 | if clearBlock then | 428 | if clearBlock then |
| 388 | block:clear() | 429 | block:clear() |
| 389 | end | 430 | end |
| 431 | + | ||
| 390 | return true | 432 | return true |
| 391 | end | 433 | end |
| 392 | 434 | ||
| @@ -501,6 +543,7 @@ local eventCallFunc = { | @@ -501,6 +543,7 @@ local eventCallFunc = { | ||
| 501 | [AdvEventType.BOSS] = clickMonster, | 543 | [AdvEventType.BOSS] = clickMonster, |
| 502 | [AdvEventType.Monster] = clickMonster, | 544 | [AdvEventType.Monster] = clickMonster, |
| 503 | [AdvEventType.Choose] = clickChoose, | 545 | [AdvEventType.Choose] = clickChoose, |
| 546 | + [AdvEventType.LinkChoose] = clickLinkChoose, | ||
| 504 | [AdvEventType.Drop] = clickDrop, | 547 | [AdvEventType.Drop] = clickDrop, |
| 505 | [AdvEventType.Trader] = clickTrader, | 548 | [AdvEventType.Trader] = clickTrader, |
| 506 | [AdvEventType.Build] = clickBuild, | 549 | [AdvEventType.Build] = clickBuild, |
| @@ -607,8 +650,33 @@ function Adv:usePotion(potionId, potionLevel, target) | @@ -607,8 +650,33 @@ function Adv:usePotion(potionId, potionLevel, target) | ||
| 607 | return true | 650 | return true |
| 608 | end | 651 | end |
| 609 | 652 | ||
| 653 | +-- 地图上物品变化 | ||
| 654 | +function Adv:mapItemChange(ctype) | ||
| 655 | + local clist = csvdb["transform_itemCsv"][ctype] | ||
| 656 | + if clist then | ||
| 657 | + for roomId, room in pairs(self:getCurMap().rooms) do | ||
| 658 | + for blockId, block in pairs(room.blocks) do | ||
| 659 | + if block:getEventType() == AdvEventType.Drop and block.event.item then | ||
| 660 | + local id = block.event.item[1] | ||
| 661 | + local changeTo = nil | ||
| 662 | + if clist[id] then | ||
| 663 | + changeTo = {clist[id].toId, clist[id].num} | ||
| 664 | + elseif clist[-1] then | ||
| 665 | + changeTo = {clist[-1].toId, clist[-1].num} | ||
| 666 | + end | ||
| 667 | + if changeTo and changeTo[1] ~= 0 and changeTo[2] ~= 0 then | ||
| 668 | + block.event.item = changeTo | ||
| 669 | + self:backBlockChange(roomId, blockId) | ||
| 670 | + end | ||
| 671 | + end | ||
| 672 | + end | ||
| 673 | + end | ||
| 674 | + end | ||
| 675 | +end | ||
| 676 | + | ||
| 610 | --敌人死亡 | 677 | --敌人死亡 |
| 611 | -function Adv:enemyDead(roomId, blockId, escape) | 678 | +function Adv:enemyDead(enemy, escape) |
| 679 | + local roomId, blockId = enemy.roomId, enemy.blockId | ||
| 612 | local map = self:getCurMap() | 680 | local map = self:getCurMap() |
| 613 | local room = self:getRoom(roomId) | 681 | local room = self:getRoom(roomId) |
| 614 | local block = self:getBlock(roomId, blockId) | 682 | local block = self:getBlock(roomId, blockId) |
| @@ -621,15 +689,20 @@ function Adv:enemyDead(roomId, blockId, escape) | @@ -621,15 +689,20 @@ function Adv:enemyDead(roomId, blockId, escape) | ||
| 621 | if escape then | 689 | if escape then |
| 622 | block:clear() | 690 | block:clear() |
| 623 | else | 691 | else |
| 624 | - | ||
| 625 | local enemyId = block.event.id | 692 | local enemyId = block.event.id |
| 626 | local monsterData = csvdb["event_monsterCsv"][enemyId] | 693 | local monsterData = csvdb["event_monsterCsv"][enemyId] |
| 627 | self:scoreChange(AdvScoreType.Kill, monsterData.type) | 694 | self:scoreChange(AdvScoreType.Kill, monsterData.type) |
| 628 | self.battle.player:addExp(monsterData.exp) | 695 | self.battle.player:addExp(monsterData.exp) |
| 629 | local item = block.event.item | 696 | local item = block.event.item |
| 630 | if not item then | 697 | if not item then |
| 631 | - local dropData = csvdb["event_dropCsv"][monsterData.dropid] | ||
| 632 | - item = dropData["range"]:randWeight(true) | 698 | + local buff = enemy:hadBuff(Buff.CHANGE_DROP) |
| 699 | + if buff then | ||
| 700 | + item = table.pack(buff:effect()) | ||
| 701 | + else | ||
| 702 | + local dropData = csvdb["event_dropCsv"][monsterData.dropid] | ||
| 703 | + item = dropData["range"]:randWeight(true) | ||
| 704 | + end | ||
| 705 | + | ||
| 633 | end | 706 | end |
| 634 | 707 | ||
| 635 | if item[1] == 0 then | 708 | if item[1] == 0 then |
src/adv/AdvBattle.lua
| @@ -177,9 +177,9 @@ function Battle:afterRound() | @@ -177,9 +177,9 @@ function Battle:afterRound() | ||
| 177 | end | 177 | end |
| 178 | for i = #self.enemys[mapIdx], 1, -1 do | 178 | for i = #self.enemys[mapIdx], 1, -1 do |
| 179 | if self.enemys[mapIdx][i].isDead then | 179 | if self.enemys[mapIdx][i].isDead then |
| 180 | - self.enemys[mapIdx][i]:clear() | ||
| 181 | local enemy = table.remove(self.enemys[mapIdx], i) | 180 | local enemy = table.remove(self.enemys[mapIdx], i) |
| 182 | - self.adv:enemyDead(enemy.roomId, enemy.blockId) | 181 | + self.adv:enemyDead(enemy, enemy.isDead == 1) |
| 182 | + enemy:clear() | ||
| 183 | end | 183 | end |
| 184 | end | 184 | end |
| 185 | 185 |
src/adv/AdvBlock.lua
| @@ -89,9 +89,24 @@ function Block:open() | @@ -89,9 +89,24 @@ function Block:open() | ||
| 89 | 89 | ||
| 90 | randomFunc[AdvEventType.Trap] = function() | 90 | randomFunc[AdvEventType.Trap] = function() |
| 91 | local data = csvdb["event_trapCsv"][self.event.id] | 91 | local data = csvdb["event_trapCsv"][self.event.id] |
| 92 | - for _, buffId in ipairs(data.effect:toArray(true, "=")) do | 92 | + local buffs = data.effect:toArray(true, "=") |
| 93 | + for _, buffId in ipairs(buffs) do | ||
| 93 | adv.battle.player:addBuff(buffId) | 94 | adv.battle.player:addBuff(buffId) |
| 94 | end | 95 | end |
| 96 | + if data.target == 1 then-- 给所有敌人同样增加buff | ||
| 97 | + local enemys = adv.battle.player:getTeam(2) | ||
| 98 | + for k , enemy in ipairs(enemys) do | ||
| 99 | + for _, buffId in ipairs(buffs) do | ||
| 100 | + enemy:addBuff(buffId) | ||
| 101 | + end | ||
| 102 | + end | ||
| 103 | + end | ||
| 104 | + if data.specialEff ~= "" then | ||
| 105 | + local effect = data.specialEff:toArray(true, "=") | ||
| 106 | + if effect[1] == 1 then | ||
| 107 | + self.room.map.adv:mapItemChange(effect[2]) | ||
| 108 | + end | ||
| 109 | + end | ||
| 95 | adv:backTrap() | 110 | adv:backTrap() |
| 96 | self:clear() | 111 | self:clear() |
| 97 | end | 112 | end |
src/adv/AdvBuff.lua
| @@ -18,6 +18,7 @@ Buff.OPEN_BLOCK = 14 -- 翻开格子(每回合) | @@ -18,6 +18,7 @@ Buff.OPEN_BLOCK = 14 -- 翻开格子(每回合) | ||
| 18 | Buff.SP_CHANGE = 15 -- sp变化(每回合) | 18 | Buff.SP_CHANGE = 15 -- sp变化(每回合) |
| 19 | Buff.HP_CHANGE_NOW = 16 -- 生命变化(每回合生效,立刻生效) | 19 | Buff.HP_CHANGE_NOW = 16 -- 生命变化(每回合生效,立刻生效) |
| 20 | Buff.BATTLE_BUFF = 17 -- 切换为战斗中的buff | 20 | Buff.BATTLE_BUFF = 17 -- 切换为战斗中的buff |
| 21 | +Buff.CHANGE_DROP = 18 -- 转换掉落 | ||
| 21 | 22 | ||
| 22 | --角色一些属性的变化 | 23 | --角色一些属性的变化 |
| 23 | local function commonAttr(_Buff, attrName) | 24 | local function commonAttr(_Buff, attrName) |
| @@ -134,6 +135,12 @@ local BuffFactory = { | @@ -134,6 +135,12 @@ local BuffFactory = { | ||
| 134 | return self.buffData.effectValue1, self.buffData.effectValue2 | 135 | return self.buffData.effectValue1, self.buffData.effectValue2 |
| 135 | end | 136 | end |
| 136 | end, | 137 | end, |
| 138 | + | ||
| 139 | + [Buff.CHANGE_DROP] = function(_Buff) | ||
| 140 | + _Buff._effectValue = function(self) | ||
| 141 | + return self.buffData.effectValue1, self.buffData.effectValue2 | ||
| 142 | + end | ||
| 143 | + end, | ||
| 137 | 144 | ||
| 138 | [Buff.IMMNUE_BUFF] = function(_Buff) | 145 | [Buff.IMMNUE_BUFF] = function(_Buff) |
| 139 | _Buff._init = function(self, data) | 146 | _Buff._init = function(self, data) |
src/adv/AdvMap.lua
| @@ -175,6 +175,7 @@ createMap = function(self, mapId) | @@ -175,6 +175,7 @@ createMap = function(self, mapId) | ||
| 175 | local eventLib = getEventLib(self) -- 同时记录出现次数 | 175 | local eventLib = getEventLib(self) -- 同时记录出现次数 |
| 176 | local monsterEvents = {} --处理钥匙掉落 | 176 | local monsterEvents = {} --处理钥匙掉落 |
| 177 | local haveBoss = false | 177 | local haveBoss = false |
| 178 | + local haveLChoose = false | ||
| 178 | 179 | ||
| 179 | 180 | ||
| 180 | local function randomEvent(roomId, blockId, eventType) | 181 | local function randomEvent(roomId, blockId, eventType) |
| @@ -211,6 +212,18 @@ createMap = function(self, mapId) | @@ -211,6 +212,18 @@ createMap = function(self, mapId) | ||
| 211 | end | 212 | end |
| 212 | haveBoss = true | 213 | haveBoss = true |
| 213 | end | 214 | end |
| 215 | + randomFunc[AdvEventType.LinkChoose] = function() | ||
| 216 | + if haveLChoose then return false end | ||
| 217 | + if self.adv.lchoose.ing then -- 有正在进行的 | ||
| 218 | + event.id = self.adv.lchoose.ing | ||
| 219 | + self.adv.lchoose.ing = nil | ||
| 220 | + else | ||
| 221 | + if randomCommon() == false then | ||
| 222 | + return false | ||
| 223 | + end | ||
| 224 | + end | ||
| 225 | + haveLChoose = true | ||
| 226 | + end | ||
| 214 | 227 | ||
| 215 | --怪物 | 228 | --怪物 |
| 216 | randomFunc[AdvEventType.Monster] = function() | 229 | randomFunc[AdvEventType.Monster] = function() |
| @@ -351,6 +364,7 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 | @@ -351,6 +364,7 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 | ||
| 351 | ["event_clickCsv"] = AdvEventType.Click, | 364 | ["event_clickCsv"] = AdvEventType.Click, |
| 352 | ["event_layerCsv"] = AdvEventType.Layer, | 365 | ["event_layerCsv"] = AdvEventType.Layer, |
| 353 | ["event_questCsv"] = AdvEventType.Task, | 366 | ["event_questCsv"] = AdvEventType.Task, |
| 367 | + ["event_linkchooseCsv"] = AdvEventType.LinkChoose, | ||
| 354 | 368 | ||
| 355 | } | 369 | } |
| 356 | local eventLib = {} | 370 | local eventLib = {} |
| @@ -372,9 +386,17 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 | @@ -372,9 +386,17 @@ getEventLib = function(self, needEventType) -- needEventType 需要的事件 | ||
| 372 | local etype = type(eventType) == "table" and eventType[data.type] or eventType | 386 | local etype = type(eventType) == "table" and eventType[data.type] or eventType |
| 373 | 387 | ||
| 374 | if data.levelchapter == chapterId and (data.unlockType == 0 or (advEventOpenStatus[etype] or {})[data.unlockType]) then | 388 | if data.levelchapter == chapterId and (data.unlockType == 0 or (advEventOpenStatus[etype] or {})[data.unlockType]) then |
| 375 | - if AdvCommon.checkIsIn(level, data.leveltype, data.levellimit) then | ||
| 376 | - eventLib[etype][data.BlockEventType] = eventLib[etype][data.BlockEventType] or {} | ||
| 377 | - eventLib[etype][data.BlockEventType][id] = {showup = data.showup, limit = data.limit} | 389 | + local add = true |
| 390 | + if etype == AdvEventType.LinkChoose then --link 只有起始任务并且还没完成的进入池子 | ||
| 391 | + if id % 10 ~= 1 or (data.limit ~= 0 and data.limit <= (self.adv.lchoose[id] or 0)) then | ||
| 392 | + add = false | ||
| 393 | + end | ||
| 394 | + end | ||
| 395 | + if add then | ||
| 396 | + if AdvCommon.checkIsIn(level, data.leveltype, data.levellimit) then | ||
| 397 | + eventLib[etype][data.BlockEventType] = eventLib[etype][data.BlockEventType] or {} | ||
| 398 | + eventLib[etype][data.BlockEventType][id] = {showup = data.showup, limit = data.limit} | ||
| 399 | + end | ||
| 378 | end | 400 | end |
| 379 | end | 401 | end |
| 380 | end | 402 | end |
src/adv/AdvPassive.lua
| @@ -337,8 +337,8 @@ function Passive:effect3() | @@ -337,8 +337,8 @@ function Passive:effect3() | ||
| 337 | end | 337 | end |
| 338 | --4=逃跑 | 338 | --4=逃跑 |
| 339 | function Passive:effect4() | 339 | function Passive:effect4() |
| 340 | - self.owner.isDead = true --跑了 | ||
| 341 | - self.owner.battle.adv:enemyDead(self.owner.roomId,self.owner.blockId, true) | 340 | + self.owner.isDead = 1 --跑了 |
| 341 | + -- self.owner.battle.adv:enemyDead(self.owner, true) | ||
| 342 | end | 342 | end |
| 343 | --5=给随机一个敌方增加一个buff | 343 | --5=给随机一个敌方增加一个buff |
| 344 | function Passive:effect5(value) | 344 | function Passive:effect5(value) |
| @@ -350,5 +350,12 @@ end | @@ -350,5 +350,12 @@ end | ||
| 350 | function Passive:effect6(value) | 350 | function Passive:effect6(value) |
| 351 | self.owner:addPassive({id = value}) | 351 | self.owner:addPassive({id = value}) |
| 352 | end | 352 | end |
| 353 | +--7=给场上队友增加buff | ||
| 354 | +function Passive:effect7(value) | ||
| 355 | + local firends = self.owner:getTeam(1, true) | ||
| 356 | + for k , v in pairs(firends) do | ||
| 357 | + self.owner:addBuff(value, self.owner) | ||
| 358 | + end | ||
| 359 | +end | ||
| 353 | 360 | ||
| 354 | return Passive | 361 | return Passive |
| 355 | \ No newline at end of file | 362 | \ No newline at end of file |
src/adv/AdvPlayer.lua
| @@ -121,7 +121,7 @@ end | @@ -121,7 +121,7 @@ end | ||
| 121 | function BaseObject:hadBuff(bType) | 121 | function BaseObject:hadBuff(bType) |
| 122 | for _, buff in ipairs(self.buffs) do | 122 | for _, buff in ipairs(self.buffs) do |
| 123 | if not buff.isDel and buff:getType() == bType then | 123 | if not buff.isDel and buff:getType() == bType then |
| 124 | - return true | 124 | + return buff |
| 125 | end | 125 | end |
| 126 | end | 126 | end |
| 127 | end | 127 | end |
| @@ -129,7 +129,7 @@ end | @@ -129,7 +129,7 @@ end | ||
| 129 | function BaseObject:hadBuffById(bId) | 129 | function BaseObject:hadBuffById(bId) |
| 130 | for _, buff in ipairs(self.buffs) do | 130 | for _, buff in ipairs(self.buffs) do |
| 131 | if not buff.isDel and buff.id == bId then | 131 | if not buff.isDel and buff.id == bId then |
| 132 | - return true | 132 | + return buff |
| 133 | end | 133 | end |
| 134 | end | 134 | end |
| 135 | end | 135 | end |
src/models/RolePlugin.lua
| @@ -589,6 +589,12 @@ function RolePlugin.bind(Role) | @@ -589,6 +589,12 @@ function RolePlugin.bind(Role) | ||
| 589 | return globalCsv.adv_daily_cross_count | 589 | return globalCsv.adv_daily_cross_count |
| 590 | end | 590 | end |
| 591 | 591 | ||
| 592 | + function Role:getAdvElLimit() | ||
| 593 | + -- todo | ||
| 594 | + return globalCsv.adv_endless_daily_cross_count | ||
| 595 | + end | ||
| 596 | + | ||
| 597 | + | ||
| 592 | function Role:isFuncOpen(func) | 598 | function Role:isFuncOpen(func) |
| 593 | return self:getProperty("funcOpen")[func] == 1 | 599 | return self:getProperty("funcOpen")[func] == 1 |
| 594 | end | 600 | end |