百家学宫,名将谱战力

This commit is contained in:
luying
2020-12-26 16:42:33 +08:00
parent a3c5f6b57f
commit ffb12668f7
13 changed files with 796 additions and 826 deletions
@@ -12,6 +12,9 @@ import { SclResultInter, SclPosInter } from '../../../pubUtils/interface';
import { SchoolModel } from '../../../db/School';
import { TERAPH_RANDOM } from '../../../consts/consts';
import { checkMaterialEnough } from '../../../services/roleService'
import { calPlayerCeAndSave } from '../../../services/playerCeService';
import { HERO_SYSTEM_TYPE } from '../../../consts';
export default function(app: Application) {
return new RoleHandler(app);
}
@@ -154,6 +157,7 @@ export class RoleHandler {
await RoleModel.updateRoleInfo(roleId, { teraphs: role.teraphs });
return resResult(STATUS.SUCCESS, { roleId, teraphs: role.teraphs });
}
// 获得百家学宫
async getSchoolList(msg: {}, session: BackendSession) {
let roleId = session.get('roleId');
@@ -209,10 +213,16 @@ export class RoleHandler {
}
let isOpen = !!dicPosition.get(positionId.toString()); // 该位置是否解锁
let findHero = await SchoolModel.findByHid(roleId, hid);
if (!!findHero) {
return resResult(STATUS.ROLE_SCHOOL_HERO_USED);
if(hid > 0) {
let findHero = await SchoolModel.findByHid(roleId, hid);
if (!!findHero) {
return resResult(STATUS.ROLE_SCHOOL_HERO_USED);
}
let curHero = await HeroModel.findByHidAndRole(hid, roleId);
if (!curHero) return resResult(STATUS.HERO_NOT_FIND);
}
let curSchool = await SchoolModel.findBySclAndPos(roleId, schoolId, positionId);
let preHid = 0; // 原先在该位置上的武将
if (curSchool) {
@@ -220,14 +230,13 @@ export class RoleHandler {
preHid = curSchool.hid;
}
let curHero = await HeroModel.findByHidAndRole(hid, roleId);
if (!curHero) return resResult(STATUS.HERO_NOT_FIND);
if (!isOpen) {
return resResult(STATUS.ROLE_SCHOOL_POSITION_LOCKED);
}
await SchoolModel.updateBySclAndPos(roleId, schoolId, positionId, { hid, isOpen })
await calPlayerCeAndSave(sid, roleId, [], HERO_SYSTEM_TYPE.SCHOOL, [schoolId, hid, preHid]);
return resResult(STATUS.SUCCESS, {
schoolId, positionId, hid, preHid, isOpen
@@ -321,6 +330,7 @@ export class RoleHandler {
}
curHero = await HeroModel.updateHeroInfo(roleId, hid, update, 'hid scrollActive scrollStar scrollColorStar scrollQuality favour favourLv');
await calPlayerCeAndSave(sid, roleId, [], HERO_SYSTEM_TYPE.SCROLL, [hid, favourLv]);
return resResult(STATUS.SUCCESS, {
curHero