Commit 98761edcf49836f9eda17d8185e02ad3fa64d623
1 parent
ccbafe67
buff 补充
Showing
4 changed files
with
44 additions
and
13 deletions
Show diff stats
src/actions/GmAction.lua
| ... | ... | @@ -292,13 +292,17 @@ end |
| 292 | 292 | |
| 293 | 293 | table.insert(helpDes, {"获取冒险内道具", "advit"}) |
| 294 | 294 | function _M.advit(role, pms) |
| 295 | - local advItems = role:getProperty("advItems") | |
| 295 | + local reward = {} | |
| 296 | 296 | for k, v in pairs(csvdb["adv_itemCsv"]) do |
| 297 | 297 | if csvdb["itemCsv"][k] and v.effect ~= 0 then |
| 298 | - advItems = advItems:incrv(k, 1) | |
| 298 | + reward[k] = 1 | |
| 299 | 299 | end |
| 300 | 300 | end |
| 301 | - role:updateProperty({field = "advItems", value = advItems}) | |
| 301 | + for k , v in pairs(csvdb["adv_artifactCsv"]) do | |
| 302 | + reward[k] = 1 | |
| 303 | + end | |
| 304 | + local adv = role:getAdvData() | |
| 305 | + adv:award(reward) | |
| 302 | 306 | return "成功" |
| 303 | 307 | end |
| 304 | 308 | ... | ... |
src/adv/AdvBattle.lua
| ... | ... | @@ -62,7 +62,7 @@ function Battle:initPlayer() |
| 62 | 62 | for _, hero in pairs(attrs) do |
| 63 | 63 | player[attrName] = (player[attrName] or 0) + hero[attrName] |
| 64 | 64 | end |
| 65 | - palyer.growth[attrName] = player[attrName] * 0.025 | |
| 65 | + player.growth[attrName] = player[attrName] * 0.025 | |
| 66 | 66 | end |
| 67 | 67 | |
| 68 | 68 | player.hpMax = player.hp or 0 | ... | ... |
src/adv/AdvBuff.lua
| ... | ... | @@ -27,9 +27,9 @@ Buff.EXP_UP = 24 -- 杀敌经验提高 |
| 27 | 27 | Buff.DISABLE_BUFF = 25 -- 禁用固有技 |
| 28 | 28 | Buff.ATTR_CHANGE_COND = 26 --属性变化(状态)有条件 |
| 29 | 29 | Buff.CHANGE_DROP_TO_CLICK = 27 --掉落转换为click |
| 30 | -Buff.SP_MAX_CHANGE = 28, -- 魔法上限 | |
| 31 | -Buff.ITEM_GET_UP = 29, -- 获得道具数量增加 | |
| 32 | -Buff.Buff_EFFECT_CHANGE = 30, -- 改变 buff 效果 | |
| 30 | +Buff.SP_MAX_CHANGE = 28 -- 魔法上限 | |
| 31 | +Buff.ITEM_GET_UP = 29 -- 获得道具数量增加 | |
| 32 | +Buff.Buff_EFFECT_CHANGE = 30 -- 改变 buff 效果 | |
| 33 | 33 | |
| 34 | 34 | --角色一些属性的变化 |
| 35 | 35 | local function commonAttr(_Buff, attrName) |
| ... | ... | @@ -55,16 +55,41 @@ end |
| 55 | 55 | local function commonAttCond(_Buff, attrName) |
| 56 | 56 | _Buff._init = function(self, data) --初始化变化值 |
| 57 | 57 | self._changeV = self:_calculate() |
| 58 | - self.owner:reSetAttr(attrName) | |
| 58 | + self:_reSetAttr(true) | |
| 59 | 59 | end |
| 60 | 60 | _Buff._overlay = function(self) |
| 61 | 61 | self._changeV = (self._changeV or 0) + self:_calculate() |
| 62 | - self.owner:reSetAttr(attrName) | |
| 62 | + self:_reSetAttr(true) | |
| 63 | 63 | end |
| 64 | 64 | _Buff._uncover = function(self) |
| 65 | 65 | self._changeV = self._changeV - self._changeV / (self.layer + 1) |
| 66 | - self.owner:reSetAttr(attrName) | |
| 66 | + self:_reSetAttr() | |
| 67 | + end | |
| 68 | + | |
| 69 | + _Buff._hpChange = function(self) | |
| 70 | + local oldHpMax = self.owner.hpMax | |
| 71 | + self.owner:reSetHpMax() | |
| 72 | + | |
| 73 | + local curValue = self.owner.hpMax - oldHpMax | |
| 74 | + if curValue > 0 then | |
| 75 | + self.owner:recover(curValue, self.release) -- 防止release不存在,地图点buff | |
| 76 | + elseif curValue < 0 then | |
| 77 | + self.owner:hurt(self.release and self.release:getHurtValue(-curValue) or -curValue, self.release, {hurtType = 2, buffId = self.id}) | |
| 78 | + end | |
| 79 | + end | |
| 80 | + | |
| 81 | + _Buff._reSetAttr = function(self, isInit) | |
| 82 | + if attrName == "hp" then | |
| 83 | + if isInit then | |
| 84 | + self:_hpChange() | |
| 85 | + else | |
| 86 | + self.owner:reSetHpMax() | |
| 87 | + end | |
| 88 | + else | |
| 89 | + self.owner:reSetAttr(attrName) | |
| 90 | + end | |
| 67 | 91 | end |
| 92 | + | |
| 68 | 93 | _Buff._calculate = function(self) |
| 69 | 94 | local effectCount = 0 |
| 70 | 95 | if self.buffData.effectValue4 == 0 then |
| ... | ... | @@ -79,7 +104,7 @@ local function commonAttCond(_Buff, attrName) |
| 79 | 104 | return self.buffData.effectValue1, self._changeV, attrName |
| 80 | 105 | end |
| 81 | 106 | _Buff._endBuff = function(self, data) |
| 82 | - self.owner:reSetAttr(attrName) | |
| 107 | + self:_reSetAttr() | |
| 83 | 108 | end |
| 84 | 109 | _Buff._getDB = function(self) |
| 85 | 110 | return {cv = self._changeV} |
| ... | ... | @@ -306,7 +331,7 @@ local BuffFactory = { |
| 306 | 331 | _Buff._effectValue = function(self) |
| 307 | 332 | return self.buffData.effectValue1, self.buffData.effectValue2 * self.layer |
| 308 | 333 | end |
| 309 | - end | |
| 334 | + end, | |
| 310 | 335 | |
| 311 | 336 | [Buff.ITEM_GET_UP] = function(_Buff) |
| 312 | 337 | _Buff._effectValue = function(self) | ... | ... |
src/adv/AdvPlayer.lua
| ... | ... | @@ -297,7 +297,9 @@ function BaseObject:reSetHpMax() |
| 297 | 297 | end |
| 298 | 298 | end |
| 299 | 299 | end |
| 300 | - self.hpMax = math.max(1, self.hpMax) | |
| 300 | + local effect = self:getAttrBuffChange("hp") | |
| 301 | + self.hpMax = (self.hpMax + effect[0]) * (1 + effect[1])) | |
| 302 | + self.hpMax = math.ceil(math.max(1, self.hpMax)) | |
| 301 | 303 | self.hp = math.min(self.hpMax, self.hp) |
| 302 | 304 | end |
| 303 | 305 | ... | ... |