local ItemData = require("bag.Proto").ItemData
local BuyItem = require("topup.Proto").BuyItem
local RoleBase = require("role.Proto").RoleBase

tActInfo = 
{
    {"ID",          1,      "short"},           -- 子活动ID
    {"name",        1,      "string"},          -- 子活动名
    {"nSortID",	    1,		"short"},		    -- 排序id
    {"nPanelID",	1,		"short"},		    -- 面板id
	{"nIcon",		1,		"int"},			    -- 活动图标
    {"nRed",        1,      "byte"},            -- 是否有红点 1 存在 0 不存在
}

-- 玩家登录主动下发活动信息(活动开启时)
GC_SERVEERCOMMERCE_ACT_ALLINFO = {
    {"nStartTime",       1,     "int"},     -- 开启时间
    {"nEendTime",        1,     "int"},     -- 结束时间
    {"tActID",          10,     tActInfo},   -- 活动信息
}

---------------------- 战区集结 ----------------------
TaskInfo = {
    {"nID",             1,      "int"},         -- 任务编号
    {"nState",          1,      "byte"},        -- 0 不可领取 1 - 可领取 2- 已领取
    {"nDay",            1,      "byte"},        -- 天数
    {"nValue",          1,      "int"},         -- 任务需要完成次数
    {"nPoint",          1,      "byte"},        -- 完成获得积分
    {"Desc",            1,      "string"},      -- 任务描述
    {"nFinish",         1,      "int"},         -- 当前完成次数
    {"item",            5,      ItemData},      -- 奖励信息
}

TaskPointInfo = {
    {"nID",             1,      "int"},         -- 积分奖励ID
    {"nNeedPoint",      1,      "int"},         -- 需要积分
    {"nState",          1,      "byte"},        -- 0 不可领取 1 - 可领取 2- 已领取
    {"item",            5,      ItemData},      -- 奖励信息
}

-- 请求战区集结任务信息
CG_SERVEERCOMMERCE_ACT_TASKQUERY = {
    {"nDay",            1,      "int"},     
}


-- 战区集结 - 任务信息回复协议
GC_SERVEERCOMMERCE_ACT_TASKQUERY = 
{
    {"leftTime",    1,      "int"},         -- 活动剩余时间
    {"nDay",        1,    "int"},           -- 天数
    {"nNowPoint",   1,    "int"},           -- 当前积分
    {"nNowDay",     1,    "int"},          -- 当前是第几天
    {"list",        15,   TaskInfo},        -- 奖励信息
    {"tRed",        8,     "byte"},         -- 天数红点 0 没有 1有
}

-- 请求领取任务奖励 
CG_SERVEERCOMMERCE_ACT_GETTASKPRIZE = 
{
   {"nDay",         1,     "int"},          -- 天数
}

-- 请求任务积分信息
CG_SERVEERCOMMERCE_ACT_TASKPOINTQUERY = {
}

-- 请求任务积分信息回包
GC_SERVEERCOMMERCE_ACT_TASKPOINTQUERY = 
{
    {"nNowPoint",   1,      "int"},         -- 当前积分
    {"listPoint",   8,    TaskPointInfo}    -- 积分信息
}

-- 战区集结 - 领取任务积分奖励
CG_SERVEERCOMMERCE_ACT_GETTASKPOINTPRIZE = {}

----------------------------------------- 连充豪礼协议开始 -------------------------------------
CHARGEINFO = {
    {"nID",             1,      "int"},         -- 奖励编号
    {"nState",          1,      "byte"},        -- 0 不可领取 1 - 可领取 2- 已领取
    {"nDay",            1,      "int"},         -- 天数
    {"nAllMoney",         1,        "int"},     -- 已累充金额
    {"item",            5,      ItemData},      -- 奖励信息
}

-- 请求连充豪礼-信息
CG_SERVEERCOMMERCE_ACT_CHARGEQUERY = {
    {"nMoney",            1,       "int"}       -- 金额
}

-- 请求连充豪礼-信息回包
GC_SERVEERCOMMERCE_ACT_CHARGEQUERY = {
    {"nMoney",            1,       "int"},          -- 金额
    {"nChargeDay",        1,        "int"},         -- 已充值天数
    {"list",              10,        CHARGEINFO},    -- 信息
    {"tRed",              5,        "byte"},         -- 金额红点 0 没有 1有
}

-- 请求领取连充豪礼
CG_SERVEERCOMMERCE_ACT_CHARGEGETPRIZE = {
    {"nMoney",            1,       "int"},          -- 金额
}
-- 回复 CG_SERVEERCOMMERCE_ACT_CHARGEQUERY-信息回包

----------------------------------------- 战区钜惠协议开始 -------------------------------------
COMMERCESHOPINFO = 
{
    {"nID",             1,          "int"},         -- 奖励编号
    {"nNeedPoint",      1,          "int"},         -- 需要积分
    --{"pointItem",       1,          ItemData},      -- 积分物品
    {"nFreeState",      1,          "byte"},        -- 免费奖励状态 0 不可领取 1 - 可领取 2- 已领取
    {"nPayState",       1,           "byte"},        -- 付费奖励状态 0 不可领取 1 积分达成未购买, 2 积分未达成但购买 3 可领取 4 已领取
    {"tFreeItem",       5,          ItemData},      -- 免费奖励信息
    {"buyItem",         1,          BuyItem},       -- 直购信息
    {"tPayItem",        5,          ItemData},      -- 付费奖励信息
}

-- 请求战区钜惠信息
CG_SERVEERCOMMERCE_ACT_SHOPQUERY = {}

-- 请求战区钜惠 - 回包
GC_SERVEERCOMMERCE_ACT_SHOPQUERY = 
{
    {"nNowPoint",        1,           "int"},       -- 当前积分
    {"list",             15,          COMMERCESHOPINFO},   -- 奖励配置
}

-- 请求领取战区钜惠奖励
CG_SERVEERCOMMERCE_ACT_SHOPGETPRIZE = 
{
    {"nType",         1,             "byte"},            -- 领取类型（1、免费 2、付费）
}

----------------------------------------- 排行榜相关协议开始 -------------------------------------
ServerCommerceActRankList = {
    {"rank",                1,         "int"},      -- 名次(-1未上榜)
    {"rankNeedValue",       1,         "int"},      -- 上榜条件值
    {"items",               6,         ItemData},   -- 排行名次奖励列表    
    {"uid",                 1,         "string"},   -- 用户id(未上榜为"")
    {"name",                1,         "string"},   -- 角色名(未上榜为"")
    {"head",                1,         "int"},      -- 头像(未上榜为-1)  
    {"rankValue",           1,         "int"},      -- 当前排名值     
    {"headFrame",           1,         "int"},      -- 头像框(未上榜为-1)
    {"servername",          1,         "string"},   -- 服务器名称
    --{"pointItem",           1,          ItemData},  -- 积分物品
}

ServerCommerceActOnwerData = {
    {"rank",             1,          "int"},        -- 名次(-1未上榜)
    {"rankValue",        1,          "int"},        -- 当前排名值
    {"items",            6,         ItemData},      -- 档位奖励列表(未上榜没有奖励) 
    {"rankNeedValue",        1,       "int"},     -- 积分物品
    {"servername",      1,           "string"},     -- 服务器名称
}

-- 排行榜查询
CG_SERVEERCOMMERCE_ACT_RANK_QUERY = {
    {"nRankType",       1,      "int"},     -- 排行榜类型 1 服务器排行榜，2 个人排行榜
}

-- 排行榜查询 - 回包
GC_SERVEERCOMMERCE_ACT_RANK_QUERY = {                  
    {"list",            22,         ServerCommerceActRankList},      -- 排行名次列表
    {"ownerData",       1,          ServerCommerceActOnwerData},     -- 自己排名数据
}

----------------------------------------- 巅峰战场协议开始 -------------------------------------
-- 对手信息
-- PeakBattlefieldOpponent = {
--     {"uuid",        1,      "string"},      -- 对手uuid
--     {"rank",        1,      "int"},        -- 对手排名
--     {"roleBase",    1,      RoleBase},     -- 对手角色信息
-- }

-- -- 查询巅峰战场数据
-- CG_PEAK_BATTLEFIELD_QUERY = {}

-- -- 查询巅峰战场数据 - 回包
-- GC_PEAK_BATTLEFIELD_QUERY = {
--     {"rank",            1,      "int"},                    -- 当前排名
--     {"freeChallengeCnt", 1,      "byte"},                   -- 免费挑战次数
--     {"opponentList",    5,      PeakBattlefieldOpponent},  -- 对手列表
--     {"unlockedHeroes",  50,     "int"},                     -- 已解锁英雄ID列表
--     {"leftTime",        1,      "int"},                     -- 活动剩余时间（秒）
-- }

-- -- 刷新对手列表
-- CG_PEAK_BATTLEFIELD_REFRESH = {}

-- -- 刷新对手列表 - 回包
-- GC_PEAK_BATTLEFIELD_REFRESH = {
--     {"opponentList",    5,      PeakBattlefieldOpponent},  -- 对手列表
-- }

-- -- 挑战对手
-- CG_PEAK_BATTLEFIELD_CHALLENGE = {
--     {"opponentUuid",    1,      "string"},                 -- 对手uuid
-- }

-- -- 挑战对手 - 回包
-- GC_PEAK_BATTLEFIELD_CHALLENGE = {
--     {"result",          1,      "byte"},                     -- 战斗结果 1-胜利 2-失败
--     {"newRank",         1,      "int"},                     -- 新排名
--     {"reward",          10,     ItemData},                   -- 奖励列表
--     {"opponentList",    5,      PeakBattlefieldOpponent},  -- 新的对手列表（胜利时返回）
-- }

-- -- 查询排名奖励
-- CG_PEAK_BATTLEFIELD_RANK_REWARD_QUERY = {}

-- -- 查询排名奖励 - 回包
-- GC_PEAK_BATTLEFIELD_RANK_REWARD_QUERY = {
--     {"rank",            1,      "int"},                    -- 当前排名
--     {"rewardList",      20,     "int"},                     -- 排名奖励ID列表
-- }

BATTLEGROUND_MATCHPLAYER_INFO = {
    {"rank",              1,      "int"},                  -- 当前排名
    {"serverId",          1,      "int"},                  -- 所属服务器Id
    {"name",              1,      "string"},               -- 名字
    {"showBodyId",        1,      "int"},                  -- 形象Id
}

BATTLEGROUND_HERO_INFO = {
    {"heroHeadId",            1,      "int"},              -- 英雄头像Id
    {"heroName",              1,      "string"},           -- 英雄名字
    {"heroCamp",              1,      "byte"},             -- 英雄种族
    {"heroLv",                1,      "short"},            -- 英雄等级
    {"heroStar",              1,      "byte"},             -- 英雄星级
    {"heroGrade",             1,      "byte"},             -- 英雄品质
    {"heroBodyId",            1,      "int"},              -- 英雄形像Id
    {"heroId",                1,      "int"},              -- 英雄Id
    {"heroUuid",              1,      "string"},           -- 英雄唯一Id
    {"heroBagIdx",            1,      "int"},              -- 背包位置
    {"heroJob",               1,      "int"},              -- 英雄职业
}

SERVEERCOMMERCE_ACT_RANK_INFO = {
    {"rank",              1,      "int"},                  -- 当前排名
    {"serverId",          1,      "int"},                  -- 所属服务器Id
    {"name",              1,      "string"},               -- 名字
    {"heroHeadId",        1,      "int"},                  -- 玩家头像Id
    {"heroHeadFrameId",   1,      "int"},                  -- 玩家头像框Id
}

SERVEERCOMMERCE_ACT_RANKAWARD_INFO = {
    {"minRank",                1,      "short"},            -- 最低排名
    {"maxRank",                1,      "short"},            -- 最高排名
    {"rankAward",              4,      ItemData},           -- 排名奖励
}


-- 查询巅峰战场主界面数据
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_MAINPAGE_QUERY = {}
GC_SERVEERCOMMERCE_ACT_BATTLEGROUND_MAINPAGE_QUERY = {
    {"myRank",              1,      "int"},                  -- 当前排名
    {"freeChallengeCnt",    1,      "byte"},                 -- 免费挑战次数
    {"showBodyId",           1,      "int"},                 -- 形象Id
}

-- 匹配列表界面查询
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_MATCHLIST_QUERY = {}
GC_SERVEERCOMMERCE_ACT_BATTLEGROUND_MATCHLIST_QUERY = {
    {"myRank",              1,      "int"},                  -- 当前排名
    {"freeChallengeCnt",    1,      "byte"},                 -- 免费挑战次数
    {"matchList",           5,      BATTLEGROUND_MATCHPLAYER_INFO},   -- 匹配列表
    {"isGetNew",            1,      "byte"},                 -- 是否获得新英雄, 0-没有, 1-有
    {"exchangeCost",        1,      ItemData},               -- 挑战一次消耗的挑战券信息
}

-- 查询玩家数据
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_PLAYER_QUERY = {
    {"rank",              1,      "int"},                  -- 当前排名
}
GC_SERVEERCOMMERCE_ACT_BATTLEGROUND_PLAYER_QUERY = {
    {"serverId",          1,      "int"},                  -- 所属服务器Id
    {"name",              1,      "string"},               -- 名字
    {"heroArr",           6,      BATTLEGROUND_HERO_INFO}, -- 英雄列表
    {"heroHeadId",        1,      "int"},                  -- 玩家头像Id
    {"heroHeadFrameId",   1,      "int"},                  -- 玩家头像框Id
    {"isQuick",           1,      "byte"},                 -- 是否跳过战斗, 0-否, 1-是
}

-- 英雄背包查询
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_HEROBAG_QUERY = {}
GC_SERVEERCOMMERCE_ACT_BATTLEGROUND_HEROBAG_QUERY = {
    {"heroArr",           30,      BATTLEGROUND_HERO_INFO}, -- 英雄列表
    {"isEnd",              1,      "byte"},        -- 分段协议发送完成标识, 0-没有, 1-发完
}

-- 排行榜查询
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_RANK_QUERY = {}
GC_SERVEERCOMMERCE_ACT_BATTLEGROUND_RANK_QUERY = {
    {"rankList",           20,      SERVEERCOMMERCE_ACT_RANK_INFO}, -- 排行榜列表
    {"myRankInfo",         1,        SERVEERCOMMERCE_ACT_RANK_INFO}, -- 我的排名信息
    {"isEnd",              1,      "byte"}, -- 分段发完标识, 0-没有, 1-发完
}

-- 排名奖励查询
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_RANKAWARD_QUERY = {}
GC_SERVEERCOMMERCE_ACT_BATTLEGROUND_RANKAWARD_QUERY = {
    {"rankAwardList",           10,      SERVEERCOMMERCE_ACT_RANKAWARD_INFO}, -- 排行榜奖励
}

-- 更新匹配列表
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_UPDATE_MATCHLIST = {}

-- 一键扫荡
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_ONECLICK_SWEEP = {}

-- 已经知道获得新英雄了
CG_SERVEERCOMMERCE_ACT_BATTLEGROUND_ALREAFY_KNOW = {}

