武将:天赋

This commit is contained in:
陆莹
2022-03-22 21:25:48 +08:00
parent 5d0040b8a8
commit f53d53a7af
5 changed files with 120 additions and 20 deletions
@@ -22,6 +22,7 @@ import { CalHeroCe } from '../../../domain/roleField/calCe';
import { HERO, REBORN } from '../../../pubUtils/dicParam';
import { createHero, createHeroes } from '../../../services/role/createHero';
import { CheckMeterial } from '../../../services/role/checkMaterial';
import { HeroParam } from '../../../domain/roleField/hero';
export default function (app: Application) {
new HandlerService(app, {});
@@ -57,7 +58,7 @@ export class HeroHandler {
let { heroes, resultHeroes } = await createHero(roleId, roleName, sid, serverId, { hid, count: 1 });
pushComposeOrangeHero(roleId, roleName, serverId, resultHeroes[0]);
return resResult(STATUS.SUCCESS, { curHero: resultHeroes[0], addHeros: heroes });
return resResult(STATUS.SUCCESS, { curHero: new HeroParam(resultHeroes[0]), addHeros: heroes });
}
// 武将升级
@@ -613,7 +614,8 @@ export class HeroHandler {
let { newEplace } = updateEplaces(oldEplace, eplaceIds);
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.SKIN, sid, roleId, hero, { skins: newHeroSkins, skinId: dicSkin.heroId, job: dicNewJob.jobid, ePlace: newEplace });
return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId', 'job']), ePlace: newEplace }});
let resultHero = new HeroParam(hero);
return resResult(STATUS.SUCCESS, { curHero: {...pick(resultHero, ['hid', 'skins', 'skinId', 'job', 'talent', 'usedTalentPoint']), ePlace: newEplace }});
}
public async previewRebirth(msg: { hid: number }, session: BackendSession) {
@@ -649,9 +651,10 @@ export class HeroHandler {
let dicHero = gameData.hero.get(skinId);
let dicJob = getJobByGradeAndClass(dicHero.jobClass, 0);
let newSkins = initSkinTalent(skins);
let dicHeroScroll = getScollByStar(dicHero.quality, dicHero.initialStars, dicHero.quality, 0);
let initInfo = HeroModel.getInitInfo({
job: dicJob.jobid, skins, skinId, ce,
job: dicJob.jobid, skins: newSkins, skinId, ce,
star: dicHero.initialStars, quality: dicHero.quality,
scrollActive: scrollActive,
scrollId: scrollActive? dicHeroScroll.id: 0,
@@ -682,7 +685,8 @@ export class HeroHandler {
let goods = await addItems(roleId, roleName, sid, consumes, ITEM_CHANGE_REASON.REBIRTH);
return resResult(STATUS.SUCCESS, { curHero: { ...curHero, ce: reduceCe(curHero.ce) }, curJewels, goods });
const heroResult = new HeroParam(curHero);
return resResult(STATUS.SUCCESS, { curHero: heroResult, curJewels, goods });
}
// 解锁天赋
@@ -715,10 +719,12 @@ export class HeroHandler {
return resResult(STATUS.TALENT_POINT_NOT_ENOUGH);
}
let { newSkins, newTalents } = updateSkinTalent(skins, new Talent(id), usedTalentPoint + needTalentPoint);
let { newSkins } = updateSkinTalent(skins, new Talent(id), usedTalentPoint + needTalentPoint);
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TALENT, sid, roleId, hero, { skins: newSkins });
return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId']) }});
const heroResult = new HeroParam(hero);
return resResult(STATUS.SUCCESS, { curHero: {...pick(heroResult, ['hid', 'talent', 'usedTalentPoint']) }});
}
@@ -750,10 +756,12 @@ export class HeroHandler {
return resResult(STATUS.TALENT_POINT_NOT_ENOUGH);
}
let { newSkins, newTalents } = updateSkinTalent(skins, new Talent(id, talent.level + 1), usedTalentPoint + needTalentPoint);
let { newSkins } = updateSkinTalent(skins, new Talent(id, talent.level + 1), usedTalentPoint + needTalentPoint);
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TALENT, sid, roleId, hero, { skins: newSkins });
return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId']) }});
const heroResult = new HeroParam(hero);
return resResult(STATUS.SUCCESS, { curHero: {...pick(heroResult, ['hid', 'talent', 'usedTalentPoint']) }});
}
// 洗点
@@ -776,7 +784,9 @@ export class HeroHandler {
let newSkins = initSkinTalent(skins);
hero = await calPlayerCeAndSave(HERO_SYSTEM_TYPE.TALENT, sid, roleId, hero, { skins: newSkins });
return resResult(STATUS.SUCCESS, { curHero: {...pick(hero, ['hid', 'skins', 'skinId']) }});
const heroResult = new HeroParam(hero);
return resResult(STATUS.SUCCESS, { curHero: {...pick(heroResult, ['hid', 'talent', 'usedTalentPoint']) }});
}
// ! debug接口 一键全武将
@@ -879,11 +889,11 @@ export class HeroHandler {
let hero = await HeroModel.findByHidAndRole(hid, roleId);
if(!hero) {
let { resultHeroes } = await createHero(roleId, roleName, sid, serverId, { hid, count: 1, ...params });
hero = resultHeroes[0];
return resResult(STATUS.SUCCESS, { hero: resultHeroes[0] });
} else {
hero = await HeroModel.updateHeroInfo(roleId, hid, params);
return resResult(STATUS.SUCCESS, { hero: new HeroParam(hero) });
}
hero = await HeroModel.updateHeroInfo(roleId, hid, params);
return resResult(STATUS.SUCCESS, { hero });
}
}
+2 -1
View File
@@ -41,6 +41,7 @@ import { HeroModel } from '../db/Hero';
import { JewelModel } from '../db/Jewel';
import { SkinModel } from '../db/Skin';
import { getAp } from './actionPointService';
import { HeroParam } from '../domain/roleField/hero';
/**
* init: 初始的时候是否推送 true-推 false-不推
@@ -111,7 +112,7 @@ async function getModuleData(type: string, data: { role: RoleType, session: Fron
let items = await ItemModel.findbyRole(role.roleId);
let skins = await SkinModel.findbyRole(role.roleId);
role['heros'] = heros;
role['heros'] = heros.map(hero => new HeroParam(hero));
role['jewels'] = jewels;
role['consumeGoods'] = items;
role['skins'] = skins;
+2 -2
View File
@@ -13,7 +13,7 @@ import { nowSeconds } from "../../pubUtils/timeUtil";
import { saveCeChangeLog } from "../../pubUtils/logUtil";
import { getRandSingleEelm, reduceCe, resResult } from "../../pubUtils/util";
import { AttributeCal } from "../../domain/roleField/attribute";
import { CreateHeroParam, HeroShowParam } from "../../domain/roleField/hero";
import { CreateHeroParam, HeroParam, HeroShowParam } from "../../domain/roleField/hero";
import { pinus } from "pinus";
import { Rank } from "../rankService";
import { checkTaskInCreateHero } from "../task/taskService";
@@ -202,7 +202,7 @@ export class CreateHeroes extends UpdateHeroes {
}
public getResultHeroes() {
return this.resultHeroes.map(cur => ({...cur, ce: reduceCe(cur.ce)}))
return this.resultHeroes;
}
public getShowHeroes() {
+2 -2
View File
@@ -241,10 +241,10 @@ export function updateSkinTalent(skins: HeroSkin[], newTalent: Talent, usedTalen
return { newSkins, newTalents };
}
export function initSkinTalent(skins: HeroSkin[]) {
export function initSkinTalent(skins: HeroSkin[], isAll = false) {
let newSkins: HeroSkin[] = [];
for(let skin of skins) {
if(skin.enable) {
if(isAll || skin.enable) {
newSkins.push({ ...skin, talent: getHeroInitTalent(skin.skinId), usedTalentPoint: 0 });
} else {
newSkins.push(skin);