%%%-------------------------------------------------------------------
%%% @doc     经验海-头文件
%%% Module  : exp_sea.hrl
%%% Created : 2021-07-27
%%% @end
%%% @author : tyl
%%%-------------------------------------------------------------------

-define(EXP_SEA_STRENGTH_NORMAL, 1).    %% 普通强化(消耗材料)
-define(EXP_SEA_STRENGTH_PAY,    2).    %% 付费强化

-define(EXP_SEA_SCENE, 6500).
-define(EXP_SEA_MAX_PEOPLE, 30).

-define(NORMAL_EXIT,  1).       %% 正常退出场景
-define(SPECIAL_EXIT, 2).       %% 特殊情况退出场景(例如未发起退出协议)

%% 经验海角色信息
-record(role_exp_sea, {
	floor        = 0    %% 层数
	,scene_id    = 0
	,pool_id     = 0
	,time        = 0    %% 今天打怪时间
	,enter_time  = 0    %% 进入时间
	,strength    = []   %% 强化信息[{type,use_times}...]
	%% 以下数据不存库
	,reward_list = []   %% 本次进入奖励(掉落)
	,exp         = 0    %% 本次进入获得经验值
	,ref         = []   %% 定时退出场景
}).

%% 经验海管理进程
-record(exp_sea_mgr, {
	role_map      = #{}     %% 角色数据 #{role_id=>#role_exp_sea_record{}}
	,scene_pools  = #{}     %% 场景分线人数 #{floor=>[{pool,num}...]}
}).

%% 经验海记录
-record(role_exp_sea_record, {
	scene_id     = 0
	,pool_id     = 0
	,copy_id     = 0
	,time        = 0    %% 今天打怪时间
}).


%% -------------------------- 配置 -----------------------------------
%% 经验海层数
-record(base_exp_sea_floor, {
	floor    = 0
	,scene   = 0
	,open_lv = 0
	,reward_show = []       %% 前端奖励展示
}).

%% 小怪信息
-record(base_exp_sea_mon, {
	mon_id        = 0
	,mon_name     = ""
	,floor        = 0
	,born_xys     = []      %% 出生坐标
	,reborn_time  = 0       %% 重生时间
	,recommend_lv = 0       %% 推荐等级
}).

%% 常量配置
-record(base_exp_sea_kv, {
	key         = ""
	,value      = ""
	,remark     = ""
}).

%% -------------------------- db -----------------------------------
-define(SQL_INSERT_EXP_SEA, <<"REPLACE INTO role_exp_sea (`role_id`, `time`, `strength_times`) VALUES (~p, ~p, '~ts')">>).
-define(SQL_SELECT_EXP_SEA, <<"SELECT `time`, `strength_times` FROM role_exp_sea WHERE `role_id` = ~p">>).
-define(SQL_UPDATE_EXP_SEA, <<"UPDATE role_exp_sea SET `time`=~p WHERE `role_id` = ~p">>).