%%%------------------------------------------------
%%% File    : record.hrl
%%% Author  : xyao
%%% Created : 2011-12-13
%%% Description: 物品相关信息
%%%  map 存储所有物品 key 为背包位置 value 是该背包内的所有物品dict格式
%%% 普通背包取消cell
%%%
%%%------------------------------------------------
%% 物品状态表：存于进程字典
-record(goods_status, {
          player_id = 0                         %% 用户ID
          , player_lv = 0                       %% 用户等级
          , dict = #{}                          %% 物品maps
          , cell_num = 0                        %% 背包格子大小
          , storage_num = 0                     %% 仓库格子大小
          , temp_bag = #{}                        %% 增加物品时，需要的背包大小
         }).

%% 玩家物品记录
%% 获得时初始化：lib_goods_util:get_new_goods/1
%% 玩家数据加载时初始化：lib_goods_util:make/2
-record(goods, {
    id=0,                               %% 物品Id
      player_id=0,                        %% 角色Id
      goods_id=0,                         %% 物品类型Id，对应ets_goods_type.goods_id
      type=0,                             %% 物品类型
      subtype=0,                          %% 物品子类型
      bind=0,                             %% 绑定状态，0非绑定，1绑定
      bag_location=0,                     %% 物品配置应当存放的背包位置, 见def_goods.hrl
      location=0,                         %% 物品所在位置, 见def_goods.hrl
      cell=0,                             %% 物品所在格子位置
      num=0,                              %% 物品数量
      expire_time=0,                      %% 有效期，0为无
      color=0,                            %% 物品颜色
      ctime = 0,                          %% 物品获得时间(创建):第一次使用程序时间:后面使用数据库的创建记录时间(时间有点误差)
      extra_data = []                     %% 一般以[{key, value}|_]格式存储，或者不同物品类型自定义
      ,level=0                            %% 物品等级
}).

%% 吞噬
-record(status_devour, {
    lv = 0,
    exp = 0,
    is_auto = 1,
    active_lv = 0,
    attr = []
}).

%%物品类型记录
-record(ets_goods_type, {
          goods_id = 0,                       %% 物品类型Id
          goods_name = <<>>,                  %% 物品名称
          type = 0,                           %% 物品类型
          subtype = 0,                        %% 物品子类型
          bind=0,                             %% 绑定状态，0非绑定，1绑定
          bag_location = 4,                   %% 物品存放的背包位置
          use = 0,                            %% 是否在背包使用，0默认不可使用，1可使用
          compose = 0,                        %% 是否在背包合成，0默认不可使用，1可合成
          sell = 0,                           %% 是否在背包出售，0为不可出售，1为可出售
          drop = 1,                           %% 是否可丢弃，0为不可丢弃，1为可丢弃
          quick_use = 0,                      %% 是否获得立即使用，0不立即使用，1立即使用
          level=0,                            %% 等级限制
          max_overlap=0,                      %% 可叠加数:0为不可叠加
          color=0,                            %% 物品颜色:0白色 1绿色 2蓝色 3紫色 4橙色 5红装
          expire_type = 0,                    %% 过期类型:0无类型 1开服天数 2合服天数
          expire_time=0,                      %% 有效期，0为无
          model_id = 0,                       %% 模型资源id
          jump = 0,                           %% 是否可以跳转:0否;1是
          sell_category = 0,                  %% 交易市场商品类型
          sell_subcategory = 0,               %% 交易市场商品子类型
          trade_price=0,                      %% 交易底价（为0时无底价）
          price_markup = 0,                   %% 交易每次加价价格
          buyout_price = 0,                   %% 交易一口价（为0时无一口价）
          market_show_time = 0,               %% 公示时间-上架多久后可交易（秒）
          selling_time = 0,                   %% 上架时间-可交易多长时间（秒）
          is_to_market = 0,                   %% 是否会流入世界拍卖（当上架公会拍卖流拍时是否能流入世界拍卖，1是0否）
          market_range = 0,                   %% 可上架区域，0表示社团和世界都可以上架，1表示只能上架世界，2表示只能上架社团
          sex=0,                              %% 性别限制，0为不限，1为男，2为女
          
          %% 不用
          career=0,                           %% 职业限制:0为不限 前端用
          base_attrlist=[]                    %% 基础属性 前端用
         }).

%% 物品价格表(不经常修改)
-record(goods_price, {
          goods_id = 0,                       %% 物品类型id
          price_type = 1,                     %% 价格类型:0:物品(一般物品出售不配为物品);1:钻石;2:绑定钻石;3金币;4:公会贡献
          price = 0,                          %% 购买价格
          sell_price_type = 3,                %% 出售价格类型
          sell_price = 0                      %% 出售价格
         }).

%% 快速购买价格
-record(quick_buy_price, {
         goods_type_id = 0,
         gold_price = 0,
         bgold_price = 0,
         coin_price = 0,
         consume_type = unknown
        }).


%% 物品分解配置
-record(goods_decompose_cfg, {
          goods_id = 0,                       %% 物品类型id
          module = 0,                         %% 功能id
          irregular_num = 0,                  %% 随机材料能获得的种类
          irregular_mat = [],                 %% 分解获得的随机材料
          regular_num = 0,                    %% 固定材料种类
          regular_mat = []                    %% 分解获得的固定材料 [{type, goods_id, num}]
         }).

%% 物品效果
-record(goods_effect, {
          goods_id = 0,                       %% 物品类型ID
          goods_type = 0,                     %% 道具类型：0，即一次性道具；1BUFF道具
          buff_type = 0,                      %% BUFF类型ID
          effect_list = [],                   %% 效果[{coin,铜钱},{gold,元宝},{onhook_time, 1|2|5小时},{renet_day, Day}...]
          time = 0,                           %% 持续时长(秒)
          limit_type = 0,                     %% 限制类型：0无限制，1每日限制，2每周限制，3终生限制
          counter_module = 0,                 %% 次数所属模块ID
          counter_id = 0,                     %% 次数ID
          limit_scene = []                    %% BUFF或者道具可使用和生效的场景ID
         }).

%% 物品兑换规则
-record(goods_exchange_cfg, {
          id = 0,                             %% 兑换规则id
          type = 0,                           %% 兑换类型
          role_lv = 0,                        %% 需要的玩家等级
          max_role_lv = 0,                    %% 最大玩家等级
          cost_list = [],                     %% 消耗的物品列表
          obtain_list = [],                   %% 获得的物品列表
          lim_type = 0,                       %% 次数限制类型 0: 不限制 1: 每天限制 2: 每周限制 3: 终身限制
          module = 0,                         %% 模块id
          sub_module = 0,                     %% 模块子功能id
          lim_num = 0,                        %% 限制兑换数量
          condition = []                      %% 兑换开启条件[{Type, Value}], {Type:atom; Value：term}
         }).

-define(SHOW_TIPS_0,    0).                   %% 0不飘
-define(SHOW_TIPS_1,    1).                   %% 1右下角飘字
-define(SHOW_TIPS_2,    2).                   %% 2聊天频道消息
-define(SHOW_TIPS_3,    3).                   %% 3右下角飘字 + 聊天频道消

%% 产出
-record(produce, {
          type        = undefined :: atom(),  %% 类型
          subtype     = 0,                    %% 子类型
          title       = "",                   %% 标题[背包不足]
          content     = "",                   %% 邮件[背包不足]
          off_title   = "",                   %% 不在线标题(off_title或off_content为"",则取title和content的内容)
          off_content = "",                   %% 不在线标题
          module      = 0,
          module_sub  = 0,
          reward      = [],                   %% 奖励
          remark      = "",                   %% 备注
          show_tips   = 3                     %% 是否飘提示：0不飘|1右下角飘字|2聊天频道消息|3右下角飘字 + 聊天频道消
         }).

%% 消耗额外参数
-record(cost_log_about, {
          type        = 0,                    %% 消费类型  商城为3
          data        = [],                   %% 自定义类型
          remark      = ""                    %% 备注
         }).


%% 进化合成配置
-record(base_goods_compose_or_evolution_info, {
    rule_id = 0                 %% 规则id
    , target_goods_id           %% 目标物品id
    , classify_id               %% 合成分类
    , subclass                  %% 合成子类
    , condition                 %% 合成条件
    , main_goods_id             %% 主材料id
    , cost_goods                %% 消耗物品
    , cost_money                %% 消耗钱财
    , base_ratio                %% 初始成功率
    , show_tv                   %% 是否传闻
}).
