From 031dcf992f1bde7bb452c9aa884ce4f39108f7e8 Mon Sep 17 00:00:00 2001 From: zhouhaihai Date: Fri, 5 Jun 2020 13:41:23 +0800 Subject: [PATCH] 修改战斗属性计算 冒险增加效果类型 --- src/adv/Adv.lua | 9 ++++++++- src/models/HeroPlugin.lua | 41 ++++++++++++++++++++++++++--------------- 2 files changed, 34 insertions(+), 16 deletions(-) diff --git a/src/adv/Adv.lua b/src/adv/Adv.lua index 287b8ba..e1bc4fe 100644 --- a/src/adv/Adv.lua +++ b/src/adv/Adv.lua @@ -1183,7 +1183,14 @@ local function chooseCommon(self, room, block, chooseData, choose, tag) end, [11] = function() -- 获得神器 self:waitChooseArtifact() --等待获取神器 - end + end, + [12] = function() + -- buffId + local targers = self.battle.player:getTeam(2) + for _, target in pairs(targers) do + target:addBuff(effect[2]) + end + end, } assert(doEffect[effect[1]], "error effect, event_" .. (tag or "choose") .. "Csv id :" .. block.event.id) doEffect[effect[1]]() diff --git a/src/models/HeroPlugin.lua b/src/models/HeroPlugin.lua index a2d820e..559c330 100644 --- a/src/models/HeroPlugin.lua +++ b/src/models/HeroPlugin.lua @@ -161,21 +161,32 @@ function HeroPlugin.bind(Hero) end end -- 零件效果 - local suits = {} - for _, uid in pairs(self:getProperty("rune"):toNumMap()) do - if uid > 0 then - local rune = self.owner.runeBag[uid] - local buildData = csvdb["rune_buildCsv"][rune:getProperty("level")] - for k,v in pairs(rune:getProperty("attrs"):toNumMap()) do - local attName = AttsEnumEx[k] - -- 零件的加成属性有特殊需求 填的是 10倍的值 - attrs.value[attName] = attrs.value[attName] + (v / 10) + addAttr(v / 10, buildData[attName], 1, attName) - end - local csvData = csvdb["runeCsv"][rune:getProperty("type")][rune:getProperty("id")] - if not suits[csvData.suit] then suits[csvData.suit] = {} end - table.insert(suits[csvData.suit],csvData) - end - end + local suits = {} + for _, uid in pairs(self:getProperty("rune"):toNumMap()) do + if uid > 0 then + local rune = self.owner.runeBag[uid] + local csvData = csvdb["runeCsv"][rune:getProperty("type")][rune:getProperty("id")] + local runeRareData = csvdb["rune_rareCsv"][csvData.rarity] + local buildData = csvdb["rune_buildCsv"][rune:getProperty("level")] + for k, v in pairs(rune:getProperty("attrs"):toNumMap()) do + local attName = AttsEnumEx[k] + --零件的加成属性有特殊需求 填的是 10倍的值 + --rare的effect不影响 特殊属性 + + --铭文单件普通属性=attr*(1+[rune_build表effect]/100*[rune_rare表effect]/100) + --铭文单件特殊属性=attr+[rune_build表effect] + + local effect = buildData[attName] + if not PercentAttr[attName] then + effect = buildData[attName] * runeRareData.effect / 100 + end + attrs.value[attName] = attrs.value[attName] + (v / 10) + addAttr(v / 10, effect, 1, attName) + end + + if not suits[csvData.suit] then suits[csvData.suit] = {} end + table.insert(suits[csvData.suit],csvData) + end + end -- 零件套装效果 for suitId,runeDatas in pairs(suits) do local suitCsv = csvdb["rune_suitCsv"][tonumber(suitId)] -- libgit2 0.21.2