feat(兼容): 配表使用后台隐藏物品

This commit is contained in:
luying
2022-11-09 18:01:02 +08:00
parent 5d0873630a
commit 53d4af4e09
54 changed files with 768 additions and 102 deletions

View File

@@ -25,6 +25,7 @@ import { SchoolModel } from '../../../db/School';
import { SkinModel } from '../../../db/Skin';
import { RoleCeModel } from '../../../db/RoleCe';
import { saveRebirthLog } from '../../../pubUtils/logUtil';
import { isGoodsHidden, isHeroHidden } from '../../../services/dataService';
export default function (app: Application) {
new HandlerService(app, {});
@@ -43,15 +44,15 @@ export class HeroHandler {
let sid: string = session.get('sid');
let serverId: number = session.get('serverId');
let { hid } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let dicHero = gameData.hero.get(hid);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
// 检查是否存在武将
let hasHero = await HeroModel.findByHidAndRole(hid, roleId);
if (hasHero) return resResult(STATUS.ROLE_HERO_EXISTS);
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
let dicHero = gameData.hero.get(hid);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let { pieceId, pieceCount } = dicHero;
// 碎片数量是否足够
let costResult = await handleCost(roleId, sid, [{ id: pieceId, count: pieceCount }], ITEM_CHANGE_REASON.COMPOSE_HERO);
@@ -71,6 +72,7 @@ export class HeroHandler {
const serverId = session.get('serverId');
let { hid, type } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let addLv = 0;
if (type == 1) {
@@ -144,8 +146,9 @@ export class HeroHandler {
const serverId = session.get('serverId');
let sid: string = session.get('sid');
let { hid, star, starStage, isOneClick } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
let dicHero = gameData.hero.get(hid);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
@@ -208,8 +211,9 @@ export class HeroHandler {
let sid: string = session.get('sid');
let serverId: number = session.get('serverId');
let { hid, quality } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let dicHero = gameData.hero.get(hid);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
// 根据dic_hero 获得 碎片id
@@ -259,8 +263,9 @@ export class HeroHandler {
let roleName: string = session.get('roleName');
const serverId = session.get('serverId');
let { hid, colorStar, colorStarStage, isOneClick } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
// 根据dic_hero 获得 1. 碎片id 2. 碎片数量 3. 初始武将星级 4. 初始品质
let dicHero = gameData.hero.get(hid);
if (!dicHero) return resResult(STATUS.DIC_DATA_NOT_FOUND);
@@ -336,6 +341,8 @@ export class HeroHandler {
const serverId = session.get('serverId');
let { hid, isOneClick, canReplace = false } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
@@ -387,6 +394,8 @@ export class HeroHandler {
let sid: string = session.get('sid');
let { hid } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if (!hero)
return resResult(STATUS.HERO_NOT_FIND);
@@ -424,6 +433,7 @@ export class HeroHandler {
let serverId: number = session.get('serverId');
let { hid, shipId, type } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let dicFriendShip = getFriendShipByIdAndLv(hid, shipId, 1);
if(!dicFriendShip) return resResult(STATUS.DIC_DATA_NOT_FOUND);
@@ -506,9 +516,12 @@ export class HeroHandler {
let serverId: number = session.get('serverId');
let { id } = msg;
if(isGoodsHidden(id)) return resResult(STATUS.FASHION_IS_HIDDEN);
let dicSkin = gameData.fashion.get(id);
// console.log('*****', id, dicSkin)
if (!dicSkin) return resResult(STATUS.HERO_SKIN_NOT_FIND);
if(isHeroHidden(dicSkin.actorId)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await HeroModel.findByHidAndRole(dicSkin.actorId, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
@@ -637,11 +650,13 @@ export class HeroHandler {
let serverId = session.get('serverId');
let { hid, id } = msg;
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let dicHeroTalent = gameData.heroTalent.get(id);
if(!dicHeroTalent) return resResult(STATUS.WRONG_PARMS);
if(!dicHeroTalent) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
let skins = hero.skins||[];
let curSkin = skins.find(cur => cur.enable);
@@ -676,6 +691,11 @@ export class HeroHandler {
let serverId = session.get('serverId');
let { hid, id } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let dicHeroTalent = gameData.heroTalent.get(id);
if(!dicHeroTalent) return resResult(STATUS.DIC_DATA_NOT_FOUND);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);
@@ -686,9 +706,6 @@ export class HeroHandler {
let talent = curSkin.talent.find(cur => cur.id == id);
if(!talent) return resResult(STATUS.TALENT_NOT_UNLOCKED);
let dicHeroTalent = gameData.heroTalent.get(id);
if(!dicHeroTalent) return resResult(STATUS.WRONG_PARMS);
let usedTalentPoint = curSkin.usedTalentPoint;
let totalTalentPoint = gameData.talentPointOfJob.get(hero.job);
let nextLv = dicHeroTalent.level.find(cur => cur.lv == talent.level + 1);
@@ -712,6 +729,8 @@ export class HeroHandler {
let serverId = session.get('serverId');
let { hid } = msg;
if(isHeroHidden(hid)) return resResult(STATUS.HERO_IS_HIDDEN);
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) return resResult(STATUS.HERO_NOT_FIND);