养成:升星、训练、淬火、精炼的一键消耗不每次更新&推送

This commit is contained in:
luying
2021-08-28 18:12:23 +08:00
parent ef753dec44
commit cca991367d
4 changed files with 54 additions and 30 deletions
@@ -3,7 +3,7 @@ import { STATUS, EQUIP_STRENGTHEN_TYPE, CURRENCY_BY_TYPE, CURRENCY_TYPE, HERO_SY
import { ItemInter } from "../../../pubUtils/interface";
import { resResult, parseGoodStr } from "../../../pubUtils/util";
import { addItems, handleCost, decreaseItems, combineItems } from "../../../services/rewardService";
import { addItems, handleCost, decreaseItems, combineItems, CheckMeterial } from "../../../services/rewardService";
import { EquipModel, EquipType } from "../../../db/Equip";
import { HeroModel, EPlace, HeroType } from "../../../db/Hero";
import Role from "../../../db/Role";
@@ -287,20 +287,28 @@ export class EquipHandler {
}
let { lv, refineLv: oldRefineLv, equip } = curEplace; // 强化等级,精炼等级,精炼次数
let check = new CheckMeterial(roleId);
let refineLv = oldRefineLv, times = 0;
while(
(type == REFINE_TYPE.ONCE && times == 0) ||
(type == REFINE_TYPE.ONE_LEVEL && !checkRefineReachNextLv(oldRefineLv, refineLv) )
) {
let result = await refineOnce(roleId, sid, lv, refineLv);
console.log('*******', result);
let result = await refineOnce(lv, refineLv);
if(!result) break;
refineLv = result;
let isEnough = await check.decrease(result.consumes);
if(!isEnough) break; // 消耗不足
refineLv = result.refineLv;
times ++;
}
if(times == 0) {
return resResult(STATUS.EQUIP_REFINE_ERR);
}
let consumes = check.getConsume();
let result = await handleCost(roleId, sid, consumes);
if (!result)
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
curEplace.refineLv = refineLv;
@@ -491,13 +499,18 @@ export class EquipHandler {
console.log(dicQuench, dicGoods.quality, grade)
if (!dicQuench) return resResult(STATUS.EQUIP_QUENCH_MAX);
let check = new CheckMeterial(roleId);
let logs: QuenchLogParam[] = [], times = 0;
while(
(type == QUENCH_TYPE.ONCE && times < 1 && !checkQuenchMaxByQualityAndGrade(dicGoods.quality, 0, randMain)) || // 淬火一次,保证不超出该品质上限
(type == QUENCH_TYPE.ONE_GRADE && !checkQuenchMaxByQualityAndGrade(dicGoods.quality, grade, randMain)) // 淬火一品,在品相上限内淬火
) {
let result = await quenchOnce(roleId, sid, randMain, dicQuench, dicGoods);
let result = await quenchOnce(randMain, dicQuench, dicGoods);
if(!result) break;
let isEnough = await check.decrease(result.consumes);
if(!isEnough) break; // 消耗不足
result.log.setTimes(++times);
logs.push(result.log);
grade = result.grade;
@@ -505,6 +518,10 @@ export class EquipHandler {
}
if (times == 0) return resResult(STATUS.EQUIP_QUENCH_ERR);
let consumes = check.getConsume();
let result = await handleCost(roleId, sid, consumes);
if (!result)
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
let equipResult = await EquipModel.updateEquipInfo(eid, { randMain, grade })
let curEquip = {