Commit 375f40f1bba62119eb0a7b25e67e6a09c4a9552b

Authored by zhouhaihai
1 parent 6a323693

可控制 提高生命上限回复血量

Showing 1 changed file with 14 additions and 1 deletions   Show diff stats
src/adv/AdvBuff.lua
@@ -156,11 +156,15 @@ local BuffFactory = { @@ -156,11 +156,15 @@ local BuffFactory = {
156 [Buff.HP_MAX_CHANGE] = function(_Buff) 156 [Buff.HP_MAX_CHANGE] = function(_Buff)
157 _Buff._init = function(self) --初始化变化值 157 _Buff._init = function(self) --初始化变化值
158 self._changeV = self:_calculate() 158 self._changeV = self:_calculate()
  159 + local old = self.owner.hpMax
159 self.owner:reSetHpMax() 160 self.owner:reSetHpMax()
  161 + self:_addHpByMax(old)
160 end 162 end
161 _Buff._overlay = function(self) 163 _Buff._overlay = function(self)
162 self._changeV = (self._changeV or 0) + self:_calculate() 164 self._changeV = (self._changeV or 0) + self:_calculate()
  165 + local old = self.owner.hpMax
163 self.owner:reSetHpMax() 166 self.owner:reSetHpMax()
  167 + self:_addHpByMax(old)
164 end 168 end
165 169
166 _Buff._uncover = function(self) 170 _Buff._uncover = function(self)
@@ -173,7 +177,7 @@ local BuffFactory = { @@ -173,7 +177,7 @@ local BuffFactory = {
173 if self.buffData.effectValue1 == 0 then --固定值 177 if self.buffData.effectValue1 == 0 then --固定值
174 curValue = self.buffData.effectValue2 178 curValue = self.buffData.effectValue2
175 elseif self.buffData.effectValue1 == 1 then 179 elseif self.buffData.effectValue1 == 1 then
176 - local baseOwner = self.buffData.effectValue4 == 1 and self.owner or self.release 180 + local baseOwner = self.buffData.effectValue4 == 1 and self.owner or self.release
177 local attrs = {[0] = "hp", [1] = "hpMax", [2] = "atk"} 181 local attrs = {[0] = "hp", [1] = "hpMax", [2] = "atk"}
178 curValue = baseOwner[attrs[self.buffData.effectValue3]] * self.buffData.effectValue2 / 100 182 curValue = baseOwner[attrs[self.buffData.effectValue3]] * self.buffData.effectValue2 / 100
179 end 183 end
@@ -184,6 +188,15 @@ local BuffFactory = { @@ -184,6 +188,15 @@ local BuffFactory = {
184 return self:doEffectChange(self._changeV) 188 return self:doEffectChange(self._changeV)
185 end 189 end
186 190
  191 + _Buff._addHpByMax = function(self, old)
  192 + if self.buffData.effectValue5 == "1" then
  193 + local change = self.owner.hpMax - old
  194 + if change > 0 then
  195 + self.owner:recover(change, self.release) -- 防止release不存在,地图点buff
  196 + end
  197 + end
  198 + end
  199 +
187 _Buff._endBuff = function(self) 200 _Buff._endBuff = function(self)
188 self.owner:reSetHpMax() 201 self.owner:reSetHpMax()
189 end 202 end