Commit 94449a7845a03a6c2d73bcc79db4e9eafb986ee4

Authored by chenyueqi
1 parent c1928949

英雄升级和突破增加关卡限制

Showing 1 changed file with 22 additions and 4 deletions   Show diff stats
src/actions/HeroAction.lua
... ... @@ -35,10 +35,19 @@ function _M.levelUpRpc( agent, data )
35 35 local hero = role.heros[msg.id]
36 36 if not hero then return 1 end
37 37  
38   - if hero:getProperty("level") >= hero:getMaxLevel() then return 2 end
39   - local curData = csvdb["unit_expCsv"][hero:getProperty("level")]
  38 + local level = hero:getProperty("level")
  39 + if level >= hero:getMaxLevel() then return 2 end
  40 + local curData = csvdb["unit_expCsv"][level]
40 41 local cost = {[ItemId.Exp] = curData.exp, [ItemId.Gold] = curData.gold}
41 42 if not role:checkItemEnough(cost) then return 3 end
  43 +
  44 + -- 通过指定关卡后才能升级英雄等级
  45 + local pass = globalCsv.unit_exp_level_pass[level + 1]
  46 + if pass then
  47 + local hangPass = self:getProperty("hangPass")
  48 + if not hangPass[pass] then return 4 end
  49 + end
  50 +
42 51 role:costItems(cost, {log = {desc = "heroLevelUp", int1 = msg.id, int2 = hero:getProperty("type")}})
43 52  
44 53 local oldAttr = hero:getTotalAttrs()
... ... @@ -69,12 +78,21 @@ function _M.breakRpc( agent, data )
69 78 local hero = role.heros[msg.id]
70 79 if not hero then return 1 end
71 80  
  81 + local breakL = hero:getProperty("breakL")
72 82 if hero:getProperty("level") < hero:getMaxLevel() then return 2 end
73   - if hero:getProperty("breakL") >= #csvdb["unit_breakCsv"] then return 3 end
74   - local curData = csvdb["unit_breakCsv"][hero:getProperty("breakL")]
  83 + if breakL >= #csvdb["unit_breakCsv"] then return 3 end
  84 + local curData = csvdb["unit_breakCsv"][breakL]
75 85 if hero:getProperty("wakeL") < curData["starLimit"] then return 4 end
76 86 local cost = {[ItemId.BreakCost] = curData.cost, [ItemId.Gold] = curData.gold}
77 87 if not role:checkItemEnough(cost) then return 4 end
  88 +
  89 + -- 通过指定关卡后才能突破英雄
  90 + local pass = globalCsv.unit_break_level_pass[breakL + 1]
  91 + if pass then
  92 + local hangPass = self:getProperty("hangPass")
  93 + if not hangPass[pass] then return 4 end
  94 + end
  95 +
78 96 role:costItems(cost, {log = {desc = "heroBreak", int1 = msg.id, int2 = hero:getProperty("type")}})
79 97 local oldAttr = hero:getTotalAttrs()
80 98 hero:updateProperty({field = "breakL", delta = 1})
... ...