diff --git a/game-server/app/services/activity/gachaService.ts b/game-server/app/services/activity/gachaService.ts index 7909ce5c1..76d149e90 100644 --- a/game-server/app/services/activity/gachaService.ts +++ b/game-server/app/services/activity/gachaService.ts @@ -48,16 +48,12 @@ export function getNormalGachaId() { export async function refreshGacha(dicGacha: DicGacha, userGacha: UserGachaType) { let { day, count } = dicGacha.free; - if (count <= 0) { - return userGacha; - } - let { roleId, gachaId, refFreeTime, refHopeTime, hope } = userGacha; - if (shouldRefresh(refFreeTime, new Date(), REFRESH_TIME, day)) { + if (count > 0 && shouldRefresh(refFreeTime, new Date(), REFRESH_TIME, day)) { let ref = getTimeFunD().getAfterDayByGap(refFreeTime, day); userGacha = await UserGachaModel.refreshFreeCount(roleId, gachaId, 0, ref); } - if (shouldRefresh(refHopeTime, new Date(), REFRESH_TIME)) { + if (needRefreshHope(dicGacha.gachaType) && shouldRefresh(refHopeTime, new Date(), REFRESH_TIME)) { hope = hope.map(cur => { return { ...cur, hasGet: false } }); let ref = getZeroPointD(); userGacha = await UserGachaModel.refreshHopeCount(roleId, gachaId, 0, hope, ref); @@ -65,6 +61,14 @@ export async function refreshGacha(dicGacha: DicGacha, userGacha: UserGachaType) return userGacha } +function needRefreshHope(gachaType: GACHA_TYPE) { + switch (gachaType) { + case GACHA_TYPE.NORMAL: return true; + case GACHA_TYPE.ARTIFACT: return true; + } + return false; +} + export async function getVisitedHeroList(roleId: string) { let gachaId = getNormalGachaId();