养成:升星、训练、淬火、精炼的一键消耗不每次更新&推送
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { Application, BackendSession, ChannelService, HandlerService, } from 'pinus';
|
||||
import { handleCost, addItems, unlockFigure, createHeroes, createHero } from '../../../services/rewardService';
|
||||
import { handleCost, addItems, unlockFigure, createHeroes, createHero, CheckMeterial } from '../../../services/rewardService';
|
||||
import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService';
|
||||
import { resResult, deepCopy } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
@@ -228,12 +228,18 @@ export class HeroHandler {
|
||||
|
||||
let newStarStage = 0;
|
||||
let max = isOneClick ? ABI_STAGE.END : oldStarStage + 1;
|
||||
let check = new CheckMeterial(roleId);
|
||||
for (let i = 0; i < max; i++) {
|
||||
let costResult = await handleCost(roleId, sid, [{ id: pieceId, count: curDicHeroStar.advanceUpFragmentNum }]);
|
||||
if (!costResult) break;
|
||||
|
||||
let isEnough = await check.decrease([{ id: pieceId, count: curDicHeroStar.advanceUpFragmentNum }]);
|
||||
if(!isEnough) break; // 消耗不足
|
||||
newStarStage++;
|
||||
}
|
||||
if (newStarStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
let consumes = check.getConsume();
|
||||
let result = await handleCost(roleId, sid, consumes);
|
||||
if (!result)
|
||||
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
|
||||
|
||||
let isUpStar = newStarStage == ABI_STAGE.END;
|
||||
|
||||
@@ -352,15 +358,18 @@ export class HeroHandler {
|
||||
|
||||
let newColorStarStage = 0;
|
||||
let max = isOneClick ? ABI_STAGE.END : oldColorStarStage + 1;
|
||||
let check = new CheckMeterial(roleId);
|
||||
for (let i = 0; i < max; i++) {
|
||||
let { fragmentNum, consume } = curDicHeroStar;
|
||||
|
||||
// console.log(JSON.stringify([{id: pieceId, count: fragmentNum}, ...consumeArr]))
|
||||
let costResult = await handleCost(roleId, sid, [{ id: pieceId, count: fragmentNum }, ...consume]);
|
||||
if (!costResult) break;
|
||||
let isEnough = await check.decrease([{ id: pieceId, count: fragmentNum }, ...consume]);
|
||||
if(!isEnough) break; // 消耗不足
|
||||
newColorStarStage++;
|
||||
}
|
||||
if (newColorStarStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
let consumes = check.getConsume();
|
||||
let result = await handleCost(roleId, sid, consumes);
|
||||
if (!result)
|
||||
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
|
||||
|
||||
let isWakeUp = oldColorStar == 0;
|
||||
let isUpStar = isWakeUp || newColorStarStage == ABI_STAGE.END;
|
||||
@@ -415,15 +424,20 @@ export class HeroHandler {
|
||||
|
||||
let newJobStage = 0;
|
||||
let max = isOneClick ? dicJob.maxStage: hero.jobStage + 1;
|
||||
let check = new CheckMeterial(roleId);
|
||||
for(let i = 0; i < max; i++) {
|
||||
let singleConsume = dicJob.trainingConsume[hero.jobStage];
|
||||
if(!singleConsume) break; // 每天消耗不可训练
|
||||
|
||||
let result = await handleCost(roleId, sid, [singleConsume]);
|
||||
if (!result) break; // 材料不足
|
||||
let isEnough = await check.decrease([singleConsume]);
|
||||
if(!isEnough) break; // 消耗不足
|
||||
newJobStage ++;
|
||||
}
|
||||
if (newJobStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
let consumes = check.getConsume();
|
||||
let result = await handleCost(roleId, sid, consumes);
|
||||
if (!result)
|
||||
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
|
||||
|
||||
//重算战力并下发
|
||||
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TRAIN, sid, roleId, hero, {
|
||||
|
||||
Reference in New Issue
Block a user