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