Commit b67180e8d7c31132cb329bafaa970ab88376d001
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,4 +104,54 @@ function _M.levelUpRpc( agent, data ) | ||
104 | return true | 104 | return true |
105 | end | 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 | return _M | 157 | return _M |
108 | \ No newline at end of file | 158 | \ No newline at end of file |