local ItemData = require("bag.Proto").ItemData
local HeroSimple = require("hero.Proto").HeroSimple
local Attr = require("role.Proto").Attr
local RoleBase = require("role.Proto").RoleBase

-- 双方基础信息
ValleyMainInfo = {
	{"svrName",		1,		"string"},		-- 服务器名
	{"star",		1,		"byte"},		-- 星星数(破营数) 0-3
	{"roadStates",	3,		"byte"},		-- 3路营地状态 数组长度3  0-没表现 1-被击破，火烧
}

-- 侦查阶段额外数据
ValleyMainExplore = {
	{"time",		1,		"int"},			-- 已侦查时长 秒
	{"maxTime",		1,		"int"},			-- 总侦查时长 秒 
	{"exploreRed",	1,		"byte"},		-- 侦查奖励红点
}

-- 
ValleyFightMoveNet = {
	{"camp",		1,		"byte"},		-- 1-己方 2-敌方
	{"roadIndex",	1,		"byte"},		-- 营地 1-左 2-中 3-右
	{"startPos",	1,		"byte"},		-- 起始点(0-3) 0-营地 3-离营地最远
	{"moveToPos",	1,		"byte"},		-- 移动目标点(1-3) 1-离营地最近 3-离营地最远
	{"moveTime",	1,		"int"},			-- 已移动时长 秒 
	{"moveTimeMax",	1,		"int"},			-- 移动到目标点所需总时长 秒
	{"name",		1,		"string"},		-- 玩家名字
	{"body",		1,		"int"},			-- 形象
}

-- 战斗阶段
ValleyMainFight = {
	{"fightState",	1,		"byte"},			-- 子状态 0-提前结束 1-行军 2-准备 3-战斗
	{"leftTime",	1,		"byte"},			-- 子状态剩余时间
	{"players",		18,		ValleyFightMoveNet},-- 场上玩家信息
}

-- 主界面数据
-- 倒计时到0，客户端重新请求CG_VALLEY_QUERY
ValleyMainNet = {
	{"state",		1,		"byte"},			-- 活动阶段 1-休战 2-报名阶段 3-匹配阶段 4-侦查阶段 5-战斗 
	{"leftTime",	1,		"int"},				-- 现活动阶段剩余时间 秒
	{"taskRed",		1,		"byte"},			-- 成就红点
	{"logRed",		1,		"byte"},			-- 日志红点	
	{"isSign",		1,		"byte"},			-- 是否已报名
	{"roadIndex",	1,		"byte"},			-- 入驻的营地 1-左 2-中 3-右 0-无入驻
	{"info1",		1,		ValleyMainInfo},	-- 我方信息
	{"info2",		1,		ValleyMainInfo},	-- 敌方信息
	{"exploreData",	2,		ValleyMainExplore},	-- 侦查阶段额外数据 其它阶段该数组长度为0
	{"fightData",	2,		ValleyMainFight},	-- 战斗阶段额外数据 其它阶段该数组长度为0
}
-- 主界面查询
CG_VALLEY_QUERY = {}
GC_VALLEY_QUERY = {
	{"data",		1,		ValleyMainNet},
}

-- 报名
CG_VALLEY_SIGN = {}
GC_VALLEY_SIGN = {}

 
-- 营地界面查看 入驻玩家列表
ValleyRoadPlayer = {
	{"uuid",		1,		"string"},
	{"name",		1,		"string"},			-- 玩家名
	{"zhandouli",	1,		"double"},			-- 
	{"tili",		1,		"byte"},			-- 当前体力
	{"heroList",	6,		HeroSimple},		-- 英雄列表
}
CG_VALLEY_ROAD_QUERY = {
	{"camp",		1,		"byte"},			-- 1-己方 2-敌方
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右
}
GC_VALLEY_ROAD_QUERY = {
	{"state",		1,		"byte"},			-- 活动阶段 1-休战 2-报名阶段 3-匹配阶段 4-侦查阶段 5-战斗 
	{"camp",		1,		"byte"},			-- 1-己方 2-敌方
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右
	{"cnt",			1,		"int"},				-- 该营地入驻玩家数量
	{"list",		30,		ValleyRoadPlayer},	-- 该营地入驻玩家列表 仅返回前面30个
	{"myData",		1,		ValleyRoadPlayer},	-- 我的信息
	{"myRoadIndex",	1,		"byte"},			-- 入驻的营地 1-左 2-中 3-右 0-无入驻	
	{"isSign",		1,		"byte"},			-- 是否报名
}

-- 入驻/换路 选择一路加入 
-- 入驻/换路 成功会返回 GC_VALLEY_ROAD_QUERY和GC_VALLEY_ROAD_CHANGE
CG_VALLEY_ROAD_CHANGE = {
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右 0-退出
}
GC_VALLEY_ROAD_CHANGE = {
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右 0-退出
}

-- 侦查奖励查看
ValleyExploreLog = {
	{"time",		1,		"int"},				-- 侦查时间
	{"content",		1,		"string"},			-- 内容
}
CG_VALLEY_EXPLORE_QUERY = {}
GC_VALLEY_EXPLORE_QUERY = {
	{"time",		1,		"int"},				-- 侦查开始时间
	{"logs",		30,		ValleyExploreLog},	-- 记录列表
	{"items",		30,		ItemData},			-- 奖励列表
}

-- 领取侦查奖励 成功返回GC_VALLEY_EXPLORE_QUERY
CG_VALLEY_EXPLORE_GET = {}

-- 鼓舞查看
ValleyInspireBase = {
	{"svrName",		1,		"string"},			-- 服务器名字
	{"cnt",			1,		"int"},				-- 鼓舞人数
	{"maxCnt",		1,		"int"},				-- 最大值(用来显示进度条用)
}
ValleyInspireNet = {
	{"round",		1,		"byte"},			-- 第x轮
	{"base1",		1,		ValleyInspireBase},	-- 已方信息
	{"base2",		1,		ValleyInspireBase},	-- 敌方信息
	{"inspireItems",2,		ItemData},			-- 可选择的鼓舞道具列表
	{"selectIndex",	1,		"byte"},			-- 已选择(1/2) 0-表示还没鼓舞
}
CG_VALLEY_INSPIRE_QUERY = {}
GC_VALLEY_INSPIRE_QUERY = {
	{"data",		1,		ValleyInspireNet},	-- 鼓舞相关信息
	{"leftTime",	1,		"byte"},			-- 鼓舞剩余时间	
}

-- 鼓舞 
CG_VALLEY_INSPIRE_SELECT = {
	{"selectIndex",	1,		"byte"},			-- 选择鼓舞方式 1-2
}
GC_VALLEY_INSPIRE_SELECT = {
	{"selectIndex",	1,		"byte"},			-- 选择鼓舞方式 1-2	
}

-- 获得鼓舞奖励弹窗
GC_VALLEY_INSPIRE_RESULT = {
	{"winCnt",		1,		"byte"},			-- 胜x场
	{"failCnt",		1,		"byte"},			-- 负x场
	{"items",		3,		ItemData},			-- 获得奖励
}

-- 观战面板查询
ValleyFightBase = {
	{"svrName",		1,		"string"},			-- 服务器名字
	{"leftCnt",		1,		"int"},				-- 剩余队伍
	{"maxCnt",		1,		"int"},				-- 最大队伍	
}
ValleyFightPlayer = {
	{"roleBase",	1,		RoleBase},			-- 角色信息
	{"attrsUp",		2,		Attr},				-- 属性提升 长度0表示没有
	{"tili",		1,		"byte"},			-- 剩余体力
	{"isWin",		1,		"byte"},			-- 是否胜利
	{"heroList",	6,		HeroSimple},		-- 出战英雄
}
CG_VALLEY_FIGHT_QUERY = {
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右 	
}
GC_VALLEY_FIGHT_QUERY = {
	{"fightState",	1,		"byte"},			-- 0-战斗中(还没出结果) 1-战斗完成(结果出来)
	{"inspireData",	1,		ValleyInspireNet},	-- 鼓舞相关信息
	{"fightPlayers",2,		ValleyFightPlayer},	-- 己方和敌方战斗相关信息 长度0表示此路战斗已结束
	{"fightBase",	2,		ValleyFightBase},	-- 双方基础信息 长度一定为2
	{"videoUuid",	1,		"string"},			-- 录像uuid,""表示没有
}

-- 战斗刷新 如果客户端处于观战面板且对应营地 重新请求CG_VALLEY_FIGHT_QUERY
GC_VALLEY_FIGHT_QUERY_REFRESH = {
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右 	
}

-- 观战
CG_VALLEY_FIGHT_PLAY = {
	{"videoUuid",	1,		"string"},			-- 录像uuid
}


-- 成就查看
ValleyTaskNet = {
	{"id",			1,		"int"},
	{"desc",		1,		"string"},			-- 描述
	{"state",		1,		"byte"},			-- 状态 0-不可领 1-可领 2-已领
	{"items",		3,		ItemData},			-- 奖励列表
	{"cnt",			1,		"int"},				-- 当前进度
	{"maxCnt",		1,		"int"},				-- 最大进度
}
CG_VALLEY_TASK_QUERY = {
	{"taskType",	1,		"byte"},			-- 目标类型 1-个人目标 2-团队目标
}
GC_VALLEY_TASK_QUERY = {
	{"taskType",	1,		"byte"},			-- 目标类型 1-个人目标 2-团队目标
	{"reds",		2,		"byte"},			-- 红点列表 分别为个人目标和团队目标的红点
	{"list",		30,		ValleyTaskNet},		-- 成就列表
}

-- 成就领取
CG_VALLEY_TASK_GET = {
	{"id",			1,		"int"},	
}
GC_VALLEY_TASK_GET = {
	{"id",			1,		"int"},	
	{"reds",		2,		"byte"},			-- 红点列表 分别为个人目标和团队目标的红点	
}

-- 日志查看
ValleyLogNet = {
	{"time",		1,		"int"},				-- 时间戳
	{"roleBase1",	1,		RoleBase},			-- 角色信息
	{"roleBase2",	1,		RoleBase},			-- 角色信息
	{"tili1",		1,		"byte"},			-- 体力
	{"tili2",		1,		"byte"},			-- 体力
	{"isWin",		1,		"byte"},			-- 是否胜利
}
CG_VALLEY_LOG_QUERY = {
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右 	0-自己的
}
GC_VALLEY_LOG_QUERY = {
	{"roadIndex",	1,		"byte"},			-- 营地 1-左 2-中 3-右 	0-自己的	
	{"logs",		30,		ValleyLogNet},		-- 日志列表
}

-- 排行榜查看
ValleyBoardNet = {
	{"rank",		1,		"int"},				-- 排名 0-表示未上榜
	{"roleBase",	1,		RoleBase},			-- 角色信息
	{"killCnt",		1,		"byte"},			-- 杀敌数
}
CG_VALLEY_BOARD_QUERY = {
	{"camp",		1,		"byte"},			-- 1-己方 2-敌方
}
GC_VALLEY_BOARD_QUERY = {
	{"camp",		1,		"byte"},			-- 1-己方 2-敌方
	{"list",		50,		ValleyBoardNet},	-- 排行榜列表
	{"myData",		1,		ValleyBoardNet},	-- 我的信息
}
