战力:初步
This commit is contained in:
@@ -105,7 +105,7 @@ export class EquipHandler {
|
||||
ePlace: newEplace,
|
||||
consumes: addConsumeToHero(hero.consumes, consumes)
|
||||
}
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_STRENGTH, roleId, serverId, sid, hid, update, { ePlaceId });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_STRENGTH, roleId, serverId, sid, hid, update, { ePlaceIds: [ePlaceId] });
|
||||
await checkTaskInEquipLvUp(serverId, roleId, sid, oldEplace, newEplace, [ePlaceId]);
|
||||
|
||||
const curHero = {
|
||||
@@ -343,7 +343,7 @@ export class EquipHandler {
|
||||
let canChange = originJewel && checkJewelCanPutOnEquip(originEquip, originJewel);
|
||||
if(canChange) canSentMineToOrigin = true;
|
||||
let { newEplace, updatedEplace } = updateEplace(originEplace, ePlaceId, { jewel: canChange? originJewel.seqId: 0 });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_JEWEL, roleId, serverId, sid, hid, { ePlace: newEplace }, { ePlaceId, oldJewel: jewel, newJewel: canChange? originJewel:null });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_JEWEL, roleId, serverId, sid, jewel.hid, { ePlace: newEplace }, { ePlaceId, jewel: canChange? originJewel: null });
|
||||
await checkTaskInPutJewel(serverId, roleId, sid, originEplace, newEplace, ePlaceId, jewel, canChange? originJewel:null);
|
||||
|
||||
originHeroResult = { hid: originHero.hid, ePlace: updatedEplace };
|
||||
@@ -356,7 +356,7 @@ export class EquipHandler {
|
||||
// 目标镶嵌上
|
||||
let curJewel = await JewelModel.putOnOrOff(seqId, hid, ePlaceId);
|
||||
let { newEplace, updatedEplace } = updateEplace(oldEplace, ePlaceId, { jewel: seqId });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_JEWEL, roleId, serverId, sid, hid, { ePlace: newEplace }, { ePlaceId, oldJewel: originJewel, newJewel: curJewel });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_JEWEL, roleId, serverId, sid, hid, { ePlace: newEplace }, { ePlaceIds: [ePlaceId], jewels: [curJewel] });
|
||||
await checkTaskInPutJewel(serverId, roleId, sid, oldEplace, newEplace, ePlaceId, originJewel, curJewel);
|
||||
|
||||
let curHero = {
|
||||
@@ -384,7 +384,7 @@ export class EquipHandler {
|
||||
|
||||
let curJewel = await JewelModel.putOnOrOff(curEquip.jewel, 0, 0);
|
||||
let { newEplace, updatedEplace } = updateEplace(oldEplace, ePlaceId, { jewel: 0 });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_JEWEL, roleId, serverId, sid, hid, { ePlace: newEplace }, { ePlaceId, oldJewel: curJewel });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.EQUIP_JEWEL, roleId, serverId, sid, hid, { ePlace: newEplace }, { ePlaceIds: [ePlaceId], jewels: [] });
|
||||
await checkTaskInPutJewel(serverId, roleId, sid, oldEplace, newEplace, ePlaceId, null, curJewel);
|
||||
|
||||
let curHero = {
|
||||
@@ -557,7 +557,7 @@ export class EquipHandler {
|
||||
// 更新战力
|
||||
if(hid > 0) {
|
||||
const hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE, roleId, serverId, sid, hid, {}, { ePlaceId, oldJewel: jewel, newJewel, hero });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE, roleId, serverId, sid, hid, { ePlace: hero.ePlace }, { ePlaceId, jewel: newJewel });
|
||||
}
|
||||
|
||||
await checkTaskInEquipReset(serverId, roleId, sid);
|
||||
@@ -639,7 +639,7 @@ export class EquipHandler {
|
||||
// 更新战力
|
||||
if(isSuccess && hid > 0) {
|
||||
const hero = await HeroModel.findByHidAndRole(hid, roleId);
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_QUENCH, roleId, serverId, sid, hid, {}, { ePlaceId, oldJewel: jewel, newJewel, hero });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_QUENCH, roleId, serverId, sid, hid, { ePlace: hero.ePlace }, { ePlaceId, jewel: newJewel });
|
||||
}
|
||||
|
||||
await checkTaskInEquipQuench(serverId, roleId, sid, isSuccess);
|
||||
@@ -759,7 +759,7 @@ export class EquipHandler {
|
||||
// 更新战力
|
||||
if(targetJewel.hid > 0) {
|
||||
const hero = await HeroModel.findByHidAndRole(targetJewel.hid, roleId);
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE, roleId, serverId, sid, targetJewel.hid, {}, { hid: targetJewel.ePlaceId, ePlaceId: targetJewel.ePlaceId, oldJewel: originJewel, newJewel, hero });
|
||||
await calculateCeWithHero(HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE, roleId, serverId, sid, targetJewel.hid, { ePlace: hero.ePlace }, { ePlaceId: targetJewel.ePlaceId, jewel: newJewel });
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -29,8 +29,7 @@ interface Param {
|
||||
isFavourLvUp?: boolean,
|
||||
ePlaceId?: number,
|
||||
ePlaceIds?: number[],
|
||||
oldJewel?: JewelType,
|
||||
newJewel?: JewelType,
|
||||
jewels?: JewelType[],
|
||||
jewel?: JewelType,
|
||||
teraphId?: number,
|
||||
schoolId?: number,
|
||||
@@ -113,19 +112,17 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.SKIN: // 7. 穿皮肤
|
||||
{
|
||||
let { hero: { quality, star, starStage, colorStar, colorStarStage } } = param;
|
||||
let { hero: { quality, star, starStage, colorStar, colorStarStage, skins } } = param;
|
||||
for(let [hid, { skinId, job, ePlace }] of heroUpdates) {
|
||||
calCe.setHeroBase(hid, skinId);
|
||||
calCe.setHeroStar(hid, job, quality, star, starStage, colorStar, colorStarStage);
|
||||
|
||||
// let eplaceIds = newEplace.map(cur => cur.id);
|
||||
// calEquipStrengthIncAttr(originHero, update, eplaceIds);
|
||||
// calEquipQualityIncAttr(originHero, update, eplaceIds);
|
||||
// calEquipStarIncAttr(originHero, update, eplaceIds, addSeidList, removeSeidList);
|
||||
// // 天赋点
|
||||
// calHeroTalent(originHero, update, addSeidList, removeSeidList);
|
||||
for(let { id, equipId, quality, qualityStage, lv, star, starStage } of ePlace) {
|
||||
calCe.setEquipQuality(hid, id, equipId, quality, qualityStage);
|
||||
calCe.setEquipStrength(hid, id, equipId, lv);
|
||||
calCe.setEquipStar(hid, id, equipId, star, starStage);
|
||||
}
|
||||
calCe.setTalent(hid, skins);
|
||||
}
|
||||
// TODO 装备
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.FAVOUR: // 8. 好感度
|
||||
@@ -184,14 +181,101 @@ export async function calculateCes(type: HERO_SYSTEM_TYPE, roleId: string, serve
|
||||
calCe.setTeraph(teraphs);
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.COMPOSE_EQUIP: // 21. 合成装备
|
||||
{
|
||||
let { ePlaceId } = param;
|
||||
for(let [hid, { ePlace = [] }] of heroUpdates) {
|
||||
for(let { id, equipId, quality, qualityStage, lv, star, starStage } of ePlace) {
|
||||
if(ePlaceId == id) {
|
||||
calCe.setEquipQuality(hid, id, equipId, quality, qualityStage);
|
||||
calCe.setEquipStrength(hid, id, equipId, lv);
|
||||
calCe.setEquipStar(hid, id, equipId, star, starStage);
|
||||
}
|
||||
}
|
||||
calCe.setEquipSuit(hid, ePlace);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.EQUIP_STRENGTH: // 22. 装备强化
|
||||
{
|
||||
let { ePlaceIds } = param;
|
||||
for(let [hid, { ePlace = [] }] of heroUpdates) {
|
||||
for(let { id, equipId, lv } of ePlace) {
|
||||
if(ePlaceIds.indexOf(id) != -1) {
|
||||
calCe.setEquipStrength(hid, id, equipId, lv);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.EQUIP_QUALITY: // 23. 装备升品
|
||||
{
|
||||
let { ePlaceId } = param;
|
||||
for(let [hid, { ePlace = [] }] of heroUpdates) {
|
||||
for(let { id, equipId, quality, qualityStage } of ePlace) {
|
||||
if(ePlaceId == id) {
|
||||
calCe.setEquipQuality(hid, id, equipId, quality, qualityStage);
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.EQUIP_STAR: // 24. 装备升星
|
||||
{
|
||||
let { ePlaceId } = param;
|
||||
for(let [hid, { ePlace = [] }] of heroUpdates) {
|
||||
for(let { id, equipId, star, starStage } of ePlace) {
|
||||
if(ePlaceId == id) {
|
||||
calCe.setEquipStar(hid, id, equipId, star, starStage);
|
||||
}
|
||||
}
|
||||
calCe.setEquipSuit(hid, ePlace);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.EQUIP_JEWEL: // 25. 装备天晶
|
||||
case HERO_SYSTEM_TYPE.JEWEL_RESET_RANDSE: // 27. 洗练
|
||||
case HERO_SYSTEM_TYPE.JEWEL_QUENCH: // 28. 淬炼
|
||||
{
|
||||
let { ePlaceId, jewel: curJewel } = param;
|
||||
for(let [hid, { ePlace = [] }] of heroUpdates) {
|
||||
for(let { id, stones } of ePlace) {
|
||||
if(ePlaceId == id) {
|
||||
calCe.setJewel(hid, id, stones, curJewel);
|
||||
}
|
||||
}
|
||||
calCe.setEquipSuit(hid, ePlace);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.EQUIP_STONE: // 26. 装备地玉
|
||||
{
|
||||
let { ePlaceId, jewel: curJewel } = param;
|
||||
for(let [hid, { ePlace = [] }] of heroUpdates) {
|
||||
for(let { id, stones } of ePlace) {
|
||||
if(ePlaceId == id) {
|
||||
calCe.setJewel(hid, id, stones, curJewel);
|
||||
}
|
||||
}
|
||||
calCe.setEquipSuit(hid, ePlace);
|
||||
}
|
||||
break;
|
||||
}
|
||||
case HERO_SYSTEM_TYPE.REBIRTH: // 29. 重生
|
||||
{
|
||||
for(let [hid, { skinId, lv, quality, star, starStage, colorStar, colorStarStage, job, jobStage, }] of heroUpdates) {
|
||||
for(let [hid, { skinId, lv, quality, star, starStage, colorStar, colorStarStage, job, jobStage, skins, ePlace, scrollStar, scrollQuality, scrollColorStar }] of heroUpdates) {
|
||||
calCe.setHeroBase(hid, skinId);
|
||||
calCe.setHeroLv(hid, lv);
|
||||
calCe.setHeroStar(hid, job, quality, star, starStage, colorStar, colorStarStage);
|
||||
calCe.setJob(hid, job, jobStage);
|
||||
// TODO 装备
|
||||
|
||||
for(let { id, equipId, quality, qualityStage, lv, star, starStage } of ePlace) {
|
||||
calCe.setEquipQuality(hid, id, equipId, quality, qualityStage);
|
||||
calCe.setEquipStrength(hid, id, equipId, lv);
|
||||
calCe.setEquipStar(hid, id, equipId, star, starStage);
|
||||
}
|
||||
calCe.setTalent(hid, skins);
|
||||
calCe.setScroll(hid, scrollStar, scrollQuality, scrollColorStar);
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
import { ABI_STAGE, ABI_STAGE_TO_TYPE, ABI_TYPE_MAIN, LINEUP_NUM, SEID_TYPE, TALENT_RELATION_TYPE } from "../../consts";
|
||||
import { Connect, HeroSkin, HeroType, HeroUpdate, Talent } from "../../db/Hero";
|
||||
import { Connect, EPlace, HeroSkin, HeroType, HeroUpdate, Stone, Talent } from "../../db/Hero";
|
||||
import { JewelType } from "../../db/Jewel";
|
||||
import { RoleUpdate, Teraph } from "../../db/Role";
|
||||
import { AttrCell, EquipAttr, HeroAttr, RoleCeType, SchoolAttr } from "../../db/RoleCe";
|
||||
import { TopHero } from "../../domain/dbGeneral";
|
||||
import { AttributeCal } from "../../domain/roleField/attribute";
|
||||
import { gameData, getFriendShipById, getHeroStarByQuality, getHeroWakeByQuality, getJobByGradeAndClass, getSchoolRateByStar, getScollByStar, getTeraph } from "../../pubUtils/data";
|
||||
import { gameData, getEquipQualityIdByEquipIdAndPoint, getEquipStarAttrByStage, getEquipStrenthenAttr, getEquipSuitByHero, getFriendShipById, getHeroStarByQuality, getHeroWakeByQuality, getJewelConditionByLvAndSeId, getJobByGradeAndClass, getSchoolRateByStar, getScollByStar, getTeraph } from "../../pubUtils/data";
|
||||
import { DicRandomEffectPool } from "../../pubUtils/dictionary/DicRandomEffectPool";
|
||||
import { DicSe } from "../../pubUtils/dictionary/DicSe";
|
||||
import { addToMap, deepCopy } from "../../pubUtils/util";
|
||||
@@ -16,7 +17,8 @@ export class CalCe {
|
||||
heroAttrsByHid: Map<number, string[]> = new Map(); // hid => [hid+attrId]
|
||||
equipAttrs: Map<string, EquipMainAttr|EquipSubAttr> = new Map(); // hid+eplaceId+attrId => EquipAttr
|
||||
equipAttrsByHid: Map<number, string[]> = new Map(); // hid => [hid+eplaceId+attrId]
|
||||
equipAttrsByHidAndEplace: Map<string, { hid: number, eplaceId: number, keys: string[]}> = new Map(); // hid+eplaceId =>+eplaceId+attrId]
|
||||
equipAttrsByHidAndEplace: Map<string, { hid: number, eplaceId: number, keys: string[]}> = new Map(); // hid+eplaceId =>[hid+eplaceId+attrId]
|
||||
equipAttrsByHidAndAttrId: Map<string, { hid: number, attrId: number, keys: string[]}> = new Map(); // hid+attrId =>[hid+eplaceId+attrId]
|
||||
heroLv: Map<number, number> = new Map();
|
||||
heroHistoryCe: Map<number, number> = new Map();
|
||||
heroObjectId: Map<number, string> = new Map();
|
||||
@@ -25,8 +27,10 @@ export class CalCe {
|
||||
resultCes: Map<number, number> = new Map(); // hid => ce
|
||||
schoolAttrs: Map<string, { hid: number, attrId: number, ce: number }> = new Map(); // hid + attr => ratio
|
||||
schoolAttrsByAttrId: Map<number, string[]> = new Map(); // attrId => hid + attr
|
||||
schoolAttrsByHid: Map<number, string[]> = new Map(); // hid => hid + attr
|
||||
scrollAttrs: Map<string, { hid: number, attrId: number, ce: number }> = new Map(); // hid + attr => ratio
|
||||
scrollAttrsByAttrId: Map<number, string[]> = new Map(); // attrId => hid + attr
|
||||
scrollAttrsByHid: Map<number, string[]> = new Map(); // hid => hid + attr
|
||||
|
||||
constructor(roleId: string) {
|
||||
this.roleId = roleId;
|
||||
@@ -45,6 +49,11 @@ export class CalCe {
|
||||
return this.globalAttrs.get(attrId);
|
||||
}
|
||||
|
||||
private getHeroAttrsByHid(hid: number) {
|
||||
let keys = this.heroAttrsByHid.get(hid);
|
||||
return keys.map(key => this.heroAttrs.get(key));
|
||||
}
|
||||
|
||||
private getHeroAttrByHidAndId(hid: number, attrId: number) {
|
||||
let key = `${hid}_${attrId}`;
|
||||
if(!this.heroAttrs.has(key)) {
|
||||
@@ -88,6 +97,13 @@ export class CalCe {
|
||||
return this.equipAttrs.get(key);
|
||||
}
|
||||
|
||||
private getEquipAttrsByHidAndEplace(hid: number, eplaceId: number) {
|
||||
let key2 = `${hid}_${eplaceId}`;
|
||||
if(!this.equipAttrsByHidAndEplace.has(key2)) return []
|
||||
let { keys } = this.equipAttrsByHidAndEplace.get(key2);
|
||||
return keys.map(key => this.equipAttrs.get(key));
|
||||
}
|
||||
|
||||
private setSchoolAttrs(hid: number, attrId: number, value: number) {
|
||||
let key = `${hid}_${attrId}`;
|
||||
if(!this.schoolAttrs.has(key)) {
|
||||
@@ -96,11 +112,20 @@ export class CalCe {
|
||||
this.schoolAttrsByAttrId.set(attrId, []);
|
||||
}
|
||||
this.schoolAttrsByAttrId.get(attrId).push(key);
|
||||
if(!this.schoolAttrsByHid.has(attrId)) {
|
||||
this.schoolAttrsByHid.set(hid, []);
|
||||
}
|
||||
this.schoolAttrsByHid.get(hid).push(key);
|
||||
} else {
|
||||
this.schoolAttrs.get(key).ce = value;
|
||||
}
|
||||
}
|
||||
|
||||
private getSchoolAttrsByHid(hid: number) {
|
||||
let keys = this.schoolAttrsByHid.get(hid)||[];
|
||||
return keys.map(key => this.schoolAttrs.get(key));
|
||||
}
|
||||
|
||||
private calSchoolAttrsToGlobal(attrId: number) {
|
||||
let keys = this.schoolAttrsByAttrId.get(attrId)||[];
|
||||
let schoolResult = 0;
|
||||
@@ -120,11 +145,20 @@ export class CalCe {
|
||||
this.scrollAttrsByAttrId.set(attrId, []);
|
||||
}
|
||||
this.scrollAttrsByAttrId.get(attrId).push(key);
|
||||
if(!this.scrollAttrsByHid.has(attrId)) {
|
||||
this.scrollAttrsByHid.set(hid, []);
|
||||
}
|
||||
this.scrollAttrsByHid.get(hid).push(key);
|
||||
} else {
|
||||
this.scrollAttrs.get(key).ce = value;
|
||||
}
|
||||
}
|
||||
|
||||
private getScrollAttrsByHid(hid: number) {
|
||||
let keys = this.scrollAttrsByHid.get(hid)||[];
|
||||
return keys.map(key => this.scrollAttrs.get(key));
|
||||
}
|
||||
|
||||
private calScrollAttrsToGlobal(attrId: number) {
|
||||
let keys = this.scrollAttrsByAttrId.get(attrId)||[];
|
||||
let result = 0;
|
||||
@@ -141,14 +175,15 @@ export class CalCe {
|
||||
for(let [hid, keys] of this.heroAttrsByHid) {
|
||||
let lv = this.heroLv.get(hid)||1;
|
||||
for(let key of keys) {
|
||||
let { attrId, base = 0, job = 0, starUp = 0, connect = 0, favour = 0, talent = 0, equip = 0, equipUp = 0, equipStone = 0 } = this.heroAttrs.get(key);
|
||||
let { attrId, mainBase = 0, subBase = 0, job = 0, starUp = 0, connect = 0, favour = 0, talent = 0, equipQuality = 0, equipStrength = 0, equipStar = 0, equipSuit = 0, jewel = 0, stone = 0 } = this.heroAttrs.get(key);
|
||||
let { school = 0, teraph = 0, title = 0, scroll = 0, skin = 0 } = this.getGlobalAttrById(attrId);
|
||||
let val = 0;
|
||||
if(ABI_TYPE_MAIN.indexOf(attrId)) {
|
||||
// {[hp1 + lv * hp2 + hp3 * ( 1 + hp4 )] * (1 + hp5 ) + [( hp6+hp7)*(1+hp8)] } * ( 1 + hp9 ) + hp10 + hp11
|
||||
val = ((base + job + lv * starUp + connect * ( 1 + favour )) * ( 1 + school + talent ) + equip ) * ( 1 + equipUp ) + equipStone + teraph + title + scroll + skin;
|
||||
// {[hp1 + lv * hp2 + hp3 * ( 1 + hp4 )] * (1 + hp5 ) + [( hp6 + hp7 ) * ( 1 + hp8 )] } * ( 1 + hp9 ) + hp10 + hp11
|
||||
val = ((mainBase + job + lv * starUp + connect * ( 1 + favour )) * ( 1 + school + talent ) + (( equipQuality + equipStrength ) * ( 1 + ( equipStar + equipSuit ))) ) * ( 1 + jewel ) + stone + teraph + title + scroll + skin;
|
||||
} else {
|
||||
val = base + job + talent + teraph + school + title + equip + skin;
|
||||
// attr1 + attr2 + attr3 + attr4 + attr5 + attr6 + attr7 + attr8 + attr9
|
||||
val = subBase + job + talent + teraph + school + title + jewel + skin + equipStar;
|
||||
}
|
||||
if(!ces.has(hid)) ces.set(hid, []);
|
||||
ces.get(hid).push({ id: attrId, val });
|
||||
@@ -288,12 +323,55 @@ export class CalCe {
|
||||
return { topLineup, topLineupCe };
|
||||
}
|
||||
|
||||
private clearRoleAttr(field: string) {
|
||||
for(let globalAttr of this.globalAttrs) {
|
||||
globalAttr[field] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private clearHeroAttrByHid(hid: number, field: string) {
|
||||
let heroAttrs = this.getHeroAttrsByHid(hid);
|
||||
for(let heroAttr of heroAttrs) {
|
||||
heroAttr[field] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private clearEquipAttrByHidAndEplace(hid: number, eplaceId: number, field: string) {
|
||||
let equipAttrs = this.getEquipAttrsByHidAndEplace(hid, eplaceId);
|
||||
for(let equipAttr of equipAttrs) {
|
||||
let originNum = equipAttr[field]||0;
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, equipAttr.attrId);
|
||||
if(heroAttr && heroAttr[field]) {
|
||||
heroAttr[field] -= originNum;
|
||||
}
|
||||
equipAttr[field] = 0;
|
||||
}
|
||||
}
|
||||
|
||||
private clearSchoolAttr(hid: number) {
|
||||
let schoolAttrs = this.getSchoolAttrsByHid(hid);
|
||||
for(let schoolAttr of schoolAttrs) {
|
||||
schoolAttr.ce = 0;
|
||||
this.calSchoolAttrsToGlobal(schoolAttr.attrId);
|
||||
}
|
||||
}
|
||||
|
||||
private clearScrollAttr(hid: number) {
|
||||
let scrollAttrs = this.getScrollAttrsByHid(hid);
|
||||
for(let scrollAttr of scrollAttrs) {
|
||||
scrollAttr.ce = 0;
|
||||
this.calScrollAttrsToGlobal(scrollAttr.attrId);
|
||||
}
|
||||
}
|
||||
|
||||
// 武将基础&成长
|
||||
public setHeroBase(hid: number, skinId: number) {
|
||||
this.clearHeroAttrByHid(hid, 'mainBase');
|
||||
let dicHero = gameData.hero.get(skinId);
|
||||
|
||||
for(let [attrId, value] of dicHero.baseAbilityArr) {
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, attrId);
|
||||
heroAttr.base = value;
|
||||
heroAttr.mainBase = value;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -304,6 +382,7 @@ export class CalCe {
|
||||
|
||||
// 星级相关
|
||||
public setHeroStar(hid: number, job: number, quality: number, star: number, starStage: number, colorStar: number, colorStarStage: number) {
|
||||
this.clearHeroAttrByHid(hid, 'starUp');
|
||||
let dicJob = gameData.job.get(job);
|
||||
let jobClass = dicJob.job_class;
|
||||
const isWake = colorStar > 0; // 是否觉醒,只要激活了觉醒,彩星就会 > 1
|
||||
@@ -326,6 +405,8 @@ export class CalCe {
|
||||
|
||||
// 职业基础
|
||||
public setJob(hid: number, job: number, jobStage: number) {
|
||||
this.clearHeroAttrByHid(hid, 'job');
|
||||
this.clearHeroAttrByHid(hid, 'subBase');
|
||||
const dicJob = gameData.job.get(job);
|
||||
let lastJob = getJobByGradeAndClass(dicJob.job_class, dicJob.grade - 1);
|
||||
let dicLastJob = lastJob? gameData.job.get(lastJob.jobid): null;
|
||||
@@ -344,12 +425,13 @@ export class CalCe {
|
||||
}
|
||||
for(let { id, val } of dicJob.baseSubAttr) {
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, id);
|
||||
heroAttr.base = val;
|
||||
heroAttr.subBase = val;
|
||||
}
|
||||
}
|
||||
|
||||
// 好感度
|
||||
public setFavour(hid: number, favourLv: number, connections: Connect[]) {
|
||||
this.clearHeroAttrByHid(hid, 'favour');
|
||||
let currentFiendShipLevel = gameData.friendShipLevelMap.get(favourLv);
|
||||
let add = currentFiendShipLevel.add;
|
||||
|
||||
@@ -364,6 +446,7 @@ export class CalCe {
|
||||
|
||||
// 羁绊
|
||||
public setConnection(hid: number, shipId: number, connections: Connect[]) {
|
||||
this.clearHeroAttrByHid(hid, 'connect');
|
||||
let connect = connections.find(cur => cur.shipId == shipId);
|
||||
let level = connect?.level||0;
|
||||
|
||||
@@ -387,6 +470,7 @@ export class CalCe {
|
||||
|
||||
// 天赋
|
||||
public setTalent(hid: number, skins: HeroSkin[]) {
|
||||
this.clearHeroAttrByHid(hid, 'talent');
|
||||
let skin = skins.find(cur => cur.enable);
|
||||
let seids = this.getTalentSeid(skin.talent);
|
||||
let { ratioUp } = this.addSeidEffect(seids);
|
||||
@@ -421,8 +505,122 @@ export class CalCe {
|
||||
return result;
|
||||
}
|
||||
|
||||
// 装备升品
|
||||
public setEquipQuality(hid: number, eplaceId: number, equipId: number, quality: number, qualityStage: number) {
|
||||
this.clearEquipAttrByHidAndEplace(hid, eplaceId, 'equipQuality');
|
||||
let dicEquipQuality = getEquipQualityIdByEquipIdAndPoint(equipId, quality, qualityStage);
|
||||
for(let { id, num } of dicEquipQuality.attribute) {
|
||||
let equipAttr = this.getEquipAttrByHidAndId(hid, eplaceId, id);
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, id);
|
||||
heroAttr.equipQuality += num - equipAttr.equipQuality;
|
||||
equipAttr.equipQuality = num;
|
||||
}
|
||||
}
|
||||
|
||||
// 装备强化
|
||||
public setEquipStrength(hid: number, eplaceId: number, equipId: number, lv: number) {
|
||||
this.clearEquipAttrByHidAndEplace(hid, eplaceId, 'equipStrengthen');
|
||||
let dicEquipStrenth = getEquipStrenthenAttr(equipId, lv);
|
||||
for(let { id, num } of dicEquipStrenth.attr) {
|
||||
let equipAttr = this.getEquipAttrByHidAndId(hid, eplaceId, id);
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, id);
|
||||
heroAttr.equipStrength = num - equipAttr.equipStrengthen;
|
||||
equipAttr.equipStrengthen = num;
|
||||
}
|
||||
}
|
||||
|
||||
// 装备精炼(升星)
|
||||
public setEquipStar(hid: number, eplaceId: number, equipId: number, star: number, starStage: number) {
|
||||
this.clearEquipAttrByHidAndEplace(hid, eplaceId, 'equipStar');
|
||||
let dicEquipStar = getEquipStarAttrByStage(equipId, star, starStage);
|
||||
if(dicEquipStar) {
|
||||
let { mainAttr, subAttr } = dicEquipStar;
|
||||
for(let { id, num } of [...mainAttr, ...subAttr]) {
|
||||
let equipAttr = this.getEquipAttrByHidAndId(hid, eplaceId, id);
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, id);
|
||||
heroAttr.equipStar = num - equipAttr.equipStar;
|
||||
equipAttr.equipStar = num;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 装备套装
|
||||
public setEquipSuit(hid: number, ePlace: EPlace[]) {
|
||||
this.clearHeroAttrByHid(hid, 'equipSuit');
|
||||
let dicEquipSuit = getEquipSuitByHero(hid);
|
||||
let suitStars: number[] = [];
|
||||
for(let equipId of dicEquipSuit.equips) {
|
||||
let equip = ePlace.find(cur => cur.equipId == equipId);
|
||||
suitStars.push(equip? equip.star: 0);
|
||||
}
|
||||
let minStar = Math.min(...suitStars);
|
||||
|
||||
let seids: number[] = [];
|
||||
for(let { star, seid } of dicEquipSuit.effect) {
|
||||
if(minStar >= star) seids.push(seid);
|
||||
}
|
||||
|
||||
let { ratioUp } = this.addSeidEffect(seids);
|
||||
for(let [attrId, val] of ratioUp) {
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, attrId);
|
||||
heroAttr.equipSuit = val;
|
||||
}
|
||||
}
|
||||
|
||||
// 天晶
|
||||
public setJewel(hid: number, eplaceId: number, stones: Stone[], jewel: JewelType) {
|
||||
this.clearEquipAttrByHidAndEplace(hid, eplaceId, 'jewel');
|
||||
let seids: number[] = [];
|
||||
if(jewel) {
|
||||
for(let { id, seid, rand } of jewel.randSe) {
|
||||
if(this.isRandSeUnLock(jewel.id, id, stones)) {
|
||||
seids.push(seid, rand);
|
||||
}
|
||||
}
|
||||
}
|
||||
let { ratioUp } = this.addSeidEffect(seids);
|
||||
for(let [attrId, val] of ratioUp) {
|
||||
let equipAttr = this.getEquipAttrByHidAndId(hid, eplaceId, attrId);
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, attrId);
|
||||
heroAttr.jewel += val - equipAttr.jewel;
|
||||
equipAttr.jewel = val;
|
||||
}
|
||||
}
|
||||
|
||||
private isRandSeUnLock(jewelId: number, randSeId: number, stones: Stone[]) {
|
||||
let dicJewel = gameData.jewel.get(jewelId);
|
||||
let dicJewelCondition = getJewelConditionByLvAndSeId(dicJewel.lv, randSeId);
|
||||
let stoneCnt = 0, stoneLv = 0;
|
||||
for(let { stone } of stones) {
|
||||
let dicStone = gameData.stone.get(stone);
|
||||
if(dicStone) {
|
||||
stoneCnt++;
|
||||
stoneLv += dicStone.lv;
|
||||
}
|
||||
}
|
||||
return stoneCnt >= dicJewelCondition.stoneCnt && stoneLv >= dicJewelCondition.stoneLv;
|
||||
}
|
||||
|
||||
// 地玉
|
||||
public setStone(hid: number, eplaceId: number, stones: Stone[]) {
|
||||
this.clearEquipAttrByHidAndEplace(hid, eplaceId, 'stone');
|
||||
for(let { stone } of stones) {
|
||||
let dicStone = gameData.stone.get(stone);
|
||||
if(dicStone) {
|
||||
for(let { id, num } of dicStone.attribute) {
|
||||
let equipAttr = this.getEquipAttrByHidAndId(hid, eplaceId, id);
|
||||
let heroAttr = this.getHeroAttrByHidAndId(hid, id);
|
||||
heroAttr.stone += num - equipAttr.stone;
|
||||
equipAttr.stone = num;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
// 爵位
|
||||
public setTitle(title: number) {
|
||||
this.clearRoleAttr('title');
|
||||
let dicTitle = gameData.title.get(title)||{ mainAttrValue: new Map(), assiAttrValue: new Map() };
|
||||
for(let [attrId, value] of dicTitle.mainAttrValue) {
|
||||
let globalAttr = this.getGlobalAttrById(attrId);
|
||||
@@ -436,6 +634,7 @@ export class CalCe {
|
||||
|
||||
// 神像相关
|
||||
public setTeraph(teraphs: Teraph[]) {
|
||||
this.clearRoleAttr('teraph');
|
||||
let teraphOfAttrId = new Map<number, number>();
|
||||
for(let teraph of teraphs) {
|
||||
for(let [attrId, value] of teraph.attr) { // 主属性
|
||||
@@ -454,6 +653,7 @@ export class CalCe {
|
||||
|
||||
// 名将谱
|
||||
public setScroll(hid: number, scrollStar: number, scrollQuality: number, scrollColorStar: number) {
|
||||
this.clearScrollAttr(hid);
|
||||
let dicHero =gameData.hero.get(hid);
|
||||
let dicHeroScroll = getScollByStar(dicHero.quality, scrollStar, scrollQuality, scrollColorStar);
|
||||
|
||||
@@ -467,7 +667,7 @@ export class CalCe {
|
||||
|
||||
// 百家学宫
|
||||
public setSchool(isPutOn: boolean, hid: number, schoolId: number, star: number, colorStar: number, quality: number) {
|
||||
|
||||
this.clearSchoolAttr(hid);
|
||||
let dicSchool = gameData.school.get(schoolId);
|
||||
let dicSchoolRate = getSchoolRateByStar(star, colorStar, quality);
|
||||
|
||||
@@ -651,15 +851,19 @@ class GlobalSubAttr extends GlobalAllAttr {
|
||||
abstract class HeroAllAttr {
|
||||
hid: number;
|
||||
attrId: number;
|
||||
base: number = 0;
|
||||
job: number = 0;
|
||||
starUp: number = 0;
|
||||
connect: number = 0;
|
||||
favour: number = 0;
|
||||
talent: number = 0;
|
||||
equip: number = 0;
|
||||
equipUp: number = 0;
|
||||
equipStone: number = 0;
|
||||
mainBase: number = 0; // hp1,武将基础属性(dic_zyz_hero的hp)
|
||||
subBase: number = 0; // attr1,职业基础(dic_zyz_job的baseSubAttr字段)
|
||||
job: number = 0; // hp1 & attr2, 职业属性(dic_zyz_job的attr)
|
||||
starUp: number = 0; // hp2, 角色升星成长(dic_zyz_hero_star的hp或dic_zyz_hero_wake的hp)
|
||||
connect: number = 0; // hp3, 角色羁绊固定值(dic_zyz_friend_ship的attribute)
|
||||
favour: number = 0; // hp4, 声望加成(dic_zyz_friend_ship_level的add)
|
||||
talent: number = 0; // hp5 & attr3, 天赋树百分比加成(dic_zyz_hero_talent的levelSeid,然后对应到dic_zyz_se)
|
||||
equipQuality: number = 0; // hp6, 装备品质基础值(dic_zyz_equipQuality的attribute)
|
||||
equipStrength: number = 0; // hp7, 装备强化值(dic_zyz_equipStrenthAttr的attr)
|
||||
equipStar: number = 0; // hp8 & attr9,装备升星(dic_zyz_equipStar的mainAttr和subAttr)
|
||||
equipSuit: number = 0; // hp8,套装(dic_zyz_equipSuit的effect,然后对应dic_zyz_se)
|
||||
jewel: number = 0; // hp9 & attr7,天晶随机属性值(jewel的ranSe,对应dic_zyz_randomEffectPool)
|
||||
stone: number = 0; // hp10, 地玉增加的固定值(dic_zyz_stone的attribute)
|
||||
|
||||
constructor(hid: number, attrId: number, ) {
|
||||
this.hid = hid;
|
||||
@@ -685,7 +889,7 @@ class HeroMainAttr extends HeroAllAttr {
|
||||
if(value != undefined) {
|
||||
switch(i) {
|
||||
case HERO_MAIN_ATTR_INDEX.BASE:
|
||||
this.base = value; break;
|
||||
this.mainBase = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.JOB:
|
||||
this.job = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.STAR_UP:
|
||||
@@ -696,12 +900,18 @@ class HeroMainAttr extends HeroAllAttr {
|
||||
this.favour = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.TALENT:
|
||||
this.talent = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP:
|
||||
this.equip = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_UP:
|
||||
this.equipUp = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_STONE:
|
||||
this.equipStone = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_QUALITY:
|
||||
this.equipQuality = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_STRENGTH:
|
||||
this.equipStrength = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_STAR:
|
||||
this.equipStar = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_SUIT:
|
||||
this.equipSuit = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.JEWEL:
|
||||
this.jewel = value; break;
|
||||
case HERO_MAIN_ATTR_INDEX.STONE:
|
||||
this.stone = value; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -712,7 +922,7 @@ class HeroMainAttr extends HeroAllAttr {
|
||||
for(let i = HERO_MAIN_ATTR_INDEX.START; i < HERO_MAIN_ATTR_INDEX.END; i++) {
|
||||
switch(i) {
|
||||
case HERO_MAIN_ATTR_INDEX.BASE:
|
||||
values.push(this.base);
|
||||
values.push(this.mainBase);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.JOB:
|
||||
values.push(this.job);
|
||||
@@ -729,14 +939,23 @@ class HeroMainAttr extends HeroAllAttr {
|
||||
case HERO_MAIN_ATTR_INDEX.TALENT:
|
||||
values.push(this.talent);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP:
|
||||
values.push(this.equip);
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_QUALITY:
|
||||
values.push(this.equipQuality);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_UP:
|
||||
values.push(this.equipUp);
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_STRENGTH:
|
||||
values.push(this.equipStrength);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_STONE:
|
||||
values.push(this.equipStone);
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_STAR:
|
||||
values.push(this.equipStar);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.EQUIP_SUIT:
|
||||
values.push(this.equipSuit);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.JEWEL:
|
||||
values.push(this.jewel);
|
||||
break;
|
||||
case HERO_MAIN_ATTR_INDEX.STONE:
|
||||
values.push(this.stone);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -751,13 +970,15 @@ class HeroSubAttr extends HeroAllAttr {
|
||||
if(value != undefined) {
|
||||
switch(i) {
|
||||
case HERO_SUB_ATTR_INDEX.BASE:
|
||||
this.base = value; break;
|
||||
this.subBase = value; break;
|
||||
case HERO_SUB_ATTR_INDEX.JOB:
|
||||
this.job = value; break;
|
||||
case HERO_SUB_ATTR_INDEX.TALENT:
|
||||
this.talent = value; break;
|
||||
case HERO_SUB_ATTR_INDEX.EQUIP:
|
||||
this.equip = value; break;
|
||||
case HERO_SUB_ATTR_INDEX.JEWEL:
|
||||
this.jewel = value; break;
|
||||
case HERO_SUB_ATTR_INDEX.EQUIP_STAR:
|
||||
this.equipStar = value; break;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -768,7 +989,7 @@ class HeroSubAttr extends HeroAllAttr {
|
||||
for(let i = HERO_SUB_ATTR_INDEX.START; i < HERO_SUB_ATTR_INDEX.END; i++) {
|
||||
switch(i) {
|
||||
case HERO_SUB_ATTR_INDEX.BASE:
|
||||
values.push(this.base);
|
||||
values.push(this.subBase);
|
||||
break;
|
||||
case HERO_SUB_ATTR_INDEX.JOB:
|
||||
values.push(this.job);
|
||||
@@ -776,8 +997,11 @@ class HeroSubAttr extends HeroAllAttr {
|
||||
case HERO_SUB_ATTR_INDEX.TALENT:
|
||||
values.push(this.talent);
|
||||
break;
|
||||
case HERO_SUB_ATTR_INDEX.EQUIP:
|
||||
values.push(this.equip);
|
||||
case HERO_SUB_ATTR_INDEX.JEWEL:
|
||||
values.push(this.jewel);
|
||||
break;
|
||||
case HERO_SUB_ATTR_INDEX.EQUIP_STAR:
|
||||
values.push(this.equipStar);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -792,14 +1016,12 @@ abstract class EquipAllAttr {
|
||||
equipQuality: number = 0;
|
||||
equipStrengthen: number = 0;
|
||||
equipStar: number = 0;
|
||||
equipSuit: number = 0;
|
||||
jewel: number = 0;
|
||||
stone: number = 0;
|
||||
|
||||
constructor(hid: number, attrId: number, ) {
|
||||
constructor(hid: number, attrId: number) {
|
||||
this.hid = hid;
|
||||
this.attrId = attrId;
|
||||
|
||||
}
|
||||
|
||||
abstract setByRoleCe(data: AttrCell): void;
|
||||
@@ -825,8 +1047,6 @@ class EquipMainAttr extends EquipAllAttr {
|
||||
this.equipStrengthen = value; break;
|
||||
case EQUIP_MAIN_ATTR_INDEX.EQUIP_STAR:
|
||||
this.equipStar = value; break;
|
||||
case EQUIP_MAIN_ATTR_INDEX.EQUIP_SUIT:
|
||||
this.equipSuit = value; break;
|
||||
case EQUIP_MAIN_ATTR_INDEX.JEWEL:
|
||||
this.jewel = value; break;
|
||||
case EQUIP_MAIN_ATTR_INDEX.STONE:
|
||||
@@ -849,9 +1069,6 @@ class EquipMainAttr extends EquipAllAttr {
|
||||
case EQUIP_MAIN_ATTR_INDEX.EQUIP_STAR:
|
||||
values.push(this.equipStar);
|
||||
break;
|
||||
case EQUIP_MAIN_ATTR_INDEX.EQUIP_SUIT:
|
||||
values.push(this.equipSuit);
|
||||
break;
|
||||
case EQUIP_MAIN_ATTR_INDEX.JEWEL:
|
||||
values.push(this.jewel);
|
||||
break;
|
||||
@@ -922,9 +1139,12 @@ enum HERO_MAIN_ATTR_INDEX {
|
||||
CONNECT = 3, // hp3, 角色羁绊固定值(dic_zyz_friend_ship的attribute)
|
||||
FAVOUR = 4, // hp4, 声望加成(dic_zyz_friend_ship_level的add)
|
||||
TALENT = 5, // hp5, 天赋树百分比加成(dic_zyz_hero_talent的levelSeid,然后对应到dic_zyz_se)
|
||||
EQUIP = 6, // (hp6+hp7)*(1+hp8) 装备,equipAttr加成之后加到这里
|
||||
EQUIP_UP = 7, // hp9, 天晶洗练处的主属性百分比加成,equipAttr中计算好加和加入
|
||||
EQUIP_STONE = 8, // hp10, 地玉石增加的固定值,equipAttr中计算好和加入
|
||||
EQUIP_QUALITY = 6, // hp6, 装备品质基础值(dic_zyz_equipQuality的attribute)
|
||||
EQUIP_STRENGTH = 7, // hp7, 装备强化值(dic_zyz_equipStrenthAttr的attr)
|
||||
EQUIP_STAR = 8, // hp8,装备升星(dic_zyz_equipStar的mainAttr)
|
||||
EQUIP_SUIT = 9, // hp8,套装(dic_zyz_equipSuit的effect,然后对应dic_zyz_se)
|
||||
JEWEL = 10, // hp9,天晶随机属性值(jewel的ranSe,对应dic_zyz_randomEffectPool)
|
||||
STONE = 11, // hp10, 地玉增加的固定值(dic_zyz_stone的attribute)
|
||||
END
|
||||
}
|
||||
|
||||
@@ -933,7 +1153,8 @@ enum HERO_SUB_ATTR_INDEX {
|
||||
BASE = 0, // attr1,系统参数表中所有人
|
||||
JOB = 1, // attr2, 职业的attr
|
||||
TALENT = 2, // attr3, 天赋树百分比加成 (dic_zyz_hero_talent的levelSeid,然后对应到dic_zyz_se)
|
||||
EQUIP = 3, // attr7+attr9, 天晶加成和精炼加成,equipAttr加起来
|
||||
JEWEL = 3, // attr7, 天晶随机属性(随机出来的值在dic_zyz_randomEffectPool中读最终值)
|
||||
EQUIP_STAR = 4, // attr9, 精炼次级属性(dic_zyz_equipStar的subAttr)
|
||||
END
|
||||
}
|
||||
|
||||
@@ -942,15 +1163,14 @@ enum EQUIP_MAIN_ATTR_INDEX {
|
||||
EQUIP_QUALITY = 0, // hp6, 装备升品基础值加成(dic_zyz_equipQuality)
|
||||
EQUIP_STRENGTH = 1,// hp7, 装备强化值(需改表,改为键值对)
|
||||
EQUIP_STAR = 2, // hp8, 装备(dic_zyz_equipStar)
|
||||
EQUIP_SUIT = 3, // hp8, 装备套装加成(dic_zyz_equipSuit)
|
||||
JEWEL = 4, // hp9, 天晶洗练出的主属性百分比加成,equipAttr加起来
|
||||
STONE = 5, // hp10,地玉石增加的固定值,equipAttr加起来
|
||||
JEWEL = 3, // hp9, 天晶洗练出的主属性百分比加成,equipAttr加起来
|
||||
STONE = 4, // hp10,地玉石增加的固定值,equipAttr加起来
|
||||
END
|
||||
}
|
||||
|
||||
enum EQUIP_SUB_ATTR_INDEX {
|
||||
START,
|
||||
JEWEL = 0, // attr7, 天晶随机属性(随机出来的值在dic_zyz_randomEffectPool中读最终值)
|
||||
EQUIP_STAR = 1, // attr8, 精炼次级属性(dic_zyz_equipStar的subAttr)
|
||||
EQUIP_STAR = 1, // attr9, 精炼次级属性(dic_zyz_equipStar的subAttr)
|
||||
END
|
||||
}
|
||||
Reference in New Issue
Block a user