热更新:handler监听热更新
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
import { Application, BackendSession, ChannelService } from 'pinus';
|
||||
import { Application, BackendSession, ChannelService, HandlerService, } from 'pinus';
|
||||
import { handleCost, addItems, unlockFigure, createHero } from '../../../services/rewardService';
|
||||
import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService';
|
||||
import { resResult, deepCopy } from '../../../pubUtils/util';
|
||||
@@ -18,6 +18,7 @@ import { addSkin } from '../../../pubUtils/itemUtils';
|
||||
import Skin from '../../../db/Skin';
|
||||
|
||||
export default function (app: Application) {
|
||||
new HandlerService(app, {});
|
||||
return new HeroHandler(app);
|
||||
}
|
||||
|
||||
@@ -209,7 +210,7 @@ export class HeroHandler {
|
||||
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
let { pieceId, jobid } = dicHero;
|
||||
let dicJob = gameData.job.get(jobid);
|
||||
if(!dicJob) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
if (!dicJob) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
if (!hero) return resResult(STATUS.ROLE_HERO_NOT_EXISTS);
|
||||
@@ -224,15 +225,15 @@ export class HeroHandler {
|
||||
// 根据dic_zyz_hero_star 计算需要花的碎片并检查碎片数量
|
||||
const curDicHeroStar = getHeroStarByQuality(dicJob.job_class, quality, oldStar);
|
||||
if (!curDicHeroStar) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
|
||||
let newStarStage = 0;
|
||||
let max = isOneClick? ABI_STAGE.END: oldStarStage + 1;
|
||||
for(let i = 0; i < max; i++ ) {
|
||||
let max = isOneClick ? ABI_STAGE.END : oldStarStage + 1;
|
||||
for (let i = 0; i < max; i++) {
|
||||
let costResult = await handleCost(roleId, sid, [{ id: pieceId, count: curDicHeroStar.advanceUpFragmentNum }]);
|
||||
if (!costResult) break;
|
||||
newStarStage++;
|
||||
}
|
||||
if(newStarStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
if (newStarStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
|
||||
let isUpStar = newStarStage == ABI_STAGE.END;
|
||||
|
||||
@@ -350,16 +351,16 @@ export class HeroHandler {
|
||||
if (!curDicHeroStar) return resResult(STATUS.DIC_DATA_NOT_FOUND);
|
||||
|
||||
let newColorStarStage = 0;
|
||||
let max = isOneClick? ABI_STAGE.END: oldColorStarStage + 1;
|
||||
for(let i = 0; i < max; i++) {
|
||||
let max = isOneClick ? ABI_STAGE.END : oldColorStarStage + 1;
|
||||
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;
|
||||
newColorStarStage++;
|
||||
}
|
||||
if(newColorStarStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
if (newColorStarStage == 0) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
|
||||
let isWakeUp = oldColorStar == 0;
|
||||
let isUpStar = isWakeUp || newColorStarStage == ABI_STAGE.END;
|
||||
@@ -540,7 +541,7 @@ export class HeroHandler {
|
||||
|
||||
let { favourLv: oldLv, favour: oldExp, lv } = hero;
|
||||
|
||||
let maxLv = lv > gameData.maxFriendShipLv.max? gameData.maxFriendShipLv.max: lv; // 好感度最大等级
|
||||
let maxLv = lv > gameData.maxFriendShipLv.max ? gameData.maxFriendShipLv.max : lv; // 好感度最大等级
|
||||
if (maxLv <= oldLv)
|
||||
return resResult(STATUS.HERO_FAVOUR_LEVEL_REACH_MAXT);
|
||||
|
||||
@@ -614,14 +615,14 @@ export class HeroHandler {
|
||||
if (!!skin.enable) {
|
||||
return resResult(STATUS.HERO_SKIN_IS_EQUIPED);
|
||||
}
|
||||
newHeroSkins.push({...skin, enable: true});
|
||||
newHeroSkins.push({ ...skin, enable: true });
|
||||
result = true;
|
||||
} else {
|
||||
if (!!skin.enable) {
|
||||
lastSkinId = skin.id;
|
||||
}
|
||||
|
||||
newHeroSkins.push({...skin, enable: false});
|
||||
newHeroSkins.push({ ...skin, enable: false });
|
||||
}
|
||||
}
|
||||
if (!result) {
|
||||
|
||||
Reference in New Issue
Block a user