Commit be5f29fadf53427ebd8a71859ec8beaf0ce8a4cc
Merge branch 'cn/develop' of 120.26.43.151:wasteland/server into cn/develop
Showing
4 changed files
with
51 additions
and
24 deletions
Show diff stats
src/actions/AdvAction.lua
| ... | ... | @@ -301,18 +301,16 @@ function _M.startHangRpc(agent, data) |
| 301 | 301 | |
| 302 | 302 | local player = {} |
| 303 | 303 | local attrs = role:getTeamBattleInfo(format).heros |
| 304 | - for attrName, _ in pairs(AdvAttsEnum) do | |
| 305 | - for _, hero in pairs(attrs) do | |
| 306 | - player[attrName] = (player[attrName] or 0) + hero[attrName] | |
| 304 | + for _, hero in pairs(attrs) do | |
| 305 | + --根据系数计算拾荒属性 | |
| 306 | + role:checkPlayerAttr(hero) | |
| 307 | + | |
| 308 | + for attrName, _ in pairs(AdvAttsEnum) do | |
| 309 | + player[attrName] = (player[attrName] or 0) + hero[attrName] | |
| 307 | 310 | end |
| 308 | - player[attrName] = player[attrName] * (globalCsv.adv_battle_attr_ratio[attrName] or 1) | |
| 309 | 311 | end |
| 310 | 312 | |
| 311 | - local battleV = 1 * player["hp"] | |
| 312 | - + 2 * player["atk"] | |
| 313 | - + 1.25 * player["def"] | |
| 314 | - + 0.226 * player["hit"] | |
| 315 | - + 0.26 * player["miss"] | |
| 313 | + local battleV = role:getSurvivability(player, #attrs) | |
| 316 | 314 | |
| 317 | 315 | --print(math.ceil(battleV), campSiteData.idleValue) |
| 318 | 316 | if math.ceil(battleV) < campSiteData.idleValue then return 9 end -- 战斗力是否满足 | ... | ... |
src/adv/Adv.lua
| ... | ... | @@ -930,18 +930,16 @@ function Adv:over(success, rewardRatio, overType) |
| 930 | 930 | local team = self.owner:getProperty("advTeam") |
| 931 | 931 | local player = {} |
| 932 | 932 | local attrs = self.owner:getTeamBattleInfo(team).heros |
| 933 | - for attrName, _ in pairs(AdvAttsEnum) do | |
| 934 | - for _, hero in pairs(attrs) do | |
| 935 | - player[attrName] = (player[attrName] or 0) + hero[attrName] | |
| 933 | + for _, hero in pairs(attrs) do | |
| 934 | + --根据系数计算拾荒属性 | |
| 935 | + self.owner:checkPlayerAttr(hero) | |
| 936 | + | |
| 937 | + for attrName, _ in pairs(AdvAttsEnum) do | |
| 938 | + player[attrName] = (player[attrName] or 0) + hero[attrName] | |
| 936 | 939 | end |
| 937 | - player[attrName] = player[attrName] * (globalCsv.adv_battle_attr_ratio[attrName] or 1) | |
| 938 | 940 | end |
| 939 | 941 | |
| 940 | - local battleV = 1 * player["hp"] | |
| 941 | - + 2 * player["atk"] | |
| 942 | - + 1.25 * player["def"] | |
| 943 | - + 0.226 * player["hit"] | |
| 944 | - + 0.26 * player["miss"] | |
| 942 | + local battleV = self.owner:getSurvivability(player, #attrs) | |
| 945 | 943 | |
| 946 | 944 | local heroList = {team.leader, team.leader2} |
| 947 | 945 | for _, hid in pairs(team.heros) do | ... | ... |
src/adv/AdvBattle.lua
| ... | ... | @@ -95,14 +95,13 @@ function Battle:initPlayer() |
| 95 | 95 | |
| 96 | 96 | local attrs = self.adv.owner:getTeamBattleInfo(advTeam).heros |
| 97 | 97 | |
| 98 | + for _, hero in pairs(attrs) do | |
| 99 | + --根据系数计算拾荒属性 | |
| 100 | + self.adv.owner:checkPlayerAttr(hero) | |
| 98 | 101 | |
| 99 | - for attrName, _ in pairs(AdvAttsEnum) do | |
| 100 | - for _, hero in pairs(attrs) do | |
| 101 | - player[attrName] = (player[attrName] or 0) + hero[attrName] | |
| 102 | + for attrName, _ in pairs(AdvAttsEnum) do | |
| 103 | + player[attrName] = (player[attrName] or 0) + hero[attrName] | |
| 102 | 104 | end |
| 103 | - player[attrName] = getAdvLvAttrUp(advAddAttrs, attrName, player[attrName]) * (globalCsv.adv_battle_attr_ratio[attrName] or 1) | |
| 104 | - -- player.growth[attrName] = player[attrName] * (globalCsv.adv_battle_attr_growth_ratio[attrName] or 1) | |
| 105 | - -- player[attrName] = player[attrName] + player.growth[attrName] * (player.level - 1) | |
| 106 | 105 | end |
| 107 | 106 | |
| 108 | 107 | player.hpMax = player.hp or 0 | ... | ... |
src/models/RoleBattle.lua
| ... | ... | @@ -348,9 +348,41 @@ function Role:checkBattle(battleType, params) |
| 348 | 348 | }) |
| 349 | 349 | end |
| 350 | 350 | |
| 351 | + local function initPlayer(player) | |
| 352 | + player["hp"] = player["hp"] or 0 | |
| 353 | + player["atk"] = player["atk"] or 0 | |
| 354 | + player["def"] = player["def"] or 0 | |
| 355 | + player["hit"] = player["hit"] or 0 | |
| 356 | + player["miss"] = player["miss"] or 0 | |
| 357 | + player["crit"] = player["crit"] or 0 | |
| 358 | + player["critHurt"] = player["critHurt"] or 0 | |
| 359 | + player["pierce"] = player["pierce"] or 0 | |
| 360 | + player["vampire"] = player["vampire"] or 0 | |
| 361 | + end | |
| 362 | + | |
| 363 | + function Role:checkPlayerAttr(player) | |
| 364 | + if next(player) == nil then return end | |
| 365 | + initPlayer(player) | |
| 351 | 366 | |
| 367 | + player["hp"] = math.floor(player["hp"] / globalCsv.adv_battle_attr_ratio["hp"]) | |
| 368 | + player["atk"] = math.floor(player["atk"] / globalCsv.adv_battle_attr_ratio["atk"]) | |
| 369 | + player["def"] = math.floor(player["def"] / globalCsv.adv_battle_attr_ratio["def"]) | |
| 370 | + player["hit"] = math.floor((player["hit"] + player["miss"] )/ globalCsv.adv_battle_attr_ratio["hit"]) | |
| 371 | + player["miss"] = math.floor((player["crit"] + player["critHurt"] + player["pierce"] + player["vampire"])/ globalCsv.adv_battle_attr_ratio["miss"]) | |
| 372 | + end | |
| 352 | 373 | |
| 374 | + function Role:getSurvivability(player, heroCount) | |
| 375 | + if next(player) == nil then return 0 end | |
| 376 | + heroCount = heroCount or 1 | |
| 377 | + initPlayer(player) | |
| 353 | 378 | |
| 379 | + local battleV = (globalCsv.adv_battle_fight_points["hp"] * player["hp"] | |
| 380 | + + globalCsv.adv_battle_fight_points["atk"] * player["atk"] | |
| 381 | + + globalCsv.adv_battle_fight_points["def"] * player["def"] | |
| 382 | + + globalCsv.adv_battle_fight_points["hit"] * player["hit"] ) | |
| 383 | + * (1 + (player["miss"]- heroCount * globalCsv.adv_battle_fight_points["miss"])/ 100) | |
| 384 | + return battleV | |
| 385 | + end | |
| 354 | 386 | |
| 355 | 387 | end |
| 356 | 388 | ... | ... |