武将:修复皮肤穿戴bug
This commit is contained in:
@@ -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 } });
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user