Commit 375f40f1bba62119eb0a7b25e67e6a09c4a9552b
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 |