%% -----------------------------
%% module   :guild_collect.hrl
%% desc     :社团午间菜鸡
%% author   :hh
%% time     :20/02/26
%% -----------------------------

%% 社团午间采集-裂缝配置
-record(base_guild_collect_mon, {
    mon_id = 0,             %% 封印怪
    min_world_lv = 0,       %% 世界等级下限
    max_world_lv = 0        %% 世界等级上限
    }).


%% 社团午间采集-怪物奖励配置
-record(base_guild_collect_mon_rewards, {
    lv_min = 0,             %% 玩家等级
    lv_max = 0,             
    rewwards = [],          %% 召唤击杀奖励
    help_rewards = []       %% 击杀协助奖励
    }).

%% 社团采集协助数据
-record(guild_collect_support_info, {
    guild_id = 0,
    support_maps = #{},          %% sid => #support_instance{}
    role_maps = #{}             %% role_id => {[发起协助id], 前往协助id} 
    }).

%% 管理进程
-record(guild_collect_state, {
    status = 0,             %% 当前状态
    start_time = 0,         %% 当前状态开始时间
    end_time = 0,           %% 当前状态结束时间
    season = 0,             %% 场次
    guild_scene = 0,        %% 本次场景
    guild_list = [],        %% 帮派列表
    collect_status = #{},   %%
    wave = 0,               %% 每场刷怪波次
    index = 1,              %% 怪物序号
    ref = undefined,        %% 刷怪定时器
    guild_mon_data = [],    %% 社团怪物列表
    support_hurt_data = [], %% 协助者信息 [{被协助者, [{协助者, hurt}]}]
    support_mon_data = []   %% 协助者怪物信息
    % guild_support_info = [] %% [#guild_collect_support_info{}]
    }).


%% 个人信息
-record(role_guild_collect, {
    last_collect_time = 0,      %% 最近一次菜鸡时间
    last_enter_time = 0,        %% 最近一次参与活动时间
    collect_count = 0           %% 本场活动采集次数
    }).

%% 一个协助的数据
-record (support_instance, {
    sid = 0,                    %% 协助唯一id
    req_role = 0,               %% 请求协助者
    boss_id = 0,                %% 需要协助的怪物唯一id
    res_roles = [],             %% 响应协助者
    create_time = 0             %% 创建时间
    }).

-define(GUILD_COLLECT_CLOSED, 0).
-define(GUILD_COLLECT_OPEN,   1).

%% collect_status主键
-define(GUILD_INIT_REF, guild_init_ref).
-define(GUILD_COLLECT_ACT_REF, guild_collect_act_ref).
-define(GUILD_INVADE_MON_HURT, guild_invade_mon_hurt).


%% 计数器次数主键
-define(GUILD_COLLECT_1, 1). %% 活动参与次数
-define(GUILD_COLLECT_2, 2). %% 个人封印次数

%% 活动结束清除
-define(GUILD_COLLECT_3, 3). %% 单场采集次数
-define(GUILD_COLLECT_4, 4). %% 单场协助次数

-define(WEIGHT_MAX, 10000).

-define(GUILD_COLLECT_INVADE_MON, guild_collect_invade_mon).

-define(GUILD_COLLECT_GM,             gm).  %% gm开启
-define(GUILD_COLLECT_ACT,           act).  %% 活动日历开启

-define(INIT_MON_DELAY, 10000).

%% 社团采集协助数据ets主键
-define(ETS_GUILD_COLLECT_ASSIST, guild_collect_assist).

%% 数据库
-define(SELECT_COLLECT_INFO, <<"SELECT last_collect_time, last_enter_time, collect_count FROM role_guild_collect WHERE role_id = ~p">>).
-define(REPLACE_COLLECT_INFO, <<"REPLACE INTO role_guild_collect SET role_id = ~p, last_collect_time = ~p, last_enter_time = ~p, collect_count = ~p">>).