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

-- 界面查询，可能返回GC_DRILL_DIFF或者GC_DRILL_QUERY
CG_DRILL_QUERY = {}

DRILL_INFO = {
    {"drillId",   1,       "byte"},
	{"items",	  5,	   ItemData}
}

DrillFriendHeroInfo = {
    {"name",        1,      "string"},         -- 好友名字
    {"uuid",        1,      "string"},         -- 好友uuid
    {"state",       1,      "byte"},           -- 0 可上阵 1 不可上阵
    {"pos",         1,       "byte"},          -- 上阵pos
    {"heroSimple",        1,      HeroSimple},       -- 支援我的好友英雄
}

DRILL_DIFF = {
    {"diff",         1,       "byte"},      -- 难度
    {"canChose",     1,       "byte"},      -- 能否选择
    {"needZhanli",       1,       "int"},
    {"reward",       2,       ItemData},    -- 奖励
}

-- 难度查询
GC_DRILL_DIFF = {
    {"list",        3,     DRILL_DIFF},
    {"isGuide",     1,     "byte"},    -- 是否有指引
}

-- 难度选择
CG_DRILL_DIFF_CHOSE = {
    {"diff",         1,       "byte"},
}

DRILL_BOX = {
    {"index",        1,       "byte"},
    {"needId",       1,       "byte"},
    {"state",        1,       "byte"},       -- 0 不可领取    1  可领取    2  已领取
    {"reward",       3,       ItemData},
}

-- 当前关卡
GC_DRILL_ID = {
    {"drillId",      1,       "byte"},    
    {"diff",         1,       "byte"},
    {"box",          5,        DRILL_BOX},  -- 已经被领取的箱子
    {"dayGet",       3,        ItemData},  
    {"maxDiff",      1,        "byte"},   -- 通关最大难度
    {"canOneClickSaodang", 1,  "byte"},  -- 是否开启一键扫荡 0-未开启 1-开启
    {"openPanel",    1,        "byte"},  -- 是否打开界面 0-不打开只刷新数据 1-打开界面
}

-- 请求关卡信息
CG_DRILL_INFO = {
    {"drillId",      1,       "byte"},
}

-- 返回关卡信息
GC_DRILL_INFO = {
    {"drillId",   1,       "byte"},
	{"svrName",   1,       "string"},   -- 服务器名字 
    {"roleBase",  1,       RoleBase},
	{"reward",	  5,	   ItemData},
    {"defence",   6,       HeroSimple},	
    {"double",    1,       "byte"},    -- 是否 为福利双倍
    {"quick",     1,       "byte"},    -- 是否跳过
    {"showNext",  1,       "byte"},    -- 是否显示下一关
}

-- 试炼宝箱奖励领取
CG_DRILL_BOX_GET = {
    {"index",      1,      "byte"},
}

GC_DRILL_BOX_GET = {
    {"type",       1,      "byte"},    -- 0 正常领取   1 诸神怜悯
    {"index",        1,      "byte"},    -- 箱子下标
}
-- 好友援助查询
CG_DRILL_FRIEND_HELP_QUERY = {
}


GC_DRILL_FRIEND_HELP_QUERY = {
    {"ownChose",       3, DrillFriendHeroInfo},  -- 我已经选择了的 英雄 援助列表
    {"herolist",      30, DrillFriendHeroInfo},  -- 支援我的 好友 英雄
    {"myHelpIndex",    1,      "int"},
}

-- 好友援助 选择
CG_DRILL_FRIEND_CHOSE = {
    {"type",            1,      "byte"},     --  1  选择自己的英雄派遣    2  选择好有英雄 援助自己
    {"index",           1,      "int"},
    {"uuid",            1,      "string"},
}

-- 返回英雄状态数据
CG_DRILL_HERO = {}
GC_DRILL_HERO = {
    {"heroList",        30,      HeroSimple},
    {"helpList",    3,      DrillFriendHeroInfo},  -- 我雇佣的英雄
    {"isFirst",     1,       "byte"},
    {"isLast",      1,       "byte"},
}

-- 复活查询
CG_DRILL_FUHUO_QUERY = {
}

GC_DRILL_FUHUO_QUERY = {
    {"needZuanshi",  1,       "int"},      -- 当前复活次数   复活每一个英雄所需要的钻石
    {"maxCnt",       1,       "byte"},
    {"canCnt",       1,       "byte"},
}

-- 试炼操作
CG_DRILL_OPER_HP = {
    {"operType",   1,    "byte"},
	{"heroIndex",  1,    "string"}
}

CG_DRILL_REWARD_PREVIEW = {}

GC_DRILL_REWARD_PREVIEW = {
    {"list", 15, DRILL_INFO}
}

-- 助战英雄出战
CG_DRILL_SET_HELP_COMBATPOS = {
    {"uuid",        1,      "string"},      -- 雇佣英雄的主人uuid
    {"pos",         1,      "byte"},        -- 位置   
}

GC_DRILL_SAODANG_ITEM = {
    {"drillId",           1,    "int"},    
    {"itemList",          5,    ItemData},
    {"double",            1, "byte"},
}


-- 消耗钻石来通关当前关卡
CG_DRILL_FIGHT_BY_DIAMON = {
    {"levelID",        1,      "byte"},      -- 当前关卡Id
}

-- 一键扫荡
CG_DRILL_ONE_CLICK_SAODANG = {}

GC_DRILL_ONE_CLICK_SAODANG = {
    {"drillId",           1,    "int"},     -- 扫荡到的关卡ID
    {"itemList",          5,    ItemData},  -- 奖励列表
    {"double",            1,    "byte"},    -- 是否双倍
}