武将:修复皮肤穿戴bug

This commit is contained in:
luying
2021-07-14 17:54:14 +08:00
parent 0d69d1ba2a
commit 0163e7f90f
@@ -3,7 +3,7 @@ import { handleCost, addItems, unlockFigure, createHero } from '../../../service
import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService'; import { calPlayerCeAndSave, calAllHeroCe } from '../../../services/playerCeService';
import { resResult, deepCopy } from '../../../pubUtils/util'; import { resResult, deepCopy } from '../../../pubUtils/util';
import { STATUS } from '../../../consts/statusCode'; 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 { 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 { RoleModel } from '../../../db/Role';
import { ItemModel } from '../../../db/Item'; import { ItemModel } from '../../../db/Item';
@@ -15,6 +15,7 @@ import { calculatetopLineup } from '../../../pubUtils/playerCe';
import { PvpDefenseModel } from '../../../db/PvpDefense'; import { PvpDefenseModel } from '../../../db/PvpDefense';
import { checkTaskWithHero, checkTask, checkActivityTask } from '../../../services/taskService'; import { checkTaskWithHero, checkTask, checkActivityTask } from '../../../services/taskService';
import { addSkin } from '../../../pubUtils/itemUtils'; import { addSkin } from '../../../pubUtils/itemUtils';
import Skin from '../../../db/Skin';
export default function (app: Application) { export default function (app: Application) {
return new HeroHandler(app); return new HeroHandler(app);
@@ -605,28 +606,28 @@ export class HeroHandler {
let hero = await HeroModel.findByHidAndRole(skinInfo.actorId, roleId); let hero = await HeroModel.findByHidAndRole(skinInfo.actorId, roleId);
if (!hero) return resResult(STATUS.HERO_NOT_FIND); if (!hero) return resResult(STATUS.HERO_NOT_FIND);
let heroSkins = deepCopy(hero.skins); let newHeroSkins: HeroSkin[] = [];
let result = false; let result = false;
let lastSkinId: number; let lastSkinId: number;
for (let skin of heroSkins) { for (let skin of hero.skins) {
if (skin.id == id) { if (skin.id == id) {
if (!!skin.enable) { if (!!skin.enable) {
return resResult(STATUS.HERO_SKIN_IS_EQUIPED); return resResult(STATUS.HERO_SKIN_IS_EQUIPED);
} }
skin.enable = true; newHeroSkins.push({...skin, enable: true});
result = true; result = true;
} else { } else {
if (!!skin.enable) { if (!!skin.enable) {
lastSkinId = skin.id; lastSkinId = skin.id;
} }
skin.enable = false;
newHeroSkins.push({...skin, enable: false});
} }
} }
if (!result) { if (!result) {
return resResult(STATUS.HERO_SKIN_NOT_FIND); 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 } }); return resResult(STATUS.SUCCESS, { curHero: { hid: hero.hid, skins: hero.skins } });
} }
} }