Commit 3139a1163b07e32d9371b0c7e6a19e94c88d80c8

Authored by zhouhaihai
1 parent 3c51e6d4

光环相关buff

Showing 2 changed files with 44 additions and 3 deletions   Show diff stats
src/adv/AdvBuff.lua
... ... @@ -36,6 +36,8 @@ Buff.SNEAK = 32 --潜行
36 36 Buff.DROP_BUFF_BY_ENEMY = 33 -- 怪物掉落加成 -- 怪物使用
37 37 Buff.GET_PASSIVE = 34 -- 获得 passive -- 结束失效
38 38 Buff.OBSTACLE_CHANGE = 35 -- 看守类型改变 -- 怪物使用 0 - 1
  39 +Buff.DISABLE_AURA = 36 -- 禁用光环
  40 +Buff.GET_AURA = 37 -- 获得光环
39 41  
40 42  
41 43 --角色一些属性的变化
... ... @@ -332,6 +334,18 @@ local BuffFactory = {
332 334 end
333 335 end,
334 336  
  337 + [Buff.DISABLE_AURA] = function(_Buff)
  338 + _Buff._effectValue = function(self)
  339 + return self.buffData.effectValue1
  340 + end
  341 + end,
  342 +
  343 + [Buff.GET_AURA] = function(_Buff)
  344 + _Buff._effectValue = function(self)
  345 + return self.buffData.effectValue1
  346 + end
  347 + end,
  348 +
335 349 [Buff.SP_MAX_CHANGE] = function(_Buff)
336 350 _Buff._init = function(self) --初始化变化值
337 351 self.owner:reSetSpMax()
... ...
src/adv/AdvPlayer.lua
... ... @@ -143,6 +143,19 @@ function BaseObject:getDisablePassiveCount()
143 143 return count
144 144 end
145 145  
  146 +function BaseObject:getDisableAuraCount()
  147 + local count
  148 + for _, buff in ipairs(self.buffs) do
  149 + if not buff:isHide() and buff:getType() == Buff.DISABLE_AURA then
  150 + if buff:effect() == 0 then
  151 + return 0
  152 + end
  153 + count = (count or 0) + buff:effect()
  154 + end
  155 + end
  156 + return count
  157 +end
  158 +
146 159 function BaseObject:addBuff(buffId, releaser, layer)
147 160 layer = layer or 1
148 161 local buffData = csvdb["adv_map_buffCsv"][buffId]
... ... @@ -229,22 +242,36 @@ function BaseObject:checkAuraBuff(buffs)
229 242 end
230 243  
231 244 function BaseObject:getAuras()
  245 + local disable = self:getDisableAuraCount()
232 246 local auras = {}
  247 + local function addAura(one)
  248 + if disable > 0 then
  249 + disable = disable - 1
  250 + else
  251 + table.insert(auras, one)
  252 + end
  253 + end
233 254 if self:is("Enemy") then
234 255 local halo = csvdb["event_monsterCsv"][self.monsterId].halo
235 256 if halo then
236 257 for _, one in ipairs(halo:toArray(true, "=")) do
237   - table.insert(auras, one)
  258 + addAura(one)
238 259 end
239 260 end
240 261 elseif self:is("Build") then
241 262 local halo = csvdb["event_buildingCsv"][self.id].halo
242 263 if halo then
243 264 for _, one in ipairs(halo:toArray(true, "=")) do
244   - table.insert(auras, one)
  265 + addAura(one)
245 266 end
246 267 end
247   - end
  268 + end
  269 +
  270 + for _, buff in ipairs(self.buffs) do
  271 + if not buff:isHide() and buff:getType() == Buff.GET_AURA then
  272 + addAura(buff:effect())
  273 + end
  274 + end
248 275  
249 276 return auras
250 277 end
... ...