武将:觉醒消耗
This commit is contained in:
@@ -274,21 +274,30 @@ export class HeroHandler {
|
||||
if (!curDicHeroStar) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let newColorStarStage = oldColorStarStage;
|
||||
let max = isOneClick ? ABI_STAGE.END : oldColorStarStage + 1;
|
||||
let isWakeUp = oldColorStar == 0;
|
||||
let check = new CheckMeterial(roleId);
|
||||
for (let i = oldColorStarStage; i < max; i++) {
|
||||
if(isWakeUp) {
|
||||
let { fragmentNum, consume } = curDicHeroStar;
|
||||
let isEnough = await check.decrease([{ id: pieceId, count: fragmentNum }, ...consume]);
|
||||
if(!isEnough) break; // 消耗不足
|
||||
newColorStarStage++;
|
||||
if(!isEnough) {
|
||||
return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
};
|
||||
} else {
|
||||
let max = isOneClick ? ABI_STAGE.END : oldColorStarStage + 1;
|
||||
for (let i = oldColorStarStage; i < max; i++) {
|
||||
let { fragmentNum, consume } = curDicHeroStar;
|
||||
let isEnough = await check.decrease([{ id: pieceId, count: fragmentNum }, ...consume]);
|
||||
if(!isEnough) break; // 消耗不足
|
||||
newColorStarStage++;
|
||||
}
|
||||
if (newColorStarStage == oldColorStarStage) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
}
|
||||
if (newColorStarStage == oldColorStarStage) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
let consumes = check.getConsume();
|
||||
console.log('&&&&&&&&7', JSON.stringify(consumes))
|
||||
let result = await handleCost(roleId, sid, consumes, ITEM_CHANGE_REASON.HERO_WAKE_UP);
|
||||
if (!result)
|
||||
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
|
||||
|
||||
let isWakeUp = oldColorStar == 0;
|
||||
let isUpStar = isWakeUp || newColorStarStage == ABI_STAGE.END;
|
||||
|
||||
let update = {
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
import { ChannelUser } from './../domain/ChannelUser';
|
||||
import { Channel, pinus } from 'pinus';
|
||||
import { getRandValueByMinMax, getRandEelm, decodeIdCntArrayStr } from '../pubUtils/util';
|
||||
import { DEFAULT_HEROES, LINEUP_NUM, ROLE_SELECT, TALENT_RELATION_TYPE, TERAPH_RANDOM } from "../consts";
|
||||
import { DEFAULT_HEROES, LINEUP_NUM, ROLE_SELECT, TALENT_RELATION_TYPE, TERAPH_RANDOM, SYSTEM_OPEN_ID, GuideUnloadNum } from "../consts";
|
||||
import { DicTeraph } from '../pubUtils/dictionary/DicTeraph';
|
||||
import { Teraph, RoleModel, RoleType, RoleUpdate } from '../db/Role';
|
||||
import { SCHOOL } from '../pubUtils/dicParam';
|
||||
@@ -244,3 +243,13 @@ export function initSkinTalent(skins: HeroSkin[], isAll = false) {
|
||||
}
|
||||
return newSkins
|
||||
}
|
||||
|
||||
export function checkSystemIsOpen(role: RoleType, id: SYSTEM_OPEN_ID) {
|
||||
if(!role || !role.hasInit || !role.guide) return false;
|
||||
|
||||
let dicSystemOpenTime = gameData.sysOpenTime.get(id);
|
||||
if(!dicSystemOpenTime) return false;
|
||||
|
||||
let guideId = dicSystemOpenTime.warId > 0? GuideUnloadNum.GkNewFuncNum + dicSystemOpenTime.warId: GuideUnloadNum.LvUpNum + dicSystemOpenTime.lv;
|
||||
return role.guide.indexOf(guideId) != -1;
|
||||
}
|
||||
Reference in New Issue
Block a user