Commit 40b19300e2ecb9cc128c9c35255db7ffdd39187e

Authored by chenyueqi
1 parent 04da65df

电波塔激活加成效果后对各个系统的加成

src/GlobalVar.lua
... ... @@ -389,5 +389,5 @@ SystemBnousType = {
389 389 Adv = 7, -- 代理拾荒获得额外道具
390 390 HangTime = 8, -- 挂机时间上限
391 391 PvpTicket = 9, -- 每周额外获得竞技场门票数量
392   - SweepReward = 10, -- 每次扫荡额外获得道具
  392 + SweepReward = 10, -- 奖励关卡每次扫荡额外获得道具
393 393 }
... ...
src/actions/AdvAction.lua
... ... @@ -276,7 +276,9 @@ function _M.startHangRpc(agent, data)
276 276 if not adv_idle_time or not adv_idle_energy or not adv_idle_reward_coef then
277 277 return 2
278 278 end
279   - adv_idle_time = adv_idle_time * 60
  279 + local timeAdd = role:getBnousHangTime()
  280 + adv_idle_time = adv_idle_time * 60 + timeAdd
  281 +
280 282  
281 283 local advHang = role:getProperty("advHang")
282 284 if advHang[chapterId] then return 3 end --正在挂机
... ... @@ -416,7 +418,8 @@ function _M.endHangRpc(agent, data)
416 418 if not adv_idle_time or not adv_idle_energy or not adv_idle_reward_coef then
417 419 return 2
418 420 end
419   - adv_idle_time = adv_idle_time * 60
  421 + local timeAdd = role:getBnousHangTime()
  422 + adv_idle_time = adv_idle_time * 60 + timeAdd
420 423  
421 424 local reward, isFull, change, heroFaithMap
422 425 local heroCnt = 0
... ... @@ -463,6 +466,15 @@ function _M.endHangRpc(agent, data)
463 466 for itemId, count in pairs(idleReward) do
464 467 idleReward[itemId] = count * adv_idle_reward_coef
465 468 end
  469 +
  470 + local bnousReward = role:getBnousAdv()
  471 + for time, set in pairs(bnousReward) do
  472 + local delta = math.floor(adv_idle_time / time)
  473 + for key, value in pairs(set) do
  474 + idleReward[key] = (idleReward[key] or 0) + value * delta
  475 + end
  476 + end
  477 +
466 478 reward, change = role:award(idleReward, {log = {desc = "advHang", int1 = chapterId}})
467 479 else
468 480 if cancel then
... ...
src/actions/DinerAction.lua
... ... @@ -75,7 +75,8 @@ function _M.addSellRpc( agent, data )
75 75 sells[slot].count = count
76 76 sells[slot].time = skynet.timex() - calSell.deltaTime
77 77  
78   - local needTime = sells[slot].count * dishData.sell_time + sells[slot].time - skynet.timex()
  78 + local timeSub = role:getBnousDiner(3,dishData.sell_time)
  79 + local needTime = sells[slot].count * (dishData.sell_time + timeSub) + sells[slot].time - skynet.timex()
79 80 role:pushMsg({type = "food", slot = slot, time = needTime})
80 81  
81 82 -- 检查解锁的顾客
... ... @@ -742,11 +743,15 @@ function _M.getGreenhouseRpc( agent, data )
742 743 local now = skynet.timex()
743 744 local gfood = role.dinerData:getProperty("gfood")
744 745 if not next(gfood) then return end
  746 +
  747 + local timeSub = role:getBnousDiner(1,buildingData.speed)
  748 + local timeAdd = role:getBnousDiner(2,globalCsv.diner_get_food_time_max)
  749 +
745 750 for k , v in pairs(gfood) do
746 751 local itemId = v.id
747 752 local st = v.st
748   - local speed = globalCsv.diner_get_food_speed[csvdb["itemCsv"][itemId].quality] * buildingData.speed / 100
749   - local endTime = st + globalCsv.diner_get_food_time_max
  753 + local speed = globalCsv.diner_get_food_speed[csvdb["itemCsv"][itemId].quality] * (buildingData.speed + timeSub) / 100
  754 + local endTime = st + globalCsv.diner_get_food_time_max + timeAdd
750 755 local endTime2 = math.min(now, endTime)
751 756 reward[itemId] = math.floor((endTime2 - st) / speed)
752 757 if endTime2 == endTime then
... ...
src/actions/HangAction.lua
... ... @@ -508,7 +508,7 @@ function _M.buyBonusCountRpc(agent, data)
508 508 return true
509 509 end
510 510  
511   -local function bonusWinReward(role, bonusData, rewardType, count)
  511 +local function bonusWinReward(role, bonusData, rewardType, count, sweep)
512 512 count = count or 1
513 513  
514 514 local reward, change = {}
... ... @@ -548,6 +548,13 @@ local function bonusWinReward(role, bonusData, rewardType, count)
548 548 end
549 549 end
550 550  
  551 + if sweep then
  552 + local bnousReward = role:getBnousSweep()
  553 + for key, value in pairs(bnousReward) do
  554 + reward[key] = (reward[key] or 0) + value * count
  555 + end
  556 + end
  557 +
551 558 reward, change = role:award(reward, {log = {desc = "bonusBattle", int1 = bonusData.id}})
552 559 role:checkTaskEnter("BonusPass", {id = bonusData.id, count = count})
553 560 return reward, change
... ... @@ -589,7 +596,7 @@ function _M.startBonusBattleRpc(agent, data)
589 596 bonusC[bonusData.type]["c"] = bonusC[bonusData.type]["c"] + count
590 597 role.dailyData:updateProperty({field = "bonusC", value = bonusC})
591 598  
592   - local reward, change = bonusWinReward(role, bonusData, 3, count)
  599 + local reward, change = bonusWinReward(role, bonusData, 3, count, true)
593 600 SendPacket(actionCodes.Hang_startBonusBattleRpc, MsgPack.pack({reward = reward, change = change}))
594 601  
595 602 role:checkTaskEnter("BonusQuick", {count = count})
... ...
src/actions/RadioAction.lua
... ... @@ -95,8 +95,9 @@ function _M.startQuestRpc(agent, data)
95 95 return 5
96 96 end
97 97 -- start quest, set finish time
  98 + local timeSub = role:getBnousCrusade(config.time)
98 99 local taskData = {}
99   - taskData["time"] = skynet.timex() + config.time
  100 + taskData["time"] = skynet.timex() + config.time + timeSub
100 101 taskData["heros"] = heros
101 102 radioTask[id] = taskData
102 103 role:updateProperty({field="radioTask", value=radioTask, notNotify=true})
... ...
src/models/Diner.lua
... ... @@ -188,6 +188,10 @@ function Diner:calSellReward(sell, delta, dishData)
188 188 local addReward = {}
189 189 for key, value in pairs(dishData.item_normal:toNumMap()) do
190 190 addReward[key] = (addReward[key] or 0) + value * delta
  191 + if key == ItemId.Gold then
  192 + local goldPriceAdd = self.owner:getBnousDiner(4,value)
  193 + addReward[key] = addReward[key] + goldPriceAdd * delta
  194 + end
191 195 end
192 196  
193 197 popular = dishData.famous_normal * delta
... ... @@ -245,7 +249,7 @@ function Diner:updateSell(slot, calOnly)
245 249 local deltaTime = 0
246 250 local deltaCount = 0
247 251 local timePass = skynet.timex() - sell.time
248   - local sellTime = dishData.sell_time
  252 + local sellTime = dishData.sell_time + self.owner:getBnousDiner(3, dishData.sell_time)
249 253  
250 254 deltaCount = math.floor(timePass / sellTime)
251 255 if deltaCount < sell.count then
... ... @@ -284,7 +288,7 @@ function Diner:expediteSell(slot)
284 288 local dishData = csvdb["diner_dishCsv"][sell.dish][sell.level]
285 289 local expediteCount = 0
286 290 local expediteTime = globalCsv.diner_sell_expediteTime
287   - local sellTime = dishData.sell_time
  291 + local sellTime = dishData.sell_time + self.owner:getBnousDiner(3,dishData.sell_time)
288 292 expediteCount = math.floor(expediteTime / sellTime)
289 293 expediteCount = math.min(expediteCount, sell.count)
290 294 local lastCount = sell.count - expediteCount
... ...
src/models/RoleLog.lua
... ... @@ -57,6 +57,7 @@ local ItemReason = {
57 57 actBuyBpLevel = 141, -- 购买活动战令等级
58 58 newSign = 142,-- 新的活动签到
59 59 advLevelStage = 143, -- 拾荒活动阶段奖励
  60 + towerBnous = 144, -- 爬塔到一定层数对某些功能的奖励
60 61  
61 62  
62 63 advHang = 301, -- 拾荒挂机
... ...
src/models/RolePlugin.lua
... ... @@ -2159,8 +2159,6 @@ function RolePlugin.bind(Role)
2159 2159 return hero:getProperty("faith")
2160 2160 end
2161 2161  
2162   - -- 电波塔加成 开始
2163   -
2164 2162 function Role:getTowerBnousActive(update)
2165 2163 if not update and self.towerBnousActive then
2166 2164 return self.towerBnousActive
... ... @@ -2205,53 +2203,64 @@ function RolePlugin.bind(Role)
2205 2203 return self.towerBnousActive
2206 2204 end
2207 2205  
2208   - function Role:getTowerBnousBattleBuff()
  2206 + function Role:getDeltaValue(result, value)
  2207 + if not result then return 0 end
  2208 + local delta = 0
  2209 + if result[1] and value then
  2210 + delta = math.floor(value * result[1] / 100)
  2211 + end
  2212 + if result[0] then
  2213 + delta = delta + result[0]
  2214 + end
  2215 + return delta
  2216 + end
  2217 +
  2218 + function Role:getBnousBattleBuff()
2209 2219 local towerBnous = self:getTowerBnousActive()
2210 2220 return towerBnous[SystemBnousType.TowerBuff]
2211 2221 end
2212 2222  
2213   - function Role:getTowerBnousCrusade()
  2223 + function Role:getBnousCrusade(value)
2214 2224 local towerBnous = self:getTowerBnousActive()
2215   - return towerBnous[SystemBnousType.CrusadeTask]
  2225 + return self:getDeltaValue(towerBnous[SystemBnousType.CrusadeTask], value)
2216 2226 end
2217 2227  
2218   - function Role:getTowerBnousDiner(type)
  2228 + function Role:getBnousDiner(type, value)
2219 2229 local towerBnous = self:getTowerBnousActive()
2220 2230 type = type or 1
  2231 + local result
2221 2232 if type == 1 then
2222   - return towerBnous[SystemBnousType.DinerGet]
  2233 + result = towerBnous[SystemBnousType.DinerGet]
2223 2234 elseif type == 2 then
2224   - return towerBnous[SystemBnousType.DinerLimit]
  2235 + result = towerBnous[SystemBnousType.DinerLimit]
2225 2236 elseif type == 3 then
2226   - return towerBnous[SystemBnousType.DinerSell]
  2237 + result = towerBnous[SystemBnousType.DinerSell]
2227 2238 elseif type == 4 then
2228   - return towerBnous[SystemBnousType.DinerPrice]
  2239 + result = towerBnous[SystemBnousType.DinerPrice]
2229 2240 end
2230   - return
  2241 + return self:getDeltaValue(result, value)
2231 2242 end
2232 2243  
2233   - function Role:getTowerBnousAdv()
  2244 + function Role:getBnousAdv()
2234 2245 local towerBnous = self:getTowerBnousActive()
2235   - return towerBnous[SystemBnousType.Adv]
  2246 + return towerBnous[SystemBnousType.Adv] or {}
2236 2247 end
2237 2248  
2238   - function Role:getTowerBnousHangTime()
  2249 + function Role:getBnousHangTime()
2239 2250 local towerBnous = self:getTowerBnousActive()
2240   - return towerBnous[SystemBnousType.HangTime]
  2251 + return towerBnous[SystemBnousType.HangTime] or 0
2241 2252 end
2242 2253  
2243   - function Role:getTowerBnousPvpTicket()
  2254 + function Role:getBnousPvpTicket()
2244 2255 local towerBnous = self:getTowerBnousActive()
2245   - return towerBnous[SystemBnousType.PvpTicket]
  2256 + return towerBnous[SystemBnousType.PvpTicket] or {}
2246 2257 end
2247 2258  
2248   - function Role:getTowerBnousSweep()
  2259 + function Role:getBnousSweep()
2249 2260 local towerBnous = self:getTowerBnousActive()
2250   - return towerBnous[SystemBnousType.SweepReward]
  2261 + return towerBnous[SystemBnousType.SweepReward] or {}
2251 2262 end
2252 2263  
2253   - -- 电波塔加成 结束
2254   -
2255 2264 end
2256 2265  
2257 2266 return RolePlugin
2258 2267 \ No newline at end of file
... ...
src/models/RoleTimeReset.lua
... ... @@ -48,6 +48,12 @@ ResetFunc[&quot;CrossWeek&quot;] = function(self, notify, response)
48 48 response.dinerS = {}
49 49  
50 50 self.activity:refreshWeekData(notify)
  51 +
  52 + -- 跨周送一些道具
  53 + local BnousReward = self:getBnousPvpTicket()
  54 + if next(BnousReward) then
  55 + local reward, change = self:award(BnousReward, {log = {desc = "towerBnous"}})
  56 + end
51 57 end
52 58  
53 59  
... ...