主线:添加warType
This commit is contained in:
@@ -436,8 +436,8 @@ export class NormalBattleHandler {
|
||||
}
|
||||
|
||||
// 关卡列表
|
||||
async receiveChapterBox(msg: { chapter: number, id: number }, session: BackendSession) {
|
||||
const { id, chapter } = msg;
|
||||
async receiveChapterBox(msg: { chapter: number, id: number, warType: number }, session: BackendSession) {
|
||||
const { id, chapter, warType } = msg;
|
||||
if(!isNumber(id)) return resResult(STATUS.WRONG_PARMS);
|
||||
|
||||
let roleId = session.get('roleId');
|
||||
@@ -447,14 +447,13 @@ export class NormalBattleHandler {
|
||||
let role = await RoleModel.findByRoleId(roleId, 'warStar receivedBox');
|
||||
let ids: number[] = [];
|
||||
let rewards: RewardInter[] = [];
|
||||
let starOfChapter = getStarOfChapter(role.warStar);
|
||||
let star = getStarOfChapter(role.warStar, warType, chapter);
|
||||
|
||||
let boxIds = id == 0? gameData.mainBoxByChapter.get(chapter): [id];
|
||||
let boxIds = id == 0? gameData.mainBoxByChapter.get(`${warType}_${chapter}`): [id];
|
||||
|
||||
for(let id of boxIds) {
|
||||
let dicBox = gameData.mainBox.get(id);
|
||||
if(dicBox && dicBox.chapter == chapter) {
|
||||
let star = starOfChapter.get(chapter)
|
||||
if(dicBox && dicBox.chapter == chapter && dicBox.warType == warType) {
|
||||
if(star >= dicBox.star) {
|
||||
rewards.push(...dicBox.reward);
|
||||
ids.push(id);
|
||||
|
||||
@@ -195,28 +195,31 @@ export async function getBattleList(role: RoleType, type: number) {
|
||||
return result;
|
||||
}
|
||||
|
||||
export function getStarOfChapter(warStar: WarStar[]) {
|
||||
let map = new Map<number, number>();
|
||||
export function getStarOfChapter(warStar: WarStar[], warTye: number, chapter: number) {
|
||||
let starOfChapter = 0
|
||||
for(let { id, star } of warStar ) {
|
||||
let dicWar = gameData.war.get(id);
|
||||
if(dicWar.warType == WAR_TYPE.NORMAL && star > 0) {
|
||||
if(!map.has(dicWar.chapter)) {
|
||||
map.set(dicWar.chapter, star);
|
||||
} else {
|
||||
map.set(dicWar.chapter, map.get(dicWar.chapter) + star);
|
||||
}
|
||||
if(dicWar.warType == warTye && star > 0) {
|
||||
starOfChapter += star;
|
||||
}
|
||||
}
|
||||
return map;
|
||||
return starOfChapter;
|
||||
}
|
||||
|
||||
export function getMainChapter(role: RoleType) {
|
||||
let chapterMap = getStarOfChapter(role.warStar);
|
||||
let chapterArr: { chapter: number, star: number }[] = [];
|
||||
for(let [ chapter, star ] of chapterMap) {
|
||||
chapterArr.push({ chapter, star });
|
||||
let chapterArr: { chapter: number, star: number, warType: number }[] = [];
|
||||
for(let { id, star } of role.warStar ) {
|
||||
let dicWar = gameData.war.get(id);
|
||||
if((dicWar.warType == WAR_TYPE.NORMAL || dicWar.warType == WAR_TYPE.MAIN_ELITE) && star > 0) {
|
||||
let curChapter = chapterArr.find(cur => cur.warType == dicWar.warType && cur.chapter == dicWar.chapter);
|
||||
if(!curChapter) {
|
||||
chapterArr.push({ chapter: dicWar.chapter, star, warType: dicWar.warType });
|
||||
} else {
|
||||
curChapter.star += star;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return {
|
||||
star: chapterArr,
|
||||
receivedBox: role.receivedBox||[],
|
||||
|
||||
Reference in New Issue
Block a user