🐞 fix(宝物): 宝物战力计算修复
This commit is contained in:
@@ -28,6 +28,7 @@ import { SchoolModel } from '../../../db/School';
|
|||||||
import { JewelModel } from '../../../db/Jewel';
|
import { JewelModel } from '../../../db/Jewel';
|
||||||
import { RoleCeModel } from '../../../db/RoleCe';
|
import { RoleCeModel } from '../../../db/RoleCe';
|
||||||
import { setTrainLv } from '../../../services/gmService';
|
import { setTrainLv } from '../../../services/gmService';
|
||||||
|
import { ArtifactModel } from '../../../db/Artifact';
|
||||||
|
|
||||||
let timer: NodeJS.Timer;
|
let timer: NodeJS.Timer;
|
||||||
export default function (app: Application) {
|
export default function (app: Application) {
|
||||||
@@ -301,8 +302,9 @@ export class GmRoleHandler {
|
|||||||
let jewels = await JewelModel.findbyRole(roleId);
|
let jewels = await JewelModel.findbyRole(roleId);
|
||||||
let heroes = await HeroModel.findByRole(roleId);
|
let heroes = await HeroModel.findByRole(roleId);
|
||||||
let skins = await SkinModel.findbyRole(roleId);
|
let skins = await SkinModel.findbyRole(roleId);
|
||||||
|
let artifacts = await ArtifactModel.findbyRole(roleId);
|
||||||
|
|
||||||
await calculateCeWithRole(HERO_SYSTEM_TYPE.RE_CAL, roleId, role.serverId, null, {}, { role, schools, jewels, heroes, skins });
|
await calculateCeWithRole(HERO_SYSTEM_TYPE.RE_CAL, roleId, role.serverId, null, {}, { role, schools, jewels, heroes, skins, artifacts });
|
||||||
return resResult(STATUS.SUCCESS);
|
return resResult(STATUS.SUCCESS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -46,6 +46,7 @@ interface Param {
|
|||||||
stonesId?: number,
|
stonesId?: number,
|
||||||
talentId?: number,
|
talentId?: number,
|
||||||
artifact?: ArtifactModelType,
|
artifact?: ArtifactModelType,
|
||||||
|
artifacts?: ArtifactModelType[],
|
||||||
job?: number,
|
job?: number,
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -324,7 +325,7 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
|||||||
}
|
}
|
||||||
case HERO_SYSTEM_TYPE.RE_CAL: // 31. 重新计算
|
case HERO_SYSTEM_TYPE.RE_CAL: // 31. 重新计算
|
||||||
{
|
{
|
||||||
let { role, schools, jewels, heroes, skins } = param;
|
let { role, schools, jewels, heroes, skins, artifacts } = param;
|
||||||
calCe.clearRoleCe();
|
calCe.clearRoleCe();
|
||||||
for(let { hid, skinId, lv, quality, star, starStage, colorStar, colorStarStage, job, jobStage, connections, skins, scrollStar, scrollQuality, scrollColorStar, ePlace } of heroes) {
|
for(let { hid, skinId, lv, quality, star, starStage, colorStar, colorStarStage, job, jobStage, connections, skins, scrollStar, scrollQuality, scrollColorStar, ePlace } of heroes) {
|
||||||
calCe.setHeroBase(hid, skinId);
|
calCe.setHeroBase(hid, skinId);
|
||||||
@@ -343,6 +344,8 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
|||||||
calCe.setTitle(role.title);
|
calCe.setTitle(role.title);
|
||||||
calCe.setTeraph(role.teraphs);
|
calCe.setTeraph(role.teraphs);
|
||||||
}
|
}
|
||||||
|
let artifact = artifacts.find(cur => cur.hid == hid);
|
||||||
|
if(artifact) calCe.setPutArtifact(hid, skinId, job, artifact);
|
||||||
calCe.setEquipSuit(hid, skinId, ePlace);
|
calCe.setEquipSuit(hid, skinId, ePlace);
|
||||||
calCe.setScroll(hid, scrollStar, scrollQuality, scrollColorStar);
|
calCe.setScroll(hid, scrollStar, scrollQuality, scrollColorStar);
|
||||||
}
|
}
|
||||||
@@ -364,8 +367,8 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
|||||||
if(!artifact) break;
|
if(!artifact) break;
|
||||||
for(let [hid ] of heroUpdates) {
|
for(let [hid ] of heroUpdates) {
|
||||||
calCe.setPutArtifact(hid, skinId, job, artifact);
|
calCe.setPutArtifact(hid, skinId, job, artifact);
|
||||||
calCe.setArtifactQuality(hid, artifact.artifactId);
|
// calCe.setArtifactQuality(hid, artifact.artifactId);
|
||||||
calCe.setArtifactSeid(hid, skinId, job, artifact.artifactId);
|
// calCe.setArtifactSeid(hid, skinId, job, artifact.artifactId);
|
||||||
ceChangeTxt.push(`武将 ${hid} 装备宝物 ${artifact.artifactId}`);
|
ceChangeTxt.push(`武将 ${hid} 装备宝物 ${artifact.artifactId}`);
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
|||||||
@@ -528,7 +528,7 @@ export class CalCe {
|
|||||||
if(artifact) {
|
if(artifact) {
|
||||||
this.setArtifactLv(hid, artifact.artifactId, artifact.lv);
|
this.setArtifactLv(hid, artifact.artifactId, artifact.lv);
|
||||||
this.setArtifactQuality(hid, artifact.artifactId);
|
this.setArtifactQuality(hid, artifact.artifactId);
|
||||||
this.setArtifactSeid(hid, skinId, job, artifact.lv);
|
this.setArtifactSeid(hid, skinId, job, artifact.artifactId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -580,9 +580,11 @@ export class CalCe {
|
|||||||
let dicArtifactSeid = gameData.artifactSeid.get(seid);
|
let dicArtifactSeid = gameData.artifactSeid.get(seid);
|
||||||
if(!dicArtifactSeid) continue;
|
if(!dicArtifactSeid) continue;
|
||||||
if(dicArtifactSeid.jobClass != 0 && dicArtifactSeid.jobClass != dicJob.job_class) continue;
|
if(dicArtifactSeid.jobClass != 0 && dicArtifactSeid.jobClass != dicJob.job_class) continue;
|
||||||
if(dicArtifactSeid.hids.indexOf(skinId) == -1) continue;
|
if(dicArtifactSeid.hids.length > 0 && dicArtifactSeid.hids.indexOf(skinId) == -1) continue;
|
||||||
if(dicArtifactSeid.quality > dicArtifact.quality) continue;
|
if(dicArtifactSeid.quality > dicArtifact.quality) continue;
|
||||||
seids.push(...dicArtifactSeid.seids);
|
for(let seid of dicArtifactSeid.seids) {
|
||||||
|
seids.push(seid, 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
let { ratioUp } = this.addSeidEffect(seids);
|
let { ratioUp } = this.addSeidEffect(seids);
|
||||||
|
|||||||
@@ -34,7 +34,7 @@ export function loadArtifactSeid() {
|
|||||||
arr.forEach(o => {
|
arr.forEach(o => {
|
||||||
o.seids = parseNumberList(o.newId);
|
o.seids = parseNumberList(o.newId);
|
||||||
o.hids = parseNumberList(o.hids);
|
o.hids = parseNumberList(o.hids);
|
||||||
dicArtifactSeid.set(o.seid, _.pick(o, Object.keys(DicArtifactSeidKeys)));
|
dicArtifactSeid.set(o.id, _.pick(o, Object.keys(DicArtifactSeidKeys)));
|
||||||
});
|
});
|
||||||
|
|
||||||
arr = undefined;
|
arr = undefined;
|
||||||
|
|||||||
Reference in New Issue
Block a user