寻宝:奖励
This commit is contained in:
@@ -1,8 +1,8 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop, DocumentType } from '@typegoose/typegoose';
|
||||
import { EXTERIOR } from '../pubUtils/dicParam';
|
||||
import { ItemReward } from '../domain/dbGeneral';
|
||||
import { nowSeconds } from '../pubUtils/timeUtil';
|
||||
import { RoleUpdate } from './Role';
|
||||
|
||||
export class ComRoleStatusHero {
|
||||
@prop({ required: true })
|
||||
@@ -33,12 +33,23 @@ export class ComRoleStatusHero {
|
||||
}
|
||||
}
|
||||
|
||||
export class ComBattleReward {
|
||||
@prop({ required: true })
|
||||
type: number;
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
@prop({ required: true })
|
||||
count: number;
|
||||
}
|
||||
|
||||
export class RoleStatus {
|
||||
@prop({ required: true })
|
||||
roleId: string;
|
||||
@prop({ required: true })
|
||||
roleName: string;
|
||||
@prop({ required: true })
|
||||
guildCode: string;
|
||||
@prop({ required: true })
|
||||
isCap: boolean;
|
||||
@prop({ required: true, default: 0 })
|
||||
totalDmg: number;
|
||||
@@ -79,30 +90,30 @@ export class RoleStatus {
|
||||
@prop({ required: true, default: false })
|
||||
gotReward: boolean;
|
||||
// 队长奖励
|
||||
@prop({ required: true, default: [], type: ItemReward })
|
||||
fixReward: ItemReward[];
|
||||
// 队友奖励
|
||||
@prop({ required: true, default: [], type: ItemReward })
|
||||
teammateReward: ItemReward[];
|
||||
@prop({ required: true, default: [], type: ComBattleReward, _id: false })
|
||||
rewards: ComBattleReward[];
|
||||
// 好友间伤害加成
|
||||
@prop({ required: true, default: 0 })
|
||||
frdRatio: number = 0;
|
||||
|
||||
constructor(roleId: string, roleName: string, isCap: boolean, isFrd: boolean, head: number, frame: number, spine: number, topLineupCe: number, lv: number, heroes: ComRoleStatusHero[] = [], isRobot = false) {
|
||||
this.roleId = roleId;
|
||||
this.roleName = roleName;
|
||||
constructor(role: RoleUpdate, isCap: boolean, isFrd: boolean, heroes: ComRoleStatusHero[] = [], isRobot = false) {
|
||||
if(role) {
|
||||
this.roleId = role.roleId||'';
|
||||
this.roleName = role.roleName||'';
|
||||
this.guildCode = role.guildCode||'';
|
||||
this.head = role.head||EXTERIOR.EXTERIOR_FACE;
|
||||
this.frame = role.frame||EXTERIOR.EXTERIOR_FACECASE;
|
||||
this.spine = role.spine||EXTERIOR.EXTERIOR_APPEARANCE;
|
||||
this.topLineupCe = role.topLineupCe||0;
|
||||
this.lv = role.lv||1;
|
||||
}
|
||||
this.isCap = isCap;
|
||||
this.totalDmg = 0;
|
||||
this.isFrd = isFrd;
|
||||
this.head = head;
|
||||
this.frame = frame;
|
||||
this.spine = spine;
|
||||
this.topLineupCe = topLineupCe;
|
||||
this.lv = lv;
|
||||
this.heroes = heroes;
|
||||
this.killed = [];
|
||||
this.isRobot = isRobot;
|
||||
this.fixReward = [];
|
||||
this.rewards = [];
|
||||
}
|
||||
|
||||
addFrdRatio(frdRatio: number) {
|
||||
@@ -162,7 +173,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
status: number;
|
||||
|
||||
@prop({ required: true, type: RoleStatus, default: [] })
|
||||
@prop({ required: true, type: RoleStatus, default: [], _id: false })
|
||||
roleStatus: RoleStatus[];
|
||||
|
||||
// 队长 roleId
|
||||
@@ -178,7 +189,7 @@ export default class ComBattleTeam extends BaseModel {
|
||||
roleCnt: number;
|
||||
|
||||
// 单个 boss 血量状态
|
||||
@prop({ required: false, type: BossHp, default: [] })
|
||||
@prop({ required: false, type: BossHp, default: [], _id: false })
|
||||
bossHpArr: BossHp[];
|
||||
|
||||
// 队伍是否开放加入
|
||||
@@ -188,6 +199,14 @@ export default class ComBattleTeam extends BaseModel {
|
||||
// 黑名单
|
||||
blacklist: string[] = [];
|
||||
|
||||
// 开始时间
|
||||
@prop({ required: true, default: 0 })
|
||||
startTime: number = 0;
|
||||
|
||||
// 是否有特殊时间奖励
|
||||
@prop({ required: true, default: 0 })
|
||||
hasTimeExtraReward: boolean = false;
|
||||
|
||||
// 结束时间
|
||||
@prop({ required: true, default: 0 })
|
||||
endTime: number = 0;
|
||||
@@ -255,8 +274,8 @@ export default class ComBattleTeam extends BaseModel {
|
||||
return team;
|
||||
}
|
||||
|
||||
public static async updateStatusByCode(teamCode: string, status: number, lean = true) {
|
||||
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamCode }, {status}, {new: true}).lean(lean);
|
||||
public static async updateStatusByCode(teamCode: string, status: number, startTime: number, endTime: number, hasTimeExtraReward: boolean) {
|
||||
const team: ComBattleTeamType = await ComBattleTeamModel.findOneAndUpdate({ teamCode: teamCode }, { $set: {status, startTime, endTime, hasTimeExtraReward }}, {new: true}).lean();
|
||||
return team;
|
||||
}
|
||||
|
||||
|
||||
@@ -17,6 +17,8 @@ export default class FriendPoint extends BaseModel {
|
||||
@prop({ required: true, default: 0 })
|
||||
sendCnt: number; // 当天赠送的点数
|
||||
@prop({ required: true, default: 0 })
|
||||
comBattleCnt: number; // 今天在寻宝上获得的友情点
|
||||
@prop({ required: true, default: 0 })
|
||||
type: number; // 情谊点统计的类型,不同功能都可能有每日获取上限
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user