更新一下const的使用
This commit is contained in:
@@ -4,7 +4,8 @@ import { calPlayerCeAndSave } from '../../../services/playerCeService';
|
||||
import { resResult } from '../../../pubUtils/util';
|
||||
import { STATUS } from '../../../consts/statusCode';
|
||||
import {HeroModel} from '../../../db/Hero';
|
||||
import { getJobInfoById, getMaxGradeByjobClass , updateHeroInfo} from '../../../pubUtils/gamedata';
|
||||
import { getJobInfoById, getMaxGradeByjobClass, getHeroInfoById, getGoodById } from '../../../pubUtils/gamedata';
|
||||
import { ITID, CONSUME_TYPE } from '../../../consts/consts';
|
||||
export default function(app: Application) {
|
||||
return new HeroHandler(app);
|
||||
}
|
||||
@@ -32,16 +33,48 @@ export class HeroHandler {
|
||||
|
||||
// 武将碎片合成
|
||||
public async combine(msg: { hid: number}, session: BackendSession) {
|
||||
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
|
||||
let roleId: string = session.get('roleId');
|
||||
let roleName: string = session.get('roleName');
|
||||
let sid: string = session.get('sid');
|
||||
|
||||
let {hid} = msg;
|
||||
|
||||
// 检查是否存在武将
|
||||
// 检查碎片数量是否足够
|
||||
let hasHero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
if(hasHero) return resResult(STATUS.ROLE_HERO_EXISTS);
|
||||
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
|
||||
let dicHero = getHeroInfoById(hid);
|
||||
if(!dicHero) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let {pieceId, quality, initialStars: star, pieceCount, jobid: job, name: hName} = dicHero;
|
||||
// 碎片数量是否足够
|
||||
let costResult = await handleCost(roleId, sid, [{id: pieceId, count: pieceCount}]);
|
||||
if(!costResult) return resResult(STATUS.ROLE_MATERIAL_NOT_ENOUGH);
|
||||
// createHero
|
||||
// handleCost
|
||||
let curHero = await HeroModel.createHero({
|
||||
roleId, roleName, hid, hName, star, quality, job
|
||||
});
|
||||
await calPlayerCeAndSave(sid, roleId, [curHero]);
|
||||
return resResult(STATUS.SUCCESS, {curHero});
|
||||
}
|
||||
|
||||
// 武将升级
|
||||
public async lvUp(msg: { hid: number, type: number, material: Array<{id: number, count: number}>}, session: BackendSession) {
|
||||
let roleId: string = session.get('roleId');
|
||||
let roleName: string = session.get('roleName');
|
||||
let sid: string = session.get('sid');
|
||||
|
||||
let { hid, type, material } = msg;
|
||||
|
||||
// 根据dic_goods 计算得材料可转换的经验
|
||||
let allExp = 0;
|
||||
for(let {id, count} of material) {
|
||||
let dicGoods = getGoodById(id);
|
||||
if(!dicGoods) return resResult(STATUS.ROLE_INFO_NOT_FOUND);
|
||||
let dicItid = ITID.get(dicGoods.itid);
|
||||
if(!dicItid || dicItid.type != CONSUME_TYPE.EXP) {
|
||||
return resResult(STATUS.ROLE_METERIAL_ERROR);
|
||||
}
|
||||
}
|
||||
// 根据dic_zyz_charexp 计算武将可以升的级数
|
||||
// 检查材料是否满足升级需求
|
||||
// 检查是否超出主公等级
|
||||
@@ -59,10 +92,10 @@ export class HeroHandler {
|
||||
}
|
||||
|
||||
// 武将觉醒
|
||||
public async wakeUp(msg: { hid: number, fire: number, fireStage: number}, session: BackendSession) {
|
||||
public async wakeUp(msg: { hid: number, colorStar: number, fireStage: number}, session: BackendSession) {
|
||||
// 根据dic_hero 获得 碎片id
|
||||
// 根据dic_zyz_hero_wake 获得需要花费的碎片和材料
|
||||
// 特殊处理,初次觉醒fireStage传0,保存为 fire = 1, fireStage = 0,花费的材料取的0星的
|
||||
// 特殊处理,初次觉醒fireStage传0,保存为 colorStar = 1, fireStage = 0,花费的材料取的0星的
|
||||
// 检查品质是否是橙色
|
||||
// 升星阶,满6自动升星
|
||||
// handleCost
|
||||
|
||||
Reference in New Issue
Block a user