寻宝:情谊助战相关逻辑;更新物品表-加入情谊点
This commit is contained in:
@@ -1,7 +1,8 @@
|
||||
import { FriendPointModel } from './../db/FriendPoint';
|
||||
import { STATUS } from './../consts/statusCode';
|
||||
import { COM_BATTLE_ROBOT_ID_NAME, COM_BATTLE_ROBOT_CE_RATIO, COM_BATTLE_ROBOT_ROUND_LMT, COM_BATTLE_ROBOT_HURT_RATIO, COM_BATTLE_ROBOT_HURT_CH_RATIO, COM_TEAM_STATUS, COM_BATTLE_ASSIST_REWARD_RATIO } from './../consts/consts';
|
||||
import { COM_BATTLE_ROBOT_ID_NAME, COM_BATTLE_ROBOT_CE_RATIO, COM_BATTLE_ROBOT_ROUND_LMT, COM_BATTLE_ROBOT_HURT_RATIO, COM_BATTLE_ROBOT_HURT_CH_RATIO, COM_TEAM_STATUS, COM_BATTLE_ASSIST_REWARD_RATIO, COM_BATTLE_FRDCNT_MAX, COM_BATTLE_FRDCNT_DROP, CURRENCY_BY_TYPE, CURRENCY_TYPE } from './../consts/consts';
|
||||
import { RoleStatus, ComBattleTeamModel } from './../db/ComBattleTeam';
|
||||
import { getBluePrtByQuality, getRewardByBlueprtId, getWarById, getWarIdByBlueprtId } from "../pubUtils/gamedata";
|
||||
import { getBluePrtByQuality, getComBtlSetByQuality, getRewardByBlueprtId, getWarById, getWarIdByBlueprtId } from "../pubUtils/gamedata";
|
||||
import { getRandEelm, getRandValue, resResult, ratioReward } from "../pubUtils/util";
|
||||
import { getRandRobot } from "./battleService";
|
||||
|
||||
@@ -119,15 +120,48 @@ export function setComBtlTimer(teamCode: string, timer: NodeJS.Timer, timerMap:
|
||||
timerMap.set(teamCode, timer);
|
||||
}
|
||||
|
||||
export function getRealReward(blueprtId: number, roleSt: RoleStatus) {
|
||||
export async function getRealReward(blueprtId: number, roleSt: RoleStatus) {
|
||||
let warInfo = getWarById(getWarIdByBlueprtId(blueprtId));
|
||||
let fixRewardStr = warInfo['fixReward'];
|
||||
if (!roleSt.isCap) {
|
||||
if (roleSt.isFrd) {
|
||||
fixRewardStr = '&';
|
||||
let frdPointRec = await FriendPointModel.getFrdPointRecToday(roleSt.roleId);
|
||||
if (!frdPointRec || frdPointRec.cnt <= COM_BATTLE_FRDCNT_MAX - COM_BATTLE_FRDCNT_DROP) {
|
||||
fixRewardStr = `${CURRENCY_BY_TYPE.get(CURRENCY_TYPE.FRIEND_POINT)}&${COM_BATTLE_FRDCNT_DROP}`;
|
||||
} else if (frdPointRec.cnt < COM_BATTLE_FRDCNT_MAX) {
|
||||
fixRewardStr = `${CURRENCY_BY_TYPE.get(CURRENCY_TYPE.FRIEND_POINT)}&${COM_BATTLE_FRDCNT_DROP - frdPointRec.cnt}`;
|
||||
} else {
|
||||
fixRewardStr = '&';
|
||||
}
|
||||
} else {
|
||||
fixRewardStr = ratioReward(fixRewardStr, COM_BATTLE_ASSIST_REWARD_RATIO);
|
||||
}
|
||||
}
|
||||
return fixRewardStr;
|
||||
}
|
||||
|
||||
export async function getAssistTimesByQuality(roleId: string, qualityArr?: Array<number>) {
|
||||
let teams = await ComBattleTeamModel.getAssistTeamsByTime(roleId, qualityArr, new Date(new Date().setHours(0, 0, 0, 0)), true);
|
||||
let cntMap = new Map<number, number>();
|
||||
teams.forEach(team => {
|
||||
if (team && team.quality && team.roleStatus) {
|
||||
for (let st of team.roleStatus) {
|
||||
if (st.roleId !== roleId || st.isFrd) {
|
||||
continue;
|
||||
}
|
||||
let cnt = cntMap.get(team.quality) || 0;
|
||||
cntMap.set(team.quality, cnt + 1)
|
||||
}
|
||||
}
|
||||
});
|
||||
return cntMap;
|
||||
}
|
||||
|
||||
export async function getFrd(roleId: string, quality: number) {
|
||||
let isFrd = false;
|
||||
let assistTimes = await getAssistTimesByQuality(roleId, [quality]);
|
||||
let assistTime = assistTimes.get(quality);
|
||||
let { assistanceTime } = getComBtlSetByQuality(quality);
|
||||
if (assistTime >= assistanceTime) isFrd = true;
|
||||
return isFrd;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user