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,13 +292,17 @@ end | ||
292 | 292 | ||
293 | table.insert(helpDes, {"获取冒险内道具", "advit"}) | 293 | table.insert(helpDes, {"获取冒险内道具", "advit"}) |
294 | function _M.advit(role, pms) | 294 | function _M.advit(role, pms) |
295 | - local advItems = role:getProperty("advItems") | 295 | + local reward = {} |
296 | for k, v in pairs(csvdb["adv_itemCsv"]) do | 296 | for k, v in pairs(csvdb["adv_itemCsv"]) do |
297 | if csvdb["itemCsv"][k] and v.effect ~= 0 then | 297 | if csvdb["itemCsv"][k] and v.effect ~= 0 then |
298 | - advItems = advItems:incrv(k, 1) | 298 | + reward[k] = 1 |
299 | end | 299 | end |
300 | end | 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 | return "成功" | 306 | return "成功" |
303 | end | 307 | end |
304 | 308 |
src/adv/AdvBattle.lua
@@ -62,7 +62,7 @@ function Battle:initPlayer() | @@ -62,7 +62,7 @@ function Battle:initPlayer() | ||
62 | for _, hero in pairs(attrs) do | 62 | for _, hero in pairs(attrs) do |
63 | player[attrName] = (player[attrName] or 0) + hero[attrName] | 63 | player[attrName] = (player[attrName] or 0) + hero[attrName] |
64 | end | 64 | end |
65 | - palyer.growth[attrName] = player[attrName] * 0.025 | 65 | + player.growth[attrName] = player[attrName] * 0.025 |
66 | end | 66 | end |
67 | 67 | ||
68 | player.hpMax = player.hp or 0 | 68 | player.hpMax = player.hp or 0 |
src/adv/AdvBuff.lua
@@ -27,9 +27,9 @@ Buff.EXP_UP = 24 -- 杀敌经验提高 | @@ -27,9 +27,9 @@ Buff.EXP_UP = 24 -- 杀敌经验提高 | ||
27 | Buff.DISABLE_BUFF = 25 -- 禁用固有技 | 27 | Buff.DISABLE_BUFF = 25 -- 禁用固有技 |
28 | Buff.ATTR_CHANGE_COND = 26 --属性变化(状态)有条件 | 28 | Buff.ATTR_CHANGE_COND = 26 --属性变化(状态)有条件 |
29 | Buff.CHANGE_DROP_TO_CLICK = 27 --掉落转换为click | 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 | local function commonAttr(_Buff, attrName) | 35 | local function commonAttr(_Buff, attrName) |
@@ -55,16 +55,41 @@ end | @@ -55,16 +55,41 @@ end | ||
55 | local function commonAttCond(_Buff, attrName) | 55 | local function commonAttCond(_Buff, attrName) |
56 | _Buff._init = function(self, data) --初始化变化值 | 56 | _Buff._init = function(self, data) --初始化变化值 |
57 | self._changeV = self:_calculate() | 57 | self._changeV = self:_calculate() |
58 | - self.owner:reSetAttr(attrName) | 58 | + self:_reSetAttr(true) |
59 | end | 59 | end |
60 | _Buff._overlay = function(self) | 60 | _Buff._overlay = function(self) |
61 | self._changeV = (self._changeV or 0) + self:_calculate() | 61 | self._changeV = (self._changeV or 0) + self:_calculate() |
62 | - self.owner:reSetAttr(attrName) | 62 | + self:_reSetAttr(true) |
63 | end | 63 | end |
64 | _Buff._uncover = function(self) | 64 | _Buff._uncover = function(self) |
65 | self._changeV = self._changeV - self._changeV / (self.layer + 1) | 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 | end | 91 | end |
92 | + | ||
68 | _Buff._calculate = function(self) | 93 | _Buff._calculate = function(self) |
69 | local effectCount = 0 | 94 | local effectCount = 0 |
70 | if self.buffData.effectValue4 == 0 then | 95 | if self.buffData.effectValue4 == 0 then |
@@ -79,7 +104,7 @@ local function commonAttCond(_Buff, attrName) | @@ -79,7 +104,7 @@ local function commonAttCond(_Buff, attrName) | ||
79 | return self.buffData.effectValue1, self._changeV, attrName | 104 | return self.buffData.effectValue1, self._changeV, attrName |
80 | end | 105 | end |
81 | _Buff._endBuff = function(self, data) | 106 | _Buff._endBuff = function(self, data) |
82 | - self.owner:reSetAttr(attrName) | 107 | + self:_reSetAttr() |
83 | end | 108 | end |
84 | _Buff._getDB = function(self) | 109 | _Buff._getDB = function(self) |
85 | return {cv = self._changeV} | 110 | return {cv = self._changeV} |
@@ -306,7 +331,7 @@ local BuffFactory = { | @@ -306,7 +331,7 @@ local BuffFactory = { | ||
306 | _Buff._effectValue = function(self) | 331 | _Buff._effectValue = function(self) |
307 | return self.buffData.effectValue1, self.buffData.effectValue2 * self.layer | 332 | return self.buffData.effectValue1, self.buffData.effectValue2 * self.layer |
308 | end | 333 | end |
309 | - end | 334 | + end, |
310 | 335 | ||
311 | [Buff.ITEM_GET_UP] = function(_Buff) | 336 | [Buff.ITEM_GET_UP] = function(_Buff) |
312 | _Buff._effectValue = function(self) | 337 | _Buff._effectValue = function(self) |
src/adv/AdvPlayer.lua
@@ -297,7 +297,9 @@ function BaseObject:reSetHpMax() | @@ -297,7 +297,9 @@ function BaseObject:reSetHpMax() | ||
297 | end | 297 | end |
298 | end | 298 | end |
299 | end | 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 | self.hp = math.min(self.hpMax, self.hp) | 303 | self.hp = math.min(self.hpMax, self.hp) |
302 | end | 304 | end |
303 | 305 |