领取奇遇事件

This commit is contained in:
luying
2020-10-10 16:37:57 +08:00
parent 2a62b31797
commit 7047f01cbf
8 changed files with 514 additions and 91 deletions
+23
View File
@@ -37,4 +37,27 @@ export const WAR_TYPE = {
TOWER: 4
};
// 存于用户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_START_BATTLE = 101;
+20 -8
View File
@@ -4,7 +4,8 @@ import { index, getModelForClass, prop } from '@typegoose/typegoose';
/**
* 战斗记录接口
*/
@index({ roleId: 1, type: 1 })
@index({ roleId: 1, eventId: 1 })
@index({ roleId: 1, eventCode: 1 })
export default class EventRecord extends BaseModel {
@prop({ required: true })
@@ -17,15 +18,17 @@ export default class EventRecord extends BaseModel {
eventId: number; // 事件 id
@prop({ required: true })
type: number; // 事件类型
@prop({ required: true })
quality: number; // 事件品质
@prop({ required: true, default: 0 })
status: number; // 状态 1-已达成 0-未达成 -1-失败
@prop({ required: true, default: 0 })
battleStatus: number; // 状态 1-成功 -1-失败
status: number; // 状态 0-初始状态 1-挑战成功 2-挑战失败 3-领取成功奖励 4-领取了失败奖励
@prop({ required: true, default: 0 })
refTime: number; // 刷新时间
@prop({ required: true, default: 0 })
battleId: number; // 关卡类型,关卡id
@prop({ required: true, default: 0 })
battleCode: string; // 关卡类型,关卡code
@prop({ required: true, default: 0 })
turn: number; // 随机的轮数,保证每个event_id都能随机到一次再进行下一轮
@@ -34,6 +37,10 @@ export default class EventRecord extends BaseModel {
return data;
}
public static async getEventRecordByCode(roleId: string, eventCode: string, lean=true ) {
let data = await EventRecordModel.findOne({roleId, eventCode}).lean(lean);
return data;
}
public static async getHostoryEventRecord(roleId: string, lean=true) {
let latest = await EventRecordModel.findOne({roleId}).sort({turn: -1}).lean();
let {turn = 0} = latest||{};
@@ -41,13 +48,18 @@ 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 } , lean=true ) {
let data = await EventRecordModel.findOneAndUpdate({eventCode}, { $set: {...params, status: 0 } }, {upsert: true, new: true}).select('eventCode eventId type quality status battleId').lean(lean);
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 ) {
let data = await EventRecordModel.findOneAndUpdate({eventCode}, { $set: {...params } }, {upsert: true, new: true}).select('eventCode eventId type quality status battleId').lean(lean);
return data;
}
public static async setBattleStatus(roleId: string, battleId: number, refTime: number, battleStatus: number, battleCode: string , lean=true ) {
let result = await EventRecordModel.findOneAndUpdate({roleId, battleId, refTime}, {$set:{ battleStatus, battleCode }}).sort({turn: 1}).lean(lean);
public static async setBattleStatus(roleId: string, battleId: number, refTime: number, status: number, battleCode: string , lean=true ) {
let result = await EventRecordModel.findOneAndUpdate({roleId, battleId, refTime}, {$set:{ status, battleCode }}).sort({turn: 1}).lean(lean);
return result;
}
public static async setStatusByCode(roleId: string, eventCode: string, status: number , lean=true ) {
let result = await EventRecordModel.findOneAndUpdate({ roleId, eventCode }, {$set:{ status }}).lean(lean);
return result;
}
+227 -1
View File
@@ -1 +1,227 @@
[{"eventID":1,"eventType":1,"quality":1,"name":"天降宝箱*铜币","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":0,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":2,"eventType":1,"quality":1,"name":"天降宝箱*元宝","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":0,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":3,"eventType":1,"quality":1,"name":"天降宝箱*材料","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":0,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":4,"eventType":2,"quality":1,"name":"答题*体力","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":0,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":5,"eventType":2,"quality":1,"name":"答题*将魂","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":0,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":6,"eventType":2,"quality":1,"name":"答题*经验书","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":0,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":7,"eventType":3,"quality":1,"name":"山贼拦路*待定","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":2001,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":8,"eventType":3,"quality":1,"name":"救援村落*待定","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":2002,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0},{"eventID":9,"eventType":3,"quality":1,"name":"比武切磋*待定","sSpineInUI":0,"rScriptId":0,"winReward":0,"loseReward":0,"suitLevel":"1&20","warId":2003,"__EMPTY":0,"__EMPTY_1":0,"__EMPTY_2":0,"__EMPTY_3":0,"__EMPTY_4":0,"__EMPTY_5":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"starInfoInUI":0,"cost":0,"recommendedPower":0,"previousGk":0}]
[
{
"eventID": 1,
"eventType": 1,
"quality": 1,
"name": "天降宝箱*铜币",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 0,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 2,
"eventType": 1,
"quality": 1,
"name": "天降宝箱*元宝",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 0,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 3,
"eventType": 1,
"quality": 1,
"name": "天降宝箱*材料",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 0,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 4,
"eventType": 2,
"quality": 1,
"name": "答题*体力",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 0,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 5,
"eventType": 2,
"quality": 1,
"name": "答题*将魂",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 0,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 6,
"eventType": 2,
"quality": 1,
"name": "答题*经验书",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 0,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 7,
"eventType": 3,
"quality": 1,
"name": "山贼拦路*待定",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 2001,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 8,
"eventType": 3,
"quality": 1,
"name": "救援村落*待定",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 2002,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
},
{
"eventID": 9,
"eventType": 3,
"quality": 1,
"name": "比武切磋*待定",
"sSpineInUI": 0,
"rScriptId": 0,
"winReward": "1&2",
"loseReward": "1&1",
"suitLevel": "1&20",
"warId": 2003,
"__EMPTY": 0,
"__EMPTY_1": 0,
"__EMPTY_2": 0,
"__EMPTY_3": 0,
"__EMPTY_4": 0,
"__EMPTY_5": 0,
"fobiddenCharactor": 0,
"victoryInfoInUI": 0,
"loseInfoInUI": 0,
"starInfoInUI": 0,
"cost": 0,
"recommendedPower": 0,
"previousGk": 0
}
]
+56 -1
View File
@@ -1 +1,56 @@
[{"war_id":2001,"dispatchJsonId":2001,"bg_img_id":2001,"script_id":0,"fixReward":"&","warType":4,"gk_name":"奇遇&拦路山贼","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消失所有敌军","loseInfoInUI":"我方全部阵亡","cost":15,"recommendedPower":10008},{"war_id":2002,"dispatchJsonId":2002,"bg_img_id":2002,"script_id":0,"fixReward":"&","warType":4,"gk_name":"奇遇&比武切磋","kingExp":100,"lvLimted":1,"turnLimted":20,"forcedCharactor":"&","fobiddenCharactor":"&","victoryInfoInUI":"消失所有敌军","loseInfoInUI":"我方全部阵亡","cost":15,"recommendedPower":10008},{"war_id":2003,"dispatchJsonId":0,"bg_img_id":0,"script_id":0,"fixReward":0,"warType":0,"gk_name":0,"kingExp":0,"lvLimted":0,"turnLimted":0,"forcedCharactor":0,"fobiddenCharactor":0,"victoryInfoInUI":0,"loseInfoInUI":0,"cost":0,"recommendedPower":0}]
[
{
"war_id": 2001,
"dispatchJsonId": 2001,
"bg_img_id": 2001,
"script_id": 0,
"fixReward": "&",
"warType": 3,
"gk_name": "奇遇&拦路山贼",
"kingExp": 100,
"lvLimted": 1,
"turnLimted": 20,
"forcedCharactor": "&",
"fobiddenCharactor": "&",
"victoryInfoInUI": "消失所有敌军",
"loseInfoInUI": "我方全部阵亡",
"cost": 15,
"recommendedPower": 10008
},
{
"war_id": 2002,
"dispatchJsonId": 2002,
"bg_img_id": 2002,
"script_id": 0,
"fixReward": "&",
"warType": 3,
"gk_name": "奇遇&比武切磋",
"kingExp": 100,
"lvLimted": 1,
"turnLimted": 20,
"forcedCharactor": "&",
"fobiddenCharactor": "&",
"victoryInfoInUI": "消失所有敌军",
"loseInfoInUI": "我方全部阵亡",
"cost": 15,
"recommendedPower": 10008
},
{
"war_id": 2003,
"dispatchJsonId": 2003,
"bg_img_id": 2003,
"script_id": 0,
"fixReward": "&",
"warType": 3,
"gk_name": "奇遇&比武切磋",
"kingExp": 100,
"lvLimted": 1,
"turnLimted": 20,
"forcedCharactor": "&",
"fobiddenCharactor": "&",
"victoryInfoInUI": "消失所有敌军",
"loseInfoInUI": "我方全部阵亡",
"cost": 15,
"recommendedPower": 10008
}
]