武将战力计算(进阶,穿戴,羁绊,好感)加道具

This commit is contained in:
mamengke01
2020-12-14 17:32:40 +08:00
parent a6de265903
commit c501d13f3b
8 changed files with 193 additions and 35 deletions
@@ -287,7 +287,7 @@ export class HeroHandler {
}
hero.jobStage = hero.jobStage ++;
//重算战力并下发
let heros = await calPlayerCeAndSave(sid, roleId, [hero]);
let heros = await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.TRAIN);
return resResult(STATUS.SUCCESS, { hid : heros[0].hid, job : heros[0].job, jobStage : heros[0].jobStage});
}
@@ -299,11 +299,12 @@ export class HeroHandler {
let hero = await HeroModel.findByHidAndRole(hid, roleId, false);
if (!hero)
return resResult(STATUS.HERO_NOT_FIND);
let heroJob = getJobInfoById(hero.job);
let curJob = hero.job;
let heroJob = getJobInfoById(curJob);
let nextHeroJob = getJobByGradeAndClass(heroJob.job_class, heroJob.grade + 1);
if (nextHeroJob.unlockLevel > hero.lv)
return resResult(STATUS.NOT_REACH_UNLOCK_LEVEL);
if (hero.job >= getMaxGradeByjobClass(heroJob.job_class))
if (curJob >= getMaxGradeByjobClass(heroJob.job_class))
return resResult(STATUS.HERO_JOB_REACH_MAX_STAGE);
let cousumeGoods = getItems(heroJob.upGradeConsume);
let result = await handleCost(roleId, sid, cousumeGoods);
@@ -313,7 +314,7 @@ export class HeroHandler {
hero.job = nextHeroJob.jobid;
hero.jobStage = 0;
//重算战力并下发
let heros = await calPlayerCeAndSave(sid, roleId, [hero]);
let heros = await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.STAGEUP, [curJob]);
return resResult(STATUS.SUCCESS, { hid : heros[0].hid, job : heros[0].job, jobStage : heros[0].jobStage});
}
@@ -330,7 +331,7 @@ export class HeroHandler {
return resResult(STATUS.HERO_NOT_FIND);
let flag = true;
let level = 1;
for (let conection of hero.conections) {
for (let conection of hero.connections) {
if (conection.shipId == shipId ) {
if (conection.level >= shipHidAndLevel.level) {
return resResult(STATUS.HERO_CONECTION_IS_MAX_LEVEL);
@@ -342,7 +343,7 @@ export class HeroHandler {
}
}
if (!!flag) {
hero.conections.push({shipId,level});
hero.connections.push({shipId, level});
}
let friendShip = getFriendShipById(shipId, level);
if (hero.star < friendShip.level)
@@ -362,8 +363,8 @@ export class HeroHandler {
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
}
//重算战力并下发
let heros = await calPlayerCeAndSave(sid, roleId, [hero]);
return resResult(STATUS.SUCCESS, { hid : heros[0].hid, conections : heros[0].conections});
let heros = await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.CONNECT, [shipId, level]);
return resResult(STATUS.SUCCESS, { hid : heros[0].hid, connections : heros[0].connections});
}
//赠送(包括一键赠送)
@@ -372,6 +373,7 @@ export class HeroHandler {
let sid: string = session.get('sid');
let { hid, items } = msg;
let hero = await HeroModel.findByHidAndRole(hid, roleId, false);
let lastLv = hero.favourLv;
if (!hero)
return resResult(STATUS.HERO_NOT_FIND);
let friendShipLevels = getFriendShipLevels();
@@ -401,8 +403,12 @@ export class HeroHandler {
return resResult(STATUS.BATTLE_CONSUMES_NOT_ENOUGH);
}
//重算战力并下发
let heros = await calPlayerCeAndSave(sid, roleId, [hero]);
return resResult(STATUS.SUCCESS, { hid : heros[0].hid, favour : heros[0].favour, favourLv : heros[0].favourLv});
if (lastLv != hero.favourLv) {
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.FAVOUR, [lastLv]);
} else {
await HeroModel.updateHeroInfo(roleId, hero.hid, hero);
}
return resResult(STATUS.SUCCESS, { hid : hero.hid, favour : hero.favour, favourLv : hero.favourLv});
}
//穿带时装
@@ -417,18 +423,25 @@ export class HeroHandler {
if (!hero)
return resResult(STATUS.HERO_NOT_FIND);
let result = false;
let lastSkinId;
for (let skin of hero.skins) {
if (skin.id == id) {
if (!!skin.enable) {
return resResult(STATUS.HERO_SKIN_IS_EQUIPED);
}
skin.enable = true;
result = true;
} else {
if (!!skin.enable) {
lastSkinId = skin.id;
}
skin.enable = false;
}
}
if (!result) {
return resResult(STATUS.HERO_SKIN_NOT_FIND);
}
await calPlayerCeAndSave(sid, roleId, [hero]);
await calPlayerCeAndSave(sid, roleId, [hero], HERO_SYSTEM_TYPE.SKIN, [id, lastSkinId]);
return resResult(STATUS.SUCCESS, { hid : hero.hid, skins : hero.skins});
}