Commit 59a25ac73c594da2b58cc2b8eaad4972ea72d802

Authored by liuzujun
2 parents 6857a37f e8719dc4

fix conflict

@@ -136,6 +136,7 @@ ItemId = { @@ -136,6 +136,7 @@ ItemId = {
136 AdvKey = 80, -- 冒险钥匙 136 AdvKey = 80, -- 冒险钥匙
137 BoxKey = 60, -- 拆解工具 137 BoxKey = 60, -- 拆解工具
138 AdvPower = 4701, -- 拾荒体力 138 AdvPower = 4701, -- 拾荒体力
  139 + CrisisScore = 8010, -- 积分
139 } 140 }
140 141
141 TimeReset = { 142 TimeReset = {
src/ProtocolCode.lua
@@ -228,6 +228,7 @@ actionCodes = { @@ -228,6 +228,7 @@ actionCodes = {
228 Activity_battleRankRpc = 662, 228 Activity_battleRankRpc = 662,
229 Activity_battleMilestoneRpc = 663, 229 Activity_battleMilestoneRpc = 663,
230 Activity_bossRewardRpc = 664, 230 Activity_bossRewardRpc = 664,
  231 + Activity_crisisMilestoneRpc = 665,
231 232
232 Radio_startQuestRpc = 700, 233 Radio_startQuestRpc = 700,
233 Radio_finishQuestRpc = 701, 234 Radio_finishQuestRpc = 701,
@@ -19,6 +19,7 @@ R_ORDER = "order:%d:%d" @@ -19,6 +19,7 @@ R_ORDER = "order:%d:%d"
19 RANK_COMMON = "rank:common:" 19 RANK_COMMON = "rank:common:"
20 RANK_TYPE = { 20 RANK_TYPE = {
21 ActBattleBoss = "act_battle_boss", 21 ActBattleBoss = "act_battle_boss",
  22 + ActCrisis = "crisis",
22 } 23 }
23 24
24 -- rank 25 -- rank
src/actions/ActivityAction.lua
@@ -721,10 +721,15 @@ function _M.battleRankRpc(agent, data) @@ -721,10 +721,15 @@ function _M.battleRankRpc(agent, data)
721 local role = agent.role 721 local role = agent.role
722 local msg = MsgPack.unpack(data) 722 local msg = MsgPack.unpack(data)
723 local actid = msg.actid 723 local actid = msg.actid
724 - if not role.activity:isOpenById(actid, "ChallengeLevel") then return 1 end  
725 -  
726 - local rankInfo = role:getRankInfoCommon(RANK_TYPE.ActBattleBoss)  
727 - 724 + local cfg = csvdb["activity_ctrlCsv"][actid]
  725 + if not cfg then return 1 end
  726 + if not role.activity:isOpen(cfg.showType) then return 2 end
  727 + local actTypeToRank = {
  728 + [role.activity.ActivityType.ChallengeLevel] = RANK_TYPE.ActBattleBoss,
  729 + [role.activity.ActivityType.Crisis] = RANK_TYPE.ActCrisis,
  730 + }
  731 + if not actTypeToRank[cfg.showType] then return end
  732 + local rankInfo = role:getRankInfoCommon(actTypeToRank[cfg.showType])
728 SendPacket(actionCodes.Activity_battleRankRpc, MsgPack.pack(rankInfo)) 733 SendPacket(actionCodes.Activity_battleRankRpc, MsgPack.pack(rankInfo))
729 return true 734 return true
730 end 735 end
@@ -769,6 +774,36 @@ function _M.battleMilestoneRpc(agent, data) @@ -769,6 +774,36 @@ function _M.battleMilestoneRpc(agent, data)
769 return true 774 return true
770 end 775 end
771 776
  777 +function _M.crisisMilestoneRpc(agent, data)
  778 + local role = agent.role
  779 + local msg = MsgPack.unpack(data)
  780 + local actid = msg.actid
  781 + local id = msg.id
  782 + if not role.activity:isOpenById(actid, "Crisis") then return 1 end
  783 + local actCfg = csvdb["activity_mileageCsv"][actid]
  784 + if not actCfg then return 3 end
  785 +
  786 + local curCsv = actCfg[id]
  787 + if not curCsv then return 4 end
  788 +
  789 + if role:getItemCount(ItemId.CrisisScore) < curCsv.condition then
  790 + return 5
  791 + end
  792 +
  793 + local actData = role.activity:getActData("Crisis") or {}
  794 + actData.score = actData.score or {}
  795 + if actData.score[id] then
  796 + return 6
  797 + end
  798 + actData.score[id] = -1
  799 + role.activity:updateActData("Crisis", actData)
  800 +
  801 + local reward, change = role:award(curCsv.reward, {log = {desc = "actMilecrisis", int1 = actid}})
  802 + SendPacket(actionCodes.Activity_crisisMilestoneRpc, MsgPack.pack(role:packReward(reward, change)))
  803 + return true
  804 +end
  805 +
  806 +
772 function _M.bossRewardRpc(agent, data) 807 function _M.bossRewardRpc(agent, data)
773 local role = agent.role 808 local role = agent.role
774 local msg = MsgPack.unpack(data) 809 local msg = MsgPack.unpack(data)
@@ -149,25 +149,15 @@ function Adv:initByChapter(params) @@ -149,25 +149,15 @@ function Adv:initByChapter(params)
149 self.maps = {} 149 self.maps = {}
150 self.maps[1] = AdvMap.new(self, 1, mapId, isEnter, isNewRelay) 150 self.maps[1] = AdvMap.new(self, 1, mapId, isEnter, isNewRelay)
151 151
152 - self:initBattle(nil) 152 + self:initBattle(nil, isToNext)
153 153
154 self:initLayerTask() 154 self:initLayerTask()
155 155
156 - -- 支援效果生效一些  
157 - self:activeSomeSupport() 156 +
158 157
159 self:checkTask(Adv.TaskType.Arrive) 158 self:checkTask(Adv.TaskType.Arrive)
160 self:checkAdvUnlock(1, self.level) 159 self:checkAdvUnlock(1, self.level)
161 160
162 - if isToNext then  
163 - self.battle.player:afterLayer() -- 玩家的buff 清理一下  
164 - end  
165 -  
166 - -- 不是中继层 加上 层 和 地图的buff和被动  
167 - if not self.isRelay then  
168 - self.battle:initMapEffect()  
169 - end  
170 -  
171 -- 中继进入奖励 161 -- 中继进入奖励
172 if relayData and isEnter then 162 if relayData and isEnter then
173 self:awardRelay(relayData, notNotify) 163 self:awardRelay(relayData, notNotify)
@@ -456,8 +446,20 @@ function Adv:clearAdvUnlockCache() @@ -456,8 +446,20 @@ function Adv:clearAdvUnlockCache()
456 self.cacheUnlock = {} 446 self.cacheUnlock = {}
457 end 447 end
458 448
459 -function Adv:initBattle(info) 449 +function Adv:initBattle(info, isToNext)
460 self.battle = require("adv.AdvBattle").new(self) 450 self.battle = require("adv.AdvBattle").new(self)
  451 + -- 支援效果生效一些
  452 + self:activeSomeSupport()
  453 +
  454 + -- 不是中继层 加上 层 和 地图的buff和被动
  455 + if not self.isRelay then
  456 + self.battle:initMapEffect()
  457 + end
  458 +
  459 + if isToNext then
  460 + self.battle.player:afterLayer() -- 玩家的buff 清理一下
  461 + end
  462 +
461 for _, passiveC in ipairs(self.cachePassiveEvent or {}) do 463 for _, passiveC in ipairs(self.cachePassiveEvent or {}) do
462 self.battle:triggerPassive(passiveC[1], passiveC[2]) 464 self.battle:triggerPassive(passiveC[1], passiveC[2])
463 end 465 end
@@ -468,7 +470,7 @@ function Adv:initBattle(info) @@ -468,7 +470,7 @@ function Adv:initBattle(info)
468 map:initBattleAfter() 470 map:initBattleAfter()
469 end 471 end
470 --下层 472 --下层
471 - if not info and self.level ~= 1 then 473 + if not info and isToNext then
472 self.battle.player:attrChangeCondBuffCheck(1) 474 self.battle.player:attrChangeCondBuffCheck(1)
473 end 475 end
474 476
@@ -1553,6 +1555,7 @@ local function clickBuild(self, room, block, params) @@ -1553,6 +1555,7 @@ local function clickBuild(self, room, block, params)
1553 end 1555 end
1554 advMine[2].co = mineCo2 1556 advMine[2].co = mineCo2
1555 self.owner:setProperty("advMine", advMine) 1557 self.owner:setProperty("advMine", advMine)
  1558 + self.owner:checkTaskEnter("AdvMineLayer")
1556 end 1559 end
1557 1560
1558 self:checkTask(Adv.TaskType.Build, 1, oldId) 1561 self:checkTask(Adv.TaskType.Build, 1, oldId)
@@ -2050,6 +2053,7 @@ function Adv:enemyDead(enemy, escape) @@ -2050,6 +2053,7 @@ function Adv:enemyDead(enemy, escape)
2050 advMine[2].co = mineCo2 2053 advMine[2].co = mineCo2
2051 advMine[2].ch = mineCh 2054 advMine[2].ch = mineCh
2052 self.owner:setProperty("advMine", advMine) 2055 self.owner:setProperty("advMine", advMine)
  2056 + self.owner:checkTaskEnter("AdvMineKill")
2053 else 2057 else
2054 local toClick = enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK) 2058 local toClick = enemy:hadBuff(Buff.CHANGE_DROP_TO_CLICK)
2055 if toClick then 2059 if toClick then
src/adv/AdvBuff.lua
@@ -35,7 +35,7 @@ Buff.Buff_NO_PASSIVE_MONSTER = 31 -- 地图被动刷新不出来怪物 @@ -35,7 +35,7 @@ Buff.Buff_NO_PASSIVE_MONSTER = 31 -- 地图被动刷新不出来怪物
35 Buff.SNEAK = 32 --潜行 35 Buff.SNEAK = 32 --潜行
36 Buff.DROP_BUFF_BY_ENEMY = 33 -- 怪物掉落加成 -- 怪物使用 36 Buff.DROP_BUFF_BY_ENEMY = 33 -- 怪物掉落加成 -- 怪物使用
37 Buff.GET_PASSIVE = 34 -- 获得 passive -- 结束失效 37 Buff.GET_PASSIVE = 34 -- 获得 passive -- 结束失效
38 -Buff.OBSTACLE_CHANGE = 35 -- 看守类型改变 -- 怪物使用 0 - 1 38 +Buff.OBSTACLE_CHANGE = 35 -- 看守类型改变 -- 怪物使用 2 - 1
39 Buff.DISABLE_AURA = 36 -- 禁用光环 39 Buff.DISABLE_AURA = 36 -- 禁用光环
40 Buff.GET_AURA = 37 -- 获得光环 40 Buff.GET_AURA = 37 -- 获得光环
41 41
src/adv/AdvPlayer.lua
@@ -662,7 +662,7 @@ end @@ -662,7 +662,7 @@ end
662 662
663 function Enemy:getObstacle() 663 function Enemy:getObstacle()
664 local obstacle = csvdb["event_monsterCsv"][self.monsterId].obstacle 664 local obstacle = csvdb["event_monsterCsv"][self.monsterId].obstacle
665 - if obstacle == 0 and self:hadBuff(Buff.OBSTACLE_CHANGE) then 665 + if obstacle == 2 and self:hadBuff(Buff.OBSTACLE_CHANGE) then
666 obstacle = 1 666 obstacle = 1
667 end 667 end
668 return obstacle 668 return obstacle
src/models/Activity.lua
@@ -28,8 +28,9 @@ Activity.ActivityType = { @@ -28,8 +28,9 @@ Activity.ActivityType = {
28 WishHeroPool = 23, -- 心愿卡池 28 WishHeroPool = 23, -- 心愿卡池
29 ActHeroPool = 24, -- 活动卡池 29 ActHeroPool = 24, -- 活动卡池
30 ActShopGoods = 25, -- 活动商品 30 ActShopGoods = 25, -- 活动商品
31 -}  
32 31
  32 + Crisis = 26, -- 宝藏怪活动
  33 +}
33 34
34 local function checkActivityType(activityType) 35 local function checkActivityType(activityType)
35 if type(activityType) == "string" then 36 if type(activityType) == "string" then
@@ -71,6 +72,7 @@ Activity.schema = { @@ -71,6 +72,7 @@ Activity.schema = {
71 act20 = {"table", {}}, -- {id=扭蛋抽出数量} 72 act20 = {"table", {}}, -- {id=扭蛋抽出数量}
72 73
73 act24 = {"table", {}, true}, -- 活动卡池 {id=repaynum} 74 act24 = {"table", {}, true}, -- 活动卡池 {id=repaynum}
  75 + act26 = {"table", {}}, -- {task = {id = count}, socre = {id = status}}
74 } 76 }
75 77
76 function Activity:data() 78 function Activity:data()
@@ -89,6 +91,7 @@ function Activity:data() @@ -89,6 +91,7 @@ function Activity:data()
89 act18 = self:getProperty("act18"), 91 act18 = self:getProperty("act18"),
90 act19 = self:getProperty("act19"), 92 act19 = self:getProperty("act19"),
91 act20 = self:getProperty("act20"), 93 act20 = self:getProperty("act20"),
  94 + act26 = self:getProperty("act26"),
92 } 95 }
93 end 96 end
94 97
@@ -737,4 +740,44 @@ activityFunc[Activity.ActivityType.ActShopGoods] = { @@ -737,4 +740,44 @@ activityFunc[Activity.ActivityType.ActShopGoods] = {
737 } 740 }
738 741
739 742
  743 +
  744 +activityFunc[Activity.ActivityType.Crisis] = {
  745 + ["check"] = function(self, actType, notify, atype, count) -- 检查
  746 + count = count or 1
  747 + local isOpen, actId = self:isOpen(actType)
  748 + local actData = self:getActData(actType) or {}
  749 + actData.task = actData.task or {}
  750 + local change = false
  751 + local actCsv = csvdb["activity_crisisCsv"][actId]
  752 + for id, actSet in pairs(actCsv) do
  753 + if actSet.type == atype then
  754 + local status = actData.task[id] or 0
  755 + status = status + count
  756 + if status >= actSet.condition1 then
  757 + local reward
  758 + if actSet.loop == 1 then
  759 + local rcount = math.floor(status / actSet.condition1)
  760 + local reward = actSet.reward:toNumMap()
  761 + for itemId, itemC in pairs(reward) do
  762 + reward[itemId] = itemC * rcount
  763 + end
  764 + status = status % actSet.condition1
  765 + else
  766 + reward = actSet.reward
  767 + status = -1
  768 + end
  769 + self.owner:award(reward, {log = {desc = "activity_crisis"}, notNotify = not notify})
  770 + end
  771 + actData.task[id] = status
  772 + change = true
  773 + end
  774 + end
  775 + if change then
  776 + -- 更新下排行榜
  777 + self.owner:updateRankCommon(RANK_TYPE.ActCrisis, self.owner:getItemCount(ItemId.CrisisScore))
  778 + self:updateActData(actType, actData)
  779 + end
  780 + end,
  781 +}
  782 +
740 return Activity 783 return Activity
src/models/RoleLog.lua
@@ -91,6 +91,7 @@ local ItemReason = { @@ -91,6 +91,7 @@ local ItemReason = {
91 actSign = 1007, -- 活动签到 91 actSign = 1007, -- 活动签到
92 actPaySign = 1008, -- 活动付费签到 92 actPaySign = 1008, -- 活动付费签到
93 calendaTask = 1009, -- 英雄帖 93 calendaTask = 1009, -- 英雄帖
  94 + actMilecrisis = 1010, -- 物资危机
94 95
95 -- 餐厅 96 -- 餐厅
96 greenHourse = 1101, -- 食材获得 97 greenHourse = 1101, -- 食材获得
src/models/RoleTask.lua
@@ -48,6 +48,8 @@ local TaskType = { @@ -48,6 +48,8 @@ local TaskType = {
48 AdvScore = 410, -- 冒险分数 - score 48 AdvScore = 410, -- 冒险分数 - score
49 AdvDraw = 411, -- 冒险资助 - count ptype 49 AdvDraw = 411, -- 冒险资助 - count ptype
50 AdvHang = 412, -- 代理拾荒次数 50 AdvHang = 412, -- 代理拾荒次数
  51 + AdvMineKill = 413, -- 宝藏怪击杀
  52 + AdvMineLayer = 414, -- 宝藏洞激活
51 53
52 --爬塔相关 54 --爬塔相关
53 TowerPass = 501, -- 爬塔通关 - level 55 TowerPass = 501, -- 爬塔通关 - level
@@ -218,6 +220,7 @@ local SudokuListener = { @@ -218,6 +220,7 @@ local SudokuListener = {
218 } 220 }
219 221
220 local Activity = require("models.Activity") 222 local Activity = require("models.Activity")
  223 +
221 local ActivityListener = { 224 local ActivityListener = {
222 func = "checkActivityTask", 225 func = "checkActivityTask",
223 listen = { 226 listen = {
@@ -226,6 +229,8 @@ local ActivityListener = { @@ -226,6 +229,8 @@ local ActivityListener = {
226 [TaskType.AdvDraw] = {{Activity.ActivityType.AdvDraw, f("count")}}, 229 [TaskType.AdvDraw] = {{Activity.ActivityType.AdvDraw, f("count")}},
227 [TaskType.OpenBox] = {{Activity.ActivityType.OpenBox, f("count")}}, 230 [TaskType.OpenBox] = {{Activity.ActivityType.OpenBox, f("count")}},
228 [TaskType.Pay] = {{Activity.ActivityType.PayBack, f("twd")}}, 231 [TaskType.Pay] = {{Activity.ActivityType.PayBack, f("twd")}},
  232 + [TaskType.AdvMineKill] = {{Activity.ActivityType.Crisis, 1}},
  233 + [TaskType.AdvMineLayer] = {{Activity.ActivityType.Crisis, 2}},
229 } 234 }
230 } 235 }
231 236
@@ -266,7 +271,6 @@ local CalendaTaskListener = { @@ -266,7 +271,6 @@ local CalendaTaskListener = {
266 } 271 }
267 } 272 }
268 273
269 -  
270 local TaskListeners = { 274 local TaskListeners = {
271 StoryListener, 275 StoryListener,
272 CommonListener, 276 CommonListener,