基础表

This commit is contained in:
mamengke01
2020-12-30 10:18:28 +08:00
parent b5f2f466c8
commit 7664176c33
3 changed files with 544 additions and 544 deletions
+31 -31
View File
@@ -89,7 +89,7 @@ export function calPlayerCe(globalCeAttr: CeAttrRole, hero: HeroType, type: numb
heroCe += attrNumber * getAttrCeRatio(attrName); heroCe += attrNumber * getAttrCeRatio(attrName);
} }
let incCe = heroCe - hero.ce; let incCe = heroCe - hero.ce;
hero.ce = heroCe > 0?heroCe:1; hero.ce = heroCe > 0 ? heroCe : 1;
if (hero.historyCe < hero.ce) hero.historyCe = hero.ce; if (hero.historyCe < hero.ce) hero.historyCe = hero.ce;
return incCe; return incCe;
} }
@@ -122,28 +122,28 @@ export async function calPlayerCeAndSave(roleId: string, heros: Array<HeroType>,
} }
async function calculateTopFive(role: RoleType, hid: number, ce: number) { async function calculateTopFive(role: RoleType, hid: number, ce: number) {
let topFive = role?.topFive||new Array(); let topFive = role?.topFive || new Array();
topFive.sort((a, b) => {return b.ce - a.ce}); // 0-5,最大-最小 topFive.sort((a, b) => { return b.ce - a.ce }); // 0-5,最大-最小
let index = topFive.findIndex(cur => cur.hid == hid); let index = topFive.findIndex(cur => cur.hid == hid);
if(index == -1) { // 不在最强列表 if (index == -1) { // 不在最强列表
if(topFive.length < 5) { // 不满5人 if (topFive.length < 5) { // 不满5人
topFive.push({hid, ce}); topFive.push({ hid, ce });
} else if(topFive.length == 5){ } else if (topFive.length == 5) {
if(ce > topFive[topFive.length - 1].ce) { // 跻身最强5人 if (ce > topFive[topFive.length - 1].ce) { // 跻身最强5人
topFive.pop(); topFive.pop();
topFive.push({hid, ce}); topFive.push({ hid, ce });
}
} else {
topFive.splice(5, topFive.length - 5);
} }
} else {
topFive.splice(5, topFive.length - 5);
}
} else { // 原来就是最强5人 } else { // 原来就是最强5人
if(ce < topFive[topFive.length - 1].ce) { // 滑出最强 if (ce < topFive[topFive.length - 1].ce) { // 滑出最强
let heroes = await HeroModel.getTopHero(role.roleId, 5); let heroes = await HeroModel.getTopHero(role.roleId, 5);
topFive = heroes.map(cur => {return {hid: cur.hid, ce: cur.ce}}); topFive = heroes.map(cur => { return { hid: cur.hid, ce: cur.ce } });
} else { } else {
topFive[index].ce = ce; topFive[index].ce = ce;
} }
} }
let topFiveCe = topFive.reduce((pre, cur) => { let topFiveCe = topFive.reduce((pre, cur) => {
@@ -196,10 +196,10 @@ export function calHeroStarIncAttr(hero: HeroType, type: number, hid: number, ar
const dicHero = gameData.hero.get(hero.hid); const dicHero = gameData.hero.get(hero.hid);
const isWake = colorStar > 0; // 是否觉醒,只要激活了觉醒,彩星就会 > 1 const isWake = colorStar > 0; // 是否觉醒,只要激活了觉醒,彩星就会 > 1
if(isWake) { if (isWake) {
if(colorStarStage == ABI_STAGE.START) originColorStar = colorStar - 1; if (colorStarStage == ABI_STAGE.START) originColorStar = colorStar - 1;
} else { } else {
if(starStage == ABI_STAGE.START) originStar = star - 1; if (starStage == ABI_STAGE.START) originStar = star - 1;
} }
const dicStar = isWake ? getHeroWakeByQuality(dicHero.quality, originColorStar) : getHeroStarByQuality(quality, originStar); // 星级表 const dicStar = isWake ? getHeroWakeByQuality(dicHero.quality, originColorStar) : getHeroStarByQuality(quality, originStar); // 星级表
@@ -229,7 +229,7 @@ export function calHeroStarIncAttr(hero: HeroType, type: number, hid: number, ar
starUp = dicStar.ceAttr.get(stage); starUp = dicStar.ceAttr.get(stage);
} }
let newBase = (heroAttr + hero.lv * (heroUpAttr + starUp)) * HERO_CE_RATIO; let newBase = (heroAttr + (hero.lv - 1) * (heroUpAttr + starUp)) * HERO_CE_RATIO;
let field = getAtrrNameById(targetAttrId); let field = getAtrrNameById(targetAttrId);
let ceAttrData: CeAttrData = ceAttr[field] || new CeAttrData(); // 存表中的属性下的basefixupratioup let ceAttrData: CeAttrData = ceAttr[field] || new CeAttrData(); // 存表中的属性下的basefixupratioup
let { ratioUp = 0, fixUp = 0 } = ceAttrData; let { ratioUp = 0, fixUp = 0 } = ceAttrData;
@@ -319,7 +319,7 @@ export function calHeroJobAttr(hero: HeroType, res: CeAttr, addSeidList: Array<n
} }
for (let key in HEROTARIN) { for (let key in HEROTARIN) {
let attrName: string = HEROTARIN[key]; let attrName: string = HEROTARIN[key];
res[attrName] = res[attrName]||{ fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp }; res[attrName] = res[attrName] || { fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp };
if (hero.jobStage >= parseInt(key)) { if (hero.jobStage >= parseInt(key)) {
res[attrName].fixUp += currentJob[attrName] * HERO_CE_RATIO; res[attrName].fixUp += currentJob[attrName] * HERO_CE_RATIO;
} else { } else {
@@ -332,21 +332,21 @@ export function calHeroJobAttr(hero: HeroType, res: CeAttr, addSeidList: Array<n
} }
//穿戴时装 //穿戴时装
export function calHeroWearSkinIncAttr(hero: HeroType, args: Array<number>, addSeidList: Array<number>, removeSeidList: Array<number>, isInit = false, heroAttr?:CeAttr) { export function calHeroWearSkinIncAttr(hero: HeroType, args: Array<number>, addSeidList: Array<number>, removeSeidList: Array<number>, isInit = false, heroAttr?: CeAttr) {
let res: CeAttr = heroAttr||{}; let res: CeAttr = heroAttr || {};
let addSkin = gameData.fashion.get(args[0]); let addSkin = gameData.fashion.get(args[0]);
let delSkin = gameData.fashion.get(args[1]); let delSkin = gameData.fashion.get(args[1]);
let attrName: string; let attrName: string;
if (delSkin) { if (delSkin) {
for (let attr of delSkin.actorAttr) { for (let attr of delSkin.actorAttr) {
attrName = getAtrrNameById(attr.id); attrName = getAtrrNameById(attr.id);
res[attrName] = res[attrName]||{ fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp }; res[attrName] = res[attrName] || { fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp };
res[attrName].fixUp -= attr.number * HERO_CE_RATIO; res[attrName].fixUp -= attr.number * HERO_CE_RATIO;
} }
} }
for (let attr of addSkin.actorAttr) { for (let attr of addSkin.actorAttr) {
attrName = getAtrrNameById(attr.id); attrName = getAtrrNameById(attr.id);
res[attrName] = res[attrName]||{ fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp }; res[attrName] = res[attrName] || { fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp };
res[attrName].fixUp += attr.number * HERO_CE_RATIO; res[attrName].fixUp += attr.number * HERO_CE_RATIO;
} }
@@ -531,7 +531,7 @@ export function calHeroEquipIncAttr(hero: HeroType) {
// console.log('refine', dicRefine?dicRefine.upPercent:0 ); // console.log('refine', dicRefine?dicRefine.upPercent:0 );
let valueJewel = jewel.get(i) || 0; let valueJewel = jewel.get(i) || 0;
// console.log('jewel', valueJewel); // console.log('jewel', valueJewel);
let attr = (value1 + lv * valueup) * (HERO_CE_RATIO + valueRefine) + valueJewel * HERO_CE_RATIO; let attr = (value1 + (lv - 1) * valueup) * (HERO_CE_RATIO + valueRefine) + valueJewel * HERO_CE_RATIO;
attrResult[attrName] += attr; attrResult[attrName] += attr;
} }
@@ -540,7 +540,7 @@ export function calHeroEquipIncAttr(hero: HeroType) {
for (let attrName in attrResult) { for (let attrName in attrResult) {
let originalCe = hero.ceAttr[attrName].equipUp || 0; let originalCe = hero.ceAttr[attrName].equipUp || 0;
console.log('装备战力:', attrName, attrResult[attrName] * HERO_CE_RATIO, originalCe); console.log('装备战力:', attrName, attrResult[attrName], originalCe);
res[attrName] = { fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp, equipUp: originalCe }; res[attrName] = { fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp, equipUp: originalCe };
res[attrName].equipUp += attrResult[attrName] - originalCe; res[attrName].equipUp += attrResult[attrName] - originalCe;
} }
@@ -884,7 +884,7 @@ export function initRoleAtrr(role: RoleType) {
return; return;
} }
async function reCalRoleAttr(heros:Array<HeroType>, ceAttr: CeAttrRole, type: number, args: Array<number>) { async function reCalRoleAttr(heros: Array<HeroType>, ceAttr: CeAttrRole, type: number, args: Array<number>) {
let reIncAttr: CeAttrRole = {}; // role表属性增量 let reIncAttr: CeAttrRole = {}; // role表属性增量
switch (type) { switch (type) {
case HERO_SYSTEM_TYPE.INIT: case HERO_SYSTEM_TYPE.INIT:
+2 -2
View File
@@ -10001,7 +10001,7 @@
"pieceId": 42217, "pieceId": 42217,
"composeMaterial": "&", "composeMaterial": "&",
"specialMaterial": "&", "specialMaterial": "&",
"suitId": 17, "suitId": 0,
"decomposeItem": "17049&1", "decomposeItem": "17049&1",
"hole": 1, "hole": 1,
"randomEffect": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20", "randomEffect": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20",
@@ -10038,7 +10038,7 @@
"pieceId": 42218, "pieceId": 42218,
"composeMaterial": "&", "composeMaterial": "&",
"specialMaterial": "&", "specialMaterial": "&",
"suitId": 19, "suitId": 0,
"decomposeItem": "17049&3", "decomposeItem": "17049&3",
"hole": 1, "hole": 1,
"randomEffect": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20", "randomEffect": "1&2&3&4&5&6&7&8&9&10&11&12&13&14&15&16&17&18&19&20",
File diff suppressed because it is too large Load Diff