添加主动获取奇遇事件,奇遇添加答题逻辑
This commit is contained in:
@@ -1,6 +1,14 @@
|
||||
import BaseModel from './BaseModel';
|
||||
import { index, getModelForClass, prop } from '@typegoose/typegoose';
|
||||
|
||||
class Question {
|
||||
@prop({ required: true })
|
||||
id: number;
|
||||
@prop({ required: true })
|
||||
question: string;
|
||||
@prop({ required: false, type: String })
|
||||
answer: [string];
|
||||
}
|
||||
/**
|
||||
* 战斗记录接口
|
||||
*/
|
||||
@@ -30,10 +38,14 @@ export default class EventRecord extends BaseModel {
|
||||
battleCode: string; // 关卡类型,关卡code
|
||||
@prop({ required: true, default: 0 })
|
||||
turn: number; // 随机的轮数,保证每个event_id都能随机到一次再进行下一轮
|
||||
@prop({ required: true })
|
||||
position: {x:number, y: number}; // 位置
|
||||
@prop({ required: true })
|
||||
question: Question; // 题库id
|
||||
|
||||
|
||||
public static async getEventRecordByTime(roleId: string, refTime: number, lean=true ) {
|
||||
let data = await EventRecordModel.find({roleId, refTime}).select('eventCode eventId type quality status battleId').lean(lean);
|
||||
let data = await EventRecordModel.find({roleId, refTime}).select('eventCode eventId type quality status battleId position question').lean(lean);
|
||||
return data;
|
||||
}
|
||||
|
||||
@@ -48,10 +60,10 @@ export default class EventRecord extends BaseModel {
|
||||
return {history: result, turn};
|
||||
}
|
||||
|
||||
public static async saveEventRecord(eventCode: string, params: {roleId: string, refTime: number, eventId: number, roleName:string, turn?: number, type: number, quality: number, battleId?: number, status: number } , lean=true ) {
|
||||
public static async saveEventRecord(eventCode: string, params: {roleId: string, refTime: number, eventId: number, roleName:string, turn?: number, type: number, quality: number, battleId?: number, status: number, position: {x:number, y:number}, question?: any } , lean=true ) {
|
||||
let doc = new EventRecordModel();
|
||||
let update = Object.assign(params, doc.toJSON(), {eventCode});
|
||||
let data = await EventRecordModel.findOneAndUpdate({eventCode}, { $set: update }, {upsert: true, new: true}).select('eventCode eventId type quality status battleId').lean(lean);
|
||||
let update = Object.assign(doc.toJSON(), params, {eventCode});
|
||||
let data = await EventRecordModel.findOneAndUpdate({eventCode}, { $set: update }, {upsert: true, new: true}).select('eventCode eventId type quality status battleId position question').lean(lean);
|
||||
return data;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user