添加寻宝数据库和简单的组队接口
This commit is contained in:
+32
-1
@@ -25,6 +25,10 @@ export const BATTLE_REWARD_TYPE = {
|
||||
RANDOM_REWARD: 3
|
||||
};
|
||||
|
||||
export const IT_TYPE = {
|
||||
BLUEPRT: 28
|
||||
}
|
||||
|
||||
export const GOOD_TYPE = {
|
||||
EQUIP: 1,
|
||||
CONSUMES: 2,
|
||||
@@ -220,4 +224,31 @@ export const GOLD_COST_RATIO = {
|
||||
|
||||
export const EXPRESSION = {
|
||||
"CE": "1*hp+2*atk+2*matk+2*def+2*mdef+2*agi+2*luk+1*hit+1*cri+1*flee+1*antCri+1.75*damageIncrease+1.75*damageDecrease+3.5*defIngnore+3.5*bloodSuck"
|
||||
}
|
||||
}
|
||||
|
||||
// 寻宝(共斗)相关
|
||||
export const COM_TEAM_STATUS = {
|
||||
DEFAULT: 0,
|
||||
FIGHTING: 1,
|
||||
WIN: 2,
|
||||
LOOSE: 3
|
||||
}
|
||||
|
||||
// 功能开启等级
|
||||
export const COM_TEAM_ENABLE_LV = 1;
|
||||
// 助战掉落占队长掉落的比例
|
||||
export const COM_ASSIST_DROP_RATE = 0.5;
|
||||
// 藏宝图伪随机所需体力
|
||||
export const COM_BLUEPRT_DROP_PER_AP = 10;
|
||||
// 每局时长限制,秒
|
||||
export const COM_BATTLE_TIME_LMT = 10 * 60;
|
||||
// 机器人生成时间,秒
|
||||
export const COM_BATTLE_ROBOT_TIME_LMT = 1;
|
||||
// 每个机器人消耗 boss 血量百分比
|
||||
export const COM_BATTLE_ROBOT_HURT_RATE = 0.4;
|
||||
// 每个机器人消耗 boss 血量百分比浮动范围
|
||||
export const COM_BATTLE_ROBOT_HURT_RAND_RATE = 0.05;
|
||||
// 每日情谊点上限
|
||||
export const COM_BATTLE_FRDCNT_MAX = 100;
|
||||
// 情谊点掉落数量
|
||||
export const COM_BATTLE_FRDCNT_DROP = 10;
|
||||
@@ -69,8 +69,18 @@ export const STATUS = {
|
||||
TOWER_TASK_MISSING: { code: 20517, simStr: '未找到该任务' },
|
||||
TOWER_HANG_UP_NOT_START: { code: 20518, simStr: '挂机尚未开启' },
|
||||
TOWER_REF_CNT_NOT_ENOUGH: { code: 20518, simStr: '派遣次数不足' },
|
||||
// 共斗 20600 - 20699
|
||||
// 寻宝(共斗) 20600 - 20699
|
||||
COM_BATTLE_DUP_ENTER: { code: 20601, simStr: '不能重复加入' },
|
||||
COM_BATTLE_BLUEPRT_NOT_FOUND: { code: 20602, simStr: '藏宝图不足' },
|
||||
COM_BATTLE_BLUEPRT_INVALID: { code: 20603, simStr: '需使用藏宝图才能开启' },
|
||||
COM_BATTLE_BLUEPRT_NOT_ENOUGH: { code: 20604, simStr: '藏宝图不足,还有未结束的寻宝' },
|
||||
COM_BATTLE_CREATE_ERR: { code: 20605, simStr: '创建队伍失败' },
|
||||
COM_BATTLE_LV_NOT_ENOUGH: { code: 20606, simStr: '主公等级不够' },
|
||||
COM_BATTLE_MEMBER_LIMIT: { code: 20607, simStr: '队伍人数已满' },
|
||||
COM_BATTLE_CE_LIMIT: { code: 20608, simStr: '战力不足' },
|
||||
COM_BATTLE_JOIN_ERR: { code: 20609, simStr: '加入队伍失败' },
|
||||
COM_BATTLE_NO_VALID_TEAM: { code: 20610, simStr: '没有合适的队伍' },
|
||||
|
||||
// 秘境 20700 - 20799
|
||||
DUNGEON_REFRESH_TIMES_LACK: { code: 20701, simStr: '购买次数不足' },
|
||||
DUNGEON_TIMES_LACK: { code: 20701, simStr: '挑战次数不足' },
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
class RoleStatus {
|
||||
export class RoleStatus {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
@prop({ required: true })
|
||||
@@ -15,8 +15,20 @@ class RoleStatus {
|
||||
@prop({ required: false, default: '' })
|
||||
battleCode: string;
|
||||
// 玩家所用阵容
|
||||
@prop({ required: false })
|
||||
@prop({ required: false, type: Number, default: [] })
|
||||
heroes: Array<number>;
|
||||
// 阵亡武将
|
||||
@prop({ required: false, default: [] })
|
||||
killed: Array<number>;
|
||||
// 是否情谊助阵
|
||||
@prop({ required: false, default: false })
|
||||
isFrd: boolean;
|
||||
// 头像
|
||||
@prop({ required: true, default: 1 })
|
||||
headHid: number;
|
||||
// 前五战力
|
||||
@prop({ required: true, default: 0 })
|
||||
topFiveCe: number;
|
||||
}
|
||||
|
||||
@index({ teamCode: 1 })
|
||||
@@ -28,7 +40,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true })
|
||||
teamCode: string;
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
@prop({ required: true, type: String, default: [] })
|
||||
roleIds: Array<string>
|
||||
|
||||
// 队伍是否开放加入
|
||||
@@ -43,12 +55,36 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number;
|
||||
|
||||
@prop({ required: true, default: [] })
|
||||
@prop({ required: true, type: RoleStatus, default: [] })
|
||||
roleStatus: Array<RoleStatus>;
|
||||
|
||||
// 队长 roleId
|
||||
@prop({ required: true })
|
||||
capId: string;
|
||||
|
||||
// 战力限制
|
||||
@prop({ required: true, default: 0 })
|
||||
ceLimit: number;
|
||||
|
||||
public static async createTeam(teamData: {teamCode: string, roleIds: Array<string>, pub: boolean, blueprtId: number, status: number, roleStatus: Array<RoleStatus>, capId: string}, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamData.teamCode }, {$set :{...teamData}}, {upsert: true, new: true}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async addRole(teamCode: string, roleStatus: RoleStatus, lean = true) {
|
||||
const team = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamCode }, {$push: {roleIds: roleStatus.roleId, roleStatus}}, {upsert: true, new: true}).lean(lean);
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async findTeamByCapAndStatus(roleId: string, status: number, lean = true) {
|
||||
const teams = await ComBattleTeamModel.find({capId: roleId, status}).lean(lean);
|
||||
return teams;
|
||||
}
|
||||
|
||||
public static async getTeamByBlueprt(blueprtIds: Array<number>, status: number, pub = true, limit = 50, lean = true) {
|
||||
const teams = await ComBattleTeamModel.find({blueprtId: {$in: blueprtIds}, status, pub}).limit(limit).lean(lean);
|
||||
return teams;
|
||||
}
|
||||
}
|
||||
|
||||
export const ComBattleTeamModel = getModelForClass(ComBattleTeam);
|
||||
@@ -39,6 +39,8 @@ export default class Role extends BaseModel {
|
||||
blocked: boolean; // 是否屏蔽
|
||||
@prop({ required: true })
|
||||
code: string; // 邀请码
|
||||
@prop({ required: true, default: 1 })
|
||||
headHid: number; // 头像所用武将 Id
|
||||
|
||||
@prop({ required: true, default: 0 })
|
||||
exp: number; // 经验值
|
||||
|
||||
Reference in New Issue
Block a user