添加主线关卡和每日关卡
This commit is contained in:
@@ -0,0 +1,107 @@
|
||||
import { Application, BackendSession } from 'pinus';
|
||||
import { DailyRecordModel } from '../../../db/DailyRecord';
|
||||
import { BattleRecordModel } from '../../../db/BattleRecord';
|
||||
import { getGamedata } from '../../../util/gamedata';
|
||||
import { WAR_TYPE } from '../../../consts/consts';
|
||||
|
||||
export default function(app: Application) {
|
||||
return new DailyBattleHandler(app);
|
||||
}
|
||||
|
||||
export class DailyBattleHandler {
|
||||
constructor(private app: Application) {
|
||||
}
|
||||
|
||||
// 获取关卡列表
|
||||
async getData(msg: { }, session: BackendSession) {
|
||||
let roleId = session.get('roleId');
|
||||
|
||||
const BattleRecord = await BattleRecordModel.getBattleList(roleId, WAR_TYPE.DAILY);
|
||||
|
||||
let dicDaily = getGamedata('dic_daily');
|
||||
let dicDailyWar = getGamedata('dic_daily_war');
|
||||
|
||||
let result = new Array();
|
||||
for(let {type, name, sum} of dicDaily) {
|
||||
let refreshResult = await DailyRecordModel.refreshRecord(roleId, type);
|
||||
let {count} = refreshResult;
|
||||
let wars = new Array();
|
||||
for(let {war_id, daily_type, difficulty, cost, gk_name, previousGk } of dicDailyWar) {
|
||||
if(daily_type == type) {
|
||||
let status = 0, star = 0;
|
||||
let curBattle = BattleRecord.find(cur => cur.battleId == war_id);
|
||||
if(curBattle) {
|
||||
status = 2;
|
||||
star = curBattle.star;
|
||||
} else {
|
||||
if (previousGk) {
|
||||
let preBattleRecord = BattleRecord.find(cur => cur.battleId == previousGk);
|
||||
if(preBattleRecord) {
|
||||
status = 1;
|
||||
} else {
|
||||
status = 0;
|
||||
}
|
||||
} else {
|
||||
status = 1;
|
||||
}
|
||||
}
|
||||
wars.push({
|
||||
battleId: war_id, difficulty, cost, star, status, name: gk_name
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
result.push({
|
||||
type, count, sum, name,
|
||||
wars
|
||||
});
|
||||
}
|
||||
|
||||
return { code: 200, data: result }
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
// 检查每日本次数checkBattle使用
|
||||
export async function checkDaily(roleId: string, battleId: number, inc: number) {
|
||||
let dicDaily = getGamedata('dic_daily');
|
||||
let dicDailyWar = getGamedata('dic_daily_war');
|
||||
let dailyWar = dicDailyWar.find(cur => cur.war_id == battleId);
|
||||
if(!dailyWar) return { status: -1, msg: '未找到该关卡' };
|
||||
let type = dailyWar.daily_type;
|
||||
|
||||
let curDaily = dicDaily.find(cur => cur.type == type);
|
||||
if(!curDaily) return { status: -1, msg: '未找到该类型' };
|
||||
let dailyRecord = await DailyRecordModel.refreshRecord(roleId, type);
|
||||
let { count } = dailyRecord;
|
||||
if(count + inc > curDaily.sum ) {
|
||||
return { status: -1, msg: '次数不足' }
|
||||
}
|
||||
return {status: 1, type, count, sum: curDaily.sum};
|
||||
}
|
||||
|
||||
// 检查每日本次数warEnd和warSweep使用
|
||||
export async function checkDailyAndIncrease(roleId: string, battleId: number, inc: number, isRef: boolean) {
|
||||
let dicDaily = getGamedata('dic_daily');
|
||||
let dicDailyWar = getGamedata('dic_daily_war');
|
||||
let dailyWar = dicDailyWar.find(cur => cur.war_id == battleId);
|
||||
if(!dailyWar) return { status: -1, msg: '未找到该关卡' };
|
||||
let type = dailyWar.daily_type;
|
||||
|
||||
let curDaily = dicDaily.find(cur => cur.type == type);
|
||||
if(!curDaily) return { status: -1, msg: '未找到该类型' };
|
||||
|
||||
let dailyRecord;
|
||||
if(isRef) {
|
||||
dailyRecord = await DailyRecordModel.refreshRecord(roleId, type);
|
||||
} else {
|
||||
dailyRecord = await DailyRecordModel.getDailyRecordById(roleId, type);
|
||||
}
|
||||
let { count } = dailyRecord;
|
||||
if(count + inc > curDaily.sum ) {
|
||||
return { status: -1, msg: '次数不足' }
|
||||
}
|
||||
let result = await DailyRecordModel.increseDailyCount(roleId, type, inc);
|
||||
return {status: 1, type, count: result.count, sum: curDaily.sum};
|
||||
}
|
||||
Reference in New Issue
Block a user