武将:修复皮肤穿戴bug

This commit is contained in:
luying
2021-07-14 17:54:14 +08:00
parent 0d69d1ba2a
commit 0163e7f90f

View File

@@ -3,7 +3,7 @@ import { handleCost, addItems, unlockFigure, createHero } from '../../../service
import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService';
import { resResult, deepCopy } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode';
import { HeroModel, Connect } from '../../../db/Hero';
import { HeroModel, Connect, HeroSkin } from '../../../db/Hero';
import { CURRENCY_BY_TYPE, CURRENCY_TYPE, CONSUME_TYPE, HERO_GROW_MAX, HERO_SYSTEM_TYPE, ABI_STAGE, DEBUG_MAGIC_WORD, HERO_INITIAL_QUALITY, REDIS_KEY, TASK_TYPE } from '../../../consts';
import { RoleModel } from '../../../db/Role';
import { ItemModel } from '../../../db/Item';
@@ -15,6 +15,7 @@ import { calculatetopLineup } from '../../../pubUtils/playerCe';
import { PvpDefenseModel } from '../../../db/PvpDefense';
import { checkTaskWithHero, checkTask, checkActivityTask } from '../../../services/taskService';
import { addSkin } from '../../../pubUtils/itemUtils';
import Skin from '../../../db/Skin';
export default function (app: Application) {
return new HeroHandler(app);
@@ -605,28 +606,28 @@ export class HeroHandler {
let hero = await HeroModel.findByHidAndRole(skinInfo.actorId, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let heroSkins = deepCopy(hero.skins);
let newHeroSkins: HeroSkin[] = [];
let result = false;
let lastSkinId: number;
for (let skin of heroSkins) {
for (let skin of hero.skins) {
if (skin.id == id) {
if (!!skin.enable) {
return resResult(STATUS.HERO_SKIN_IS_EQUIPED);
}
skin.enable = true;
newHeroSkins.push({...skin, enable: true});
result = true;
} else {
if (!!skin.enable) {
lastSkinId = skin.id;
}
skin.enable = false;
newHeroSkins.push({...skin, enable: false});
}
}
if (!result) {
return resResult(STATUS.HERO_SKIN_NOT_FIND);
}
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.SKIN, sid, roleId, hero, { skins: heroSkins }, [id, lastSkinId]);
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.SKIN, sid, roleId, hero, { skins: newHeroSkins }, [id, lastSkinId]);
return resResult(STATUS.SUCCESS, { curHero: { hid: hero.hid, skins: hero.skins } });
}
}