import * as dicParam from '../../pubUtils/dicParam';

export const ACTION_POIN = {
  MAX: 100000,
  PER: 6 * 60 * 1000
};

export const BATTLE_REWARD_TYPE = {
  FIX_REWARD: 1,
  CONDITION_REWARD: 2,
  RANDOM_REWARD: 3,
  EXTRA_REWARD: 4,
};

export const WAR_TYPE = {
  NORMAL: 1,      // 主线本
  VESTIGE: 2,     // 遗迹本
  EVENT: 3,       // 事件本
  DAILY: 4,       // 每日
  EXPEDITION: 5,  // 远征
  MYSTERY: 6,     // 秘境
  COM_BATTLE: 7,   // 群雄
  TOWER: 8,       // 天梯
  PVP: 9,         // PVP
  GUILD_ACTIVITY: 10,  // 军团活动
  GUILD_TRAIN: 11, // 军团练兵场
  MAIN_ELITE: 12,  // 主线精英
  BRANCH_ELITE: 13, // 秘境精英
  BRANCH: 14,        // 支线
  ACT_TREASURE_HUNT: 15, // 神州探秘
  ACT_SELF_SHOP: 16, // 糜家商队
  ACT_DAILY_GK: 17, // 每日关卡活动
  ACT_NEW_HERO_GK: 18, // 新将演绎活动
  TRY: 19,           // 试用关卡
  BOSS: 20,          // 演武台
  LADDER: 21,        // 名将擂台
  GVG_VESTIGE: 22,        // GVG征战中原
  GVG_BATTLE: 23,        // GVG激战期战斗
};

// 藏宝图掉落参数
export const BLUEPRT_CONST = {
  REFRESH_TIME: 5,    // 每天几点刷新
  DAILY_CNT: 5,       // 每天最多掉落多少张
  PER_AP: 15         // 每多少体力掉落1张藏宝图
};

// 事件，是否开启保存随机记录方式
export const EVENT_RANDOM_TYPE_ONE_OPEN = false;
// 奇遇事件每次刷新几个
export const EVENT_REFRESH_NUM = 3;
// 奇遇事件开启等级
export const EVENT_START_LV = 1;

// 存于用户Role表，事件开启状态
export const EVENT_STATUS = {
  WAITING: 0, // 未开启
  STARTING: 1, // 初步触发，等到挑战完成
  OPEN: 2 // 开启
};

// 奇遇事件状态
export const EVENT_RECORD_STATUS = {
  WAITING: 0, // 初始状态
  BATTLE_SUCCESS: 1,  // 挑战成功，待领取成功奖励
  BATTLE_FAIL: 2,  // 挑战失败，可领取失败奖励
  SUCCESS_RECEIVED: 3,  // 领取成功奖励
  FAIL_RECEIVED: 4  // 领取了失败奖励
};

// 奇遇事件类型
export const EVENT_TYPE = {
  BOX: 1, // 宝箱
  QUIZ: 2, // 答题
  BATTLE: 3 // 战斗
};

export const EVENT_ANSWER_STATUS = {
  WAITING: 0,
  CORRECT: 1,
  WRONG: 2
};

export const EXPEDITION_WAR_RECORD_STATUS = {
  HIDE: -1,
  WAITING: 0,
  SUCCESS: 1,
  FAIL: 2
};

export const EVENT_START_BATTLE = 101;

export const HANG_UP_CONSTS = {
  UNIT_TIME: dicParam.TOWER_HANG_UP.TOWER_HANG_UP_UNIT_TIME * 60 * 1000,  // 每几分钟能有一次收益
  MAX_TIME: dicParam.TOWER_HANG_UP.TOWER_HANG_UP_MAX_TIME * 60 * 60 * 1000,  // 最多可储存24小时收益
  SPD_UP_REC_TIME: dicParam.TOWER_HANG_UP.TOWE_HANG_UP_SPD_UP_REC_TIME * 60 * 60 * 1000 // 加速直接获得6小时收益
}

export const EVENT_QUIZ_NUM = 3;


// 寻宝（共斗）相关
export const COM_TEAM_STATUS = {
  DEFAULT: 0,
  FIGHTING: 1,
  WIN: 2,
  LOOSE: 3
}

// 寻宝配置常量
export const COM_BTL_CONST = {
  ENABLE_LV: 1, // 功能开启等级
  ASSIST_DROP_RATE: 0.5, // 助战掉落占队长掉落的比例
  BLUEPRT_DROP_PER_AP: 10, // 藏宝图伪随机所需体力
  BTL_TIME_LMT: 10 * 60 * 1000, // 每局时长限制
  ROBOT_HURT_RAND_RATE: 0.05, // 每个机器人消耗 boss 血量百分比浮动范围
  FRDCNT_DROP: 10, // 每场情谊点掉落
  ROBOT_CE_RATIO: 0.2, // 没有战力限制的情况下机器人战力上下浮动百分比
  ASSIST_TIME: 20 * 1000, // 助战匹配机器人的等待时长
  MIN_CAP_TIME: 15 * 1000, // 队长匹配机器人的等待时长
  MAX_CAP_TIME: 30 * 1000, // 队长匹配机器人的等待时长
  CAP_START_TIME: 60 * 1000, // 人齐后队长开始时长倒计时
  ROBOT_RND_LMT: 10, // 机器人输出伤害的回合数
  ROBOT_ACT_LMT: 10, // 机器人输出伤害的次数
  ROBOT_BASE_TIME_INTERVAL: 4, // 机器人产生伤害的基础时间
  ROBOT_HURT_RATIO: 0.2, // 单个机器人输出总伤害占 boss 血量比重
  ROBOT_HURT_CH_RATIO: 0.1, // 机器人伤害上下浮动的比例
  ASSIST_REWARD_RATIO: 0.5, // 队员奖励比例
}

// 机器人名字随机
export const COM_BATTLE_ROBOT_ID_NAME = [
  { robotRoleId: 'cd9h0iy8', robotRoleName: '徐埋农' },
  { robotRoleId: 'rtdgr4oz', robotRoleName: '简普瞳' },
  { robotRoleId: 'rv96unin', robotRoleName: '邛瑛' },
  { robotRoleId: 'b33u625l', robotRoleName: '嵇晁伊' },
  { robotRoleId: 'l6wopj9p', robotRoleName: '颜校' },
  { robotRoleId: '6wdqcumj', robotRoleName: '吉辉娇' }
];

export const ROBOT_NAME = [
  '徐埋农', '简普瞳', '邛瑛', '嵇晁伊', '颜校', '吉辉娇', '罗宾', 'A', 'B', 'C', 'D', 'E', 'F'
];

// 镇念塔状态
export enum TOWER_TASK_STATUS {
    WAITING = 0,     // 待派遣
    DOINING = 1,     // 已派遣，进行中
    FINISH = 2,      // 派遣结束
    RECEIVED = 3,    // 已领取
}

export enum TOWER_FORBIDDEN_CHARA_TYPE {
  CHAR = 1, // 角色
  JOB = 2,  // 职业
  CAMP = 3, // 国家
}

export enum LADDER_STATUS {
  NO = 0,  // 无战场
  CHECK = 1, // 出兵中
  BATTLE = 2, // 战斗中
  COMPLETE = 3, // 战斗结束
}

export const LADDER_SERVER_GAP_TIME = 5; // 服务器比客户端晚5秒

export enum LADDER_OPP_STATUS {
  BATTLE = 1,     // 可以挑战
  OPP_IS_LOCKED = 2, // 对手被挑战
  OPP_RANK_CHANGE = 3, // 对手排名变化
  MY_RANK_CHANGE = 4,  // 自己排名变化
}