寻宝助战匹配简单机器人
This commit is contained in:
@@ -280,7 +280,7 @@ export const COM_BLUEPRT_DROP_PER_AP = 10;
|
||||
// 每局时长限制,秒
|
||||
export const COM_BATTLE_TIME_LMT = 10 * 60;
|
||||
// 机器人生成时间,秒
|
||||
export const COM_BATTLE_ROBOT_TIME_LMT = 1;
|
||||
// export const COM_BATTLE_ROBOT_TIME_LMT = 1;
|
||||
// 每个机器人消耗 boss 血量百分比
|
||||
export const COM_BATTLE_ROBOT_HURT_RATE = 0.4;
|
||||
// 每个机器人消耗 boss 血量百分比浮动范围
|
||||
@@ -289,6 +289,24 @@ export const COM_BATTLE_ROBOT_HURT_RAND_RATE = 0.05;
|
||||
export const COM_BATTLE_FRDCNT_MAX = 150;
|
||||
// 情谊点掉落数量
|
||||
export const COM_BATTLE_FRDCNT_DROP = 10;
|
||||
// 机器人战力上下浮动百分比
|
||||
export const COM_BATTLE_ROBOT_CE_RATIO = 0.2;
|
||||
// 助战匹配机器人的等待时长
|
||||
export const COM_BATTLE_ASSIST_TIME = 60 * 1000;
|
||||
// 队长匹配机器人的等待时长
|
||||
export const COM_BATTLE_CAP_TIME = 60 * 1000;
|
||||
// 人齐后队长开始时长倒计时
|
||||
export const COM_BATTLE_CAP_START_TIME = 60 * 1000;
|
||||
|
||||
// 机器人名字随机
|
||||
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 REDIS_KEY = {
|
||||
USER_INFO: "userInfo", // 玩家缓存信息
|
||||
@@ -303,4 +321,4 @@ export const FUNC_OPT_TYPE = {
|
||||
|
||||
export const FUNCS_ID = {
|
||||
EVENT: 1
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,14 +34,14 @@ export class RoleStatus {
|
||||
// 前五战力
|
||||
@prop({ required: true, default: 0 })
|
||||
topFiveCe: number;
|
||||
// 是否准备
|
||||
@prop({ required: true, default: false })
|
||||
isReady: boolean;
|
||||
// 主公等级
|
||||
@prop({ required: true, default: 1 })
|
||||
lv: number;
|
||||
// 是否机器人
|
||||
@prop({ required: true, default: false })
|
||||
isRobot: boolean;
|
||||
|
||||
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, headHid: number, sHid: number, topFiveCe: number, lv: number) {
|
||||
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, headHid: number, sHid: number, topFiveCe: number, lv: number, heroes = [], isRobot = false) {
|
||||
this.roleId = roleId;
|
||||
this.roleName = roleName;
|
||||
this.isCap = isCap;
|
||||
@@ -51,8 +51,9 @@ export class RoleStatus {
|
||||
this.sHid = sHid;
|
||||
this.topFiveCe = topFiveCe;
|
||||
this.lv = lv;
|
||||
this.heroes = [];
|
||||
this.heroes = heroes;
|
||||
this.killed = [];
|
||||
this.isRobot = isRobot;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import fs = require('fs');
|
||||
import path = require('path');
|
||||
import { ABI_TYPE } from '../consts/abilityConst';
|
||||
import { decodeIdCntArrayStr } from './util';
|
||||
import { decodeIdCntArrayStr, getRandEelm } from './util';
|
||||
import { IT_TYPE } from '../consts/consts';
|
||||
|
||||
let gamedata = {};
|
||||
@@ -346,6 +346,12 @@ export function getExpeditionById(id: number) {
|
||||
return expeditionInfo.get(id);
|
||||
}
|
||||
|
||||
export function getRandExpedition(cnt = 1) {
|
||||
const file = 'dic_expedition';
|
||||
const data = gamedata['jsons'][file] || [];
|
||||
return getRandEelm(data, cnt);
|
||||
}
|
||||
|
||||
export function getComBtlSetByQuality(quality: number) {
|
||||
return comBtlInfo.get(quality);
|
||||
}
|
||||
|
||||
@@ -242,6 +242,11 @@ export function getRefTime(now = new Date(), hour: number, day = 0) {
|
||||
return new Date(today + day * 24 * 60 * 60 * 1000);
|
||||
}
|
||||
|
||||
/**
|
||||
* 从一个数组中随机返回不重复的 cnt 个元素数组
|
||||
* @param source 原数组
|
||||
* @param cnt 返回随机元素个数
|
||||
*/
|
||||
export function getRandEelm(source: Array<any> = [], cnt = 1): Array<any> {
|
||||
if (cnt > source.length) return [];
|
||||
if (cnt === source.length) return source;
|
||||
@@ -256,6 +261,16 @@ export function getRandEelm(source: Array<any> = [], cnt = 1): Array<any> {
|
||||
return source.filter((_item, idx) => idxs.has(idx));
|
||||
}
|
||||
|
||||
/**
|
||||
* 在给定数值的浮动范围中随机一个值
|
||||
* @param base 基础数值
|
||||
* @param ratio 随机范围:base 值上下浮动 ratio(小于 1 的整数)
|
||||
* @param decimal 返回值保留的小数位数
|
||||
*/
|
||||
export function getRandValue(base: number, ratio: number, decimal = 2): number {
|
||||
return parseFloat((base * (1 - ratio + Math.random() * ratio * 2)).toFixed(decimal));
|
||||
}
|
||||
|
||||
export function resResult(status: {code: number, simStr: string}, data = null, customMsg = '') {
|
||||
const { code, simStr } = status;
|
||||
if (code !== STATUS.SUCCESS.code) {
|
||||
|
||||
Reference in New Issue
Block a user