press-plus
Version:
53 lines (48 loc) • 1.45 kB
text/typescript
import {
BATTLE_STATE_MAP,
REMATCH_STATE_MAP,
SCHEDULE_CUSTOM_STATUS_MAP,
SCHEDULE_STATUS_MAP,
} from '../config';
export function mapBattleStatus(status: any) {
if (status === BATTLE_STATE_MAP.STARTED_CAN_READY) {
return '准备中';
}
if (status >= BATTLE_STATE_MAP.WAIT_CREATE_ROOM && status <= BATTLE_STATE_MAP.IN_BATTLE) {
return '对局中';
}
if (status >= BATTLE_STATE_MAP.ENDED_READING_DATA && status <= BATTLE_STATE_MAP.ENDED) {
return '已结束';
}
return '未开始';
}
function getBattleStatus(status: any, item: any) {
if (status === 0
|| ((item?.battle_list?.length === item?.sch_score?.cur_bo)
&& item?.battle_list?.[item?.battle_list?.length - 1]?.battle_state === BATTLE_STATE_MAP.ENDED)
|| item?.battle_list?.length <= 0
) {
return '未开始';
}
return mapBattleStatus(status);
}
export function getBattleState(item: any) {
const { state } = item;
if ([SCHEDULE_STATUS_MAP.ENDED,
SCHEDULE_CUSTOM_STATUS_MAP.EMPTY].includes(state)) {
return '已结束';
}
let curBo = 0;
if (item.sch_score?.cur_bo) {
curBo = item.sch_score.cur_bo;
}
if (item.battle_list) {
const rNode = item.battle_list.find((item: any) => {
if (item.bonum === curBo && +item.rematch_state !== REMATCH_STATE_MAP.REMATCH) {
return true;
}
});
return rNode ? getBattleStatus(rNode.battle_state, item) : '未开始';
}
return '未开始';
}