local HeroExcel = require("excel.hero").hero
local ItemExcel = require("excel.item").item
local EquipExcel = require("excel.equip").equip
local FuwenExcel = require("excel.fuwen").fuwen
local LogDefine = require("common.LogDefine")
local ItemColorExcel = require("excel.paoma").itemColor

-- 道具品质
ITEM_RARE_COLOR_1 = 1   -- 白
ITEM_RARE_COLOR_2 = 2   -- 绿
ITEM_RARE_COLOR_3 = 3   -- 蓝
ITEM_RARE_COLOR_4 = 4   -- 紫
ITEM_RARE_COLOR_5 = 5   -- 橙
ITEM_RARE_COLOR_6 = 6   -- 红

-- 主类型
MAINTYPE_ITEM = 1				-- 道具
MAINTYPE_EQUIP = 2 				-- 装备
MAINTYPE_FUWEN = 3 				-- 符文

-- 武器子类型
EQUIP_SUBTYPE_WEAPON = 1 		-- 武器
EQUIP_SUBTYPE_CLOTH = 2 		-- 衣服
EQUIP_SUBTYPE_SHIPIN = 3 		-- 饰品
EQUIP_SUBTYPE_SHOES = 4 		-- 鞋子
EQUIP_SUBTYPE_RING = 5			-- 戒指
EQUIP_SUBTYPE_AMULET = 6		-- 护符

EQUIP_SUBTYPE_SHUIJIN = -1 		-- 水晶(弃用)
EQUIP_SUBTYPE_SHENQI = -2 		-- 神器(弃用)


EQUIP_MAX_CNT = 6				-- 装备最大部位数量

-- 道具子类型
ITEM_SUBTYPE_SPOBJ = 0 				-- 自动使用
ITEM_SUBTYPE_COMMON = 1 			-- 普通道具
ITEM_SUBTYPE_SUIPIAN = 2 			-- 普通碎片
ITEM_SUBTYPE_SUIPIAN_SKIN = 3 		-- 皮肤碎片
ITEM_SUBTYPE_TALISMAM = 4 			-- 秘宝
ITEM_SUBTYPE_SUIPIAN_TALISMAM = 5 	-- 秘宝碎片
ITEM_SUBTYPE_RELIC=6                -- 遗物
ITEM_SUBTYPE_SUIPIAN_RELIC =7       -- 遗物碎片
ITEM_SUBTYPE_ELF = 8	 			-- 精灵
ITEM_SUBTYPE_SUIPIAN_ELF = 9        -- 精灵碎片

-- 道具可操作类型
ITEM_OP_USE = 1 				-- 使用
ITEM_OP_YULAN = 2 				-- 预览
ITEM_OP_DETAIL = 3 				-- 详情
ITEM_OP_USE_BATCH = 4 			-- 批量使用
ITEM_OP_SOURCE = 5 			    -- 来源
ITEM_OP_SELL  = 6               -- 出售
ITEM_OP_USE_BOX  = 7            -- 箱子的使用
ITEM_OP_HECHENG  = 8            -- 合成
ITEM_OP_EQUIP  = 9              -- 能否穿戴
ITEM_OP_CZHU  = 10              -- 能否重铸
ITEM_OP_FJIE  = 11              -- 能否分解
ITEM_OP_DUIHUAN = 12			-- 能否兑换

PAGE_LIST_COUNT = 30   			--游戏背包每次发送的数量
BAG_ITEM_MAX_CNT = 2100000000 	-- 背包道具叠加上限
BAG_ITEM_MAX_JINBI = 999999999999 -- 携带金币上限


ITEM_JINBI_ID			        = 101       -- 金币
ITEM_ZUANSHI_ID			        = 102       -- 钻石
ITEM_EXP_ID				        = 103       -- 经验
ITEM_VIP_EXP_ID			        = 104       -- VIP经验
ITEM_SOUL_SUIPIAN_ID            = 105       -- 灵魂碎片   

ITEM_DRILL_COIN_ID              = 107       -- 勇者印记
ITEM_LUCK_ID       		        = 108       -- 幸运币 (许愿池商店货币)
ITEM_UNION_COIN_ID		        = 109       -- 公会币

ITEM_GREEN_EXP_ID		        = 111       -- 英魂 英雄升级道具
ITEM_HERO_UPGRADE_ID	        = 112       -- 进阶果 英雄进阶道具
ITEM_QINGBAO_ID		            = 113       -- 情报
ITEM_JJC_TICKET_ID              = 115       -- 竞技场挑战卷
ITME_HUOYUE_ID                  = 116       -- 日常任务活跃度
ITEM_HERO_UPGRADE_BOOK	        = 114       -- 进阶书

ITEM_DRAWCARD_GAOCHOU_ID        = 118       -- 高级召唤卷抽
ITEM_FRIEND_ID			        = 119       -- 友情值
ITEM_BASE_QIYUANZHU_ID          = 120       -- 祈愿珠,基础许愿池
ITEM_BASE_QIYUANBAOZHU_ID       = 121       -- 祈愿宝珠，高级许愿池
ITEM_BASE_JUANZHOU_ID           = 122       -- 悬赏任务 刷新卷

ITEM_XIANZHI_BAOZHU_ID          = 124       -- 先知宝珠[召唤用]
ITEM_XIANZHI_ZHUFU_ID           = 125       -- 先知祝福[置换用]
ITEM_XIANZHI_DUIHUAN_ID 	    = 126       -- 先知转轴[英雄兑换用]

ITEM_HERO_CHONGSHENG_ID	        = 132       -- 重生果实
ITEM_HERO_HUITUI_ID 	        = 133       -- 英雄回退用的道具
ITEM_FUWEN_JINGHUA              = 134       -- 符文精华
ITEM_WEEKTASK_ID				= 181		-- 周任务积分
ITEM_HONOR_ID					= 182		-- 荣耀积分

ITEM_MANGHE_ID                  = 535       -- 盲盒钥匙
ITEM_DRAWCARD_JINGYING_ID       = 538       -- 精英召唤卷轴
ITEM_XINGYAOGONGMING_ID         = 168       -- 星耀共鸣


ITEM_LONGHUNSHI_ID              = 127       -- 龙魂石
ITEM_MOLONGJING_ID              = 128       -- 魔龙晶
ITEM_MOSHENJINGLIANSHI_ID       = 129       -- 魔神精炼石
ITEM_MOSHENHUNJING_ID           = 130       -- 魔神魂晶
ITEM_SHENGYINGMOSHI_ID          = 131       -- 圣印魔石
ITEM_LONGXUE_ID                 = 170       -- 龙之血

-- 判断是否为道具
function isItem(id)
	local itemConfig = ItemExcel[id]
	if not itemConfig then return end
	return id and ItemExcel[id]
end

-- 判断是否为装备
function isEquip(id)
	local equipConfig = EquipExcel[id]
	if not equipConfig then return end
	return id and EquipExcel[id]
end

-- 判断是否为符文
function isFuwen(id)
	local itemConfig = FuwenExcel[id]
	if not itemConfig then return end
	return id and FuwenExcel[id]
end

-- 获得配置
function getConfig(id)
	if not id then return end
	return ItemExcel[id] or EquipExcel[id] or FuwenExcel[id]
end

-- 获取道具参数
function getValue(id, key)
	local config = getConfig(id)
	if not config then return end
	return config[key]
end

-- 获取色值
function getItemColor(id)
	local config = getConfig(id)
	local str = "#028d19"
	if not config then
		return str
	end
	local colorConfig = ItemColorExcel[config.rare]
	if not colorConfig then
		return str
	end
	return colorConfig.color
end

-- 检测是否需要飘窗
function checkIsWave(log)
	if not log then
		return false
	end

	if WAVE_DEFINE[log] and WAVE_DEFINE[log] == true then
		return true
	end
	return false
end

-- 根据道具名获取道具id
local tempItemList = {ItemExcel, EquipExcel, FuwenExcel}
function getIdByName(name)
	if type(name) ~= "string" then
		return
	end
	if #name < 1 then return end
	for _, itemsConfig in ipairs(tempItemList) do
		for id, cf in pairs(itemsConfig) do
			if cf.name == name then
				return id
			end
		end
	end
	for _, itemsConfig in ipairs(tempItemList) do
		for id, cf in pairs(itemsConfig) do
			if string.find(cf.name, name, 1, true) then
				return id
			end
		end
	end	
end


-- 道具获得时浮动提示
WAVE_DEFINE = {
	[LogDefine.DEFINE.gm] = true ,
	[LogDefine.DEFINE.jjc_worship] = true,
    [LogDefine.DEFINE.war_report] = true,
	[LogDefine.DEFINE.yj_treasure_kaowen] = true,
}
