Blame view

src/actions/AdvAction.lua 2.89 KB
23d89d13   zhouahaihai   冒险 结构
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
  local ipairs = ipairs
  local table = table
  local math = math
  local next = next
  local string = string
  local redisproxy = redisproxy
  local MsgPack = MsgPack
  local getRandomName = getRandomName
  local mcast_util = mcast_util
  local string_format = string.format
  local tonumber = tonumber
  local require = require
  local table_insert = table.insert
  local tconcat = table.concat
  local table_unpack = table.unpack
  
  local _M = {}
  
46fac6f1   zhouahaihai   酱料
19
  --开始一个新的关卡
23d89d13   zhouahaihai   冒险 结构
20
21
22
  function _M.startAdvRpc( agent, data )
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
46fac6f1   zhouahaihai   酱料
23
24
25
  	local chapterId = msg.chapterId
  
  	--上一个关卡结束才可以开始新的关卡
23d89d13   zhouahaihai   冒险 结构
26
  	local advInfo = role:getProperty("advInfo")
46fac6f1   zhouahaihai   酱料
27
28
  	if next(advInfo) then return end
  	role:getAdvData():initByChapter(chapterId, 1)
23d89d13   zhouahaihai   冒险 结构
29
  
23d89d13   zhouahaihai   冒险 结构
30
31
32
33
  	SendPacket(actionCodes.Adv_startAdvRpc, '')
  	return true
  end
  
46fac6f1   zhouahaihai   酱料
34
35
36
37
  function _M.roleFormatRpc(agent , data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  	local advTeam = role:getProperty("advTeam")
384bb077   zhouahaihai   挂机
38
  	for slot, heroId in pairs(msg.heros) do
46fac6f1   zhouahaihai   酱料
39
40
41
42
43
44
  		if not role.heros[heroId] then
  			return
  		end
  	end
  	table.clear(advTeam)
  	advTeam.heros = {}
384bb077   zhouahaihai   挂机
45
  	for slot, heroId in pairs(msg.heros) do
46fac6f1   zhouahaihai   酱料
46
47
  		advTeam.heros[slot] = heroId
  	end
00115a7a   zhouahaihai   奖励发放
48
49
  	advTeam.leader = msg.leader
  	role:updateProperty({field = "advTeam", value = advTeam})
46fac6f1   zhouahaihai   酱料
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
  	SendPacket(actionCodes.Adv_roleFormatRpc, '')
  	return true
  end
  
  -- 点击地块(解锁)(触发事件)
  function _M.clickBlockRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	local adv = role:getAdvData()
  	local status = adv:clickBlock(msg.roomId, msg.blockId, msg)
  	if not status then return end
  	SendPacket(actionCodes.Adv_clickBlockRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
  --use item 使用背包道具
  function _M.useItemRpc(agent, data)
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
  
  	local adv = role:getAdvData()
  	local status = adv:useItem(msg.itemId, msg.count, msg.target) -- target {roomId = 1, blockId = 1} 选择的目标
  	if not status then return end
  	SendPacket(actionCodes.Adv_useItemRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end
  
42f2d1d3   suhongyang   战斗内技能序列逻辑
78
  --使用营养技能
d27ad5e0   suhongyang   使用营养技
79
  function _M.usePotionRpc(agent, data)
46fac6f1   zhouahaihai   酱料
80
81
  	local role = agent.role
  	local msg = MsgPack.unpack(data)
d27ad5e0   suhongyang   使用营养技
82
83
84
85
  	local dishLevel = role.dinerData:getProperty("dishTree"):getv(msg.potionId, 0)
  	if dishLevel == 0 then
  		return
  	end
46fac6f1   zhouahaihai   酱料
86
  	local adv = role:getAdvData()
d27ad5e0   suhongyang   使用营养技
87
  	local status = adv:usePotion(msg.potionId, dishLevel, msg.target) -- target {roomId = 1, blockId = 1} 选择的目标
46fac6f1   zhouahaihai   酱料
88
  	if not status then return end
d27ad5e0   suhongyang   使用营养技
89
  	SendPacket(actionCodes.Adv_usePotionRpc, MsgPack.pack({events = adv:popBackEvents()}))
46fac6f1   zhouahaihai   酱料
90
91
  	return true
  end
23d89d13   zhouahaihai   冒险 结构
92
  
ec87b4a5   zhouahaihai   冒险 完善
93
94
95
96
97
98
99
100
101
102
  --退出
  function _M.exitAdvRpc(agent, data)
  	local role = agent.role
  	-- local msg = MsgPack.unpack(data)
  	local adv = role:getAdvData()
  	local status = adv:exit() -- target {roomId = 1, blockId = 1} 选择的目标
  	SendPacket(actionCodes.Adv_exitAdvRpc, MsgPack.pack({events = adv:popBackEvents()}))
  	return true
  end 
  
ae20365b   suhongyang   Revert "修改冒险战斗逻辑"
103
  
23d89d13   zhouahaihai   冒险 结构
104
  return _M