Commit b67180e8d7c31132cb329bafaa970ab88376d001

Authored by zhengshouren
1 parent 36204e3c

餐厅天赋升级

Showing 1 changed file with 50 additions and 0 deletions   Show diff stats
src/actions/DinerAction.lua
... ... @@ -104,4 +104,54 @@ function _M.levelUpRpc( agent, data )
104 104 return true
105 105 end
106 106  
  107 +function _M.talentUpRpc( agent, data )
  108 + local role = agent.role
  109 + local msg = MsgPack.unpack(data)
  110 +
  111 + local dish = msg.dish
  112 + local dishSet = csvdb["diner_dishCsv"][dish]
  113 + if not dishSet then
  114 + return
  115 + end
  116 +
  117 + local dishTree = role.dinerData:getProperty("dishTree")
  118 + local dishLevel = dishTree:getv(dish, 0)
  119 + local cost = {}
  120 + local treePoint = {}
  121 + if dishLevel == 0 then
  122 + local dishData = dishSet[1]
  123 + if dishData.unlock_tree > 0 then
  124 + if dishTree:getv(dishData.unlock_tree, 0) == 0 then
  125 + return
  126 + end
  127 + end
  128 + if dishData.unlock_carbon > 0 then
  129 + local hangPass = role:getProperty("hangPass")
  130 + if not hangPass[dishData.unlock_carbon] then
  131 + return
  132 + end
  133 + end
  134 + cost = globalCsv.diner_sell_dish_talent_unlock:toNumMap()
  135 + else
  136 + if dishLevel >= #dishSet then
  137 + return
  138 + end
  139 + local dishData = dishSet[dishLevel]
  140 + cost = dishData.tree_material:toNumMap()
  141 + treePoint = dishData.tree_point:toNumMap()
  142 + end
  143 + if not role:checkItemEnough(cost) then
  144 + return
  145 + end
  146 +
  147 + role:costItems(cost)
  148 + role.dinerData:updateProperty({field = "dishTree", value = dishTree:setv(dish, dishLevel + 1)})
  149 + if next(treePoint) then
  150 + role:award(treePoint)
  151 + end
  152 +
  153 + SendPacket(actionCodes.Diner_talentUpRpc, '')
  154 + return true
  155 +end
  156 +
107 157 return _M
108 158 \ No newline at end of file
... ...