战力
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
// 奇遇表
|
||||
import { parseReward, decodeArrayStr, readJsonFile, parseNumberList } from '../util'
|
||||
import { parseGoodStr, decodeArrayStr, readJsonFile, parseNumberList } from '../util'
|
||||
import { FILENAME } from '../../consts'
|
||||
import { RewardInter } from '../../pubUtils/interface';
|
||||
|
||||
@@ -37,8 +37,8 @@ let arr = JSON.parse(str);
|
||||
|
||||
export const dicEvent = new Map<number, DicEvent>();
|
||||
arr.forEach(o => {
|
||||
o.winReward = parseReward(o.winReward);
|
||||
o.loseReward = parseReward(o.loseReward);
|
||||
o.winReward = parseGoodStr(o.winReward);
|
||||
o.loseReward = parseGoodStr(o.loseReward);
|
||||
o.suitLevel = parseSuitLevel(o.suitLevel);
|
||||
o.movePointArray = parseNumberList(o.movePointArray);
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 远征点数奖励表
|
||||
import { parseReward, readJsonFile } from '../util';
|
||||
import { parseGoodStr, readJsonFile } from '../util';
|
||||
import { FILENAME } from '../../consts';
|
||||
import { RewardInter } from '../interface';
|
||||
|
||||
@@ -16,6 +16,6 @@ let arr = JSON.parse(str);
|
||||
|
||||
export const dicExpeditionPoint = new Map<number, DicExpeditionPoint>();
|
||||
arr.forEach(o => {
|
||||
o.reward = parseReward(o.reward);
|
||||
o.reward = parseGoodStr(o.reward);
|
||||
dicExpeditionPoint.set(o.point, o);
|
||||
});
|
||||
@@ -1,5 +1,5 @@
|
||||
// 物品表
|
||||
import {decodeArrayListStr, readJsonFile, parseReward, parseNumberList, decodeArrayStr} from '../util'
|
||||
import {decodeArrayListStr, readJsonFile, parseGoodStr, parseNumberList, decodeArrayStr} from '../util'
|
||||
import { FILENAME, IT_TYPE, ABI_TYPE , GOOD_TYPE} from '../../consts'
|
||||
import { RewardInter } from '../interface';
|
||||
const _ = require('lodash');
|
||||
@@ -90,8 +90,8 @@ export const blueprt = new Map<number, Array<number>>();
|
||||
arr.forEach(o => {
|
||||
o.goodsAbility = parseAbility(o);
|
||||
o.goodsAbilityUp = parseAbilityUp(o);
|
||||
o.composeMaterial = parseReward(o.composeMaterial);
|
||||
o.decomposeItem = parseReward(o.decomposeItem);
|
||||
o.composeMaterial = parseGoodStr(o.composeMaterial);
|
||||
o.decomposeItem = parseGoodStr(o.decomposeItem);
|
||||
o.specialAttr = parseSpecialAttr(o.specialAttr);
|
||||
o.specialMaterial = parseSpecialMaterial(o.specialMaterial);
|
||||
o.randomEffect = parseNumberList(o.randomEffect);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 武将技能表
|
||||
import {parseReward, readJsonFile} from '../util'
|
||||
import {parseGoodStr, readJsonFile} from '../util'
|
||||
import { FILENAME } from '../../consts'
|
||||
import { RewardInter } from '../interface';
|
||||
|
||||
@@ -21,6 +21,6 @@ let arr = JSON.parse(str);
|
||||
|
||||
export const dicHeroQualityUp = new Map<number, DicHeroQualityUp>();
|
||||
arr.forEach(o => {
|
||||
o.consume = parseReward(o.consume);
|
||||
o.consume = parseGoodStr(o.consume);
|
||||
dicHeroQualityUp.set(o.quality, o);
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 武将觉醒表
|
||||
import { readJsonFile, parseReward } from '../util'
|
||||
import { readJsonFile, parseGoodStr } from '../util'
|
||||
import { ABI_STAGE, FILENAME } from '../../consts';
|
||||
import { RewardInter } from '../interface';
|
||||
const _ = require('lodash');
|
||||
@@ -29,7 +29,7 @@ const DicHeroWakeKeys: KeysEnum<DicHeroWake> = {id: true, quality: true, star: t
|
||||
|
||||
export const dicHeroWake = new Map<string, DicHeroWake>();
|
||||
arr.forEach(o => {
|
||||
o.consume = parseReward(o.consume);
|
||||
o.consume = parseGoodStr(o.consume);
|
||||
o.ceAttr = parseCeAttr(o);
|
||||
dicHeroWake.set(`${o.quality}_${o.star}`, _.pick(o, Object.keys(DicHeroWakeKeys)));
|
||||
});
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 兵种表
|
||||
import {readJsonFile, parseNumberList, parseReward} from '../util'
|
||||
import {readJsonFile, parseNumberList, parseGoodStr} from '../util'
|
||||
import { FILENAME } from '../../consts'
|
||||
import { RewardInter } from '../interface';
|
||||
const _ = require('lodash');
|
||||
@@ -50,8 +50,8 @@ export const jobClassAndgrades = new Map<string, {jobid:number, unlockLevel:numb
|
||||
|
||||
arr.forEach(o => {
|
||||
o.seid = parseNumberList(o.seid);
|
||||
o.trainingConsume = parseReward(o.trainingConsume);
|
||||
o.upGradeConsume = parseReward(o.upGradeConsume);
|
||||
o.trainingConsume = parseGoodStr(o.trainingConsume);
|
||||
o.upGradeConsume = parseGoodStr(o.upGradeConsume);
|
||||
dicJob.set(o.jobid, _.pick(o, Object.keys(DicJobKeys)));
|
||||
let jobClass = jobClassMaxGrades.get(o.job_class);
|
||||
if (!!jobClass && jobClass.grade < o.grade) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 武将特技表
|
||||
import { readJsonFile, parseReward } from '../util'
|
||||
import { readJsonFile, parseGoodStr } from '../util'
|
||||
import { FILENAME } from '../../consts'
|
||||
import { RewardInter } from '../interface';
|
||||
|
||||
@@ -25,7 +25,7 @@ let arr = JSON.parse(str);
|
||||
export const dicRefine = new Map<number, DicRefine>();
|
||||
|
||||
arr.forEach(o => {
|
||||
o.material = parseReward(o.material)
|
||||
o.material = parseGoodStr(o.material)
|
||||
dicRefine.set(o.level, o);
|
||||
});
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 镇念塔表
|
||||
import {parseReward, decodeArrayListStr, readJsonFile, parseNumberList} from '../util'
|
||||
import {parseGoodStr, decodeArrayListStr, readJsonFile, parseNumberList} from '../util'
|
||||
import { FILENAME } from '../../consts';
|
||||
import { RewardInter } from '../../pubUtils/interface';
|
||||
|
||||
@@ -21,12 +21,12 @@ export const dicTower = new Map<number, DicTower>();
|
||||
|
||||
arr.forEach(o => {
|
||||
o.warArray = parseNumberList(o.warArray);
|
||||
o.reward = parseReward(o.reward);
|
||||
o.rewardOfcollect = parseRewardOfCollect(o.rewardOfcollect);
|
||||
o.reward = parseGoodStr(o.reward);
|
||||
o.rewardOfcollect = parseGoodStrOfCollect(o.rewardOfcollect);
|
||||
dicTower.set(o.towerFloor, o);
|
||||
});
|
||||
|
||||
function parseRewardOfCollect(str: string) {
|
||||
function parseGoodStrOfCollect(str: string) {
|
||||
let result = new Array<{id: number, count: number}>();
|
||||
if(!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 镇念塔派遣任务表
|
||||
import {parseReward, decodeArrayListStr, decodeArrayStr, readJsonFile} from '../util'
|
||||
import {parseGoodStr, decodeArrayListStr, decodeArrayStr, readJsonFile} from '../util'
|
||||
import { FILENAME } from '../../consts';
|
||||
import { RewardInter } from '../interface';
|
||||
|
||||
@@ -38,8 +38,8 @@ let arr = JSON.parse(str);
|
||||
export const dicTowerTask = new Map<number, DicTowerTask>();
|
||||
|
||||
arr.forEach(o => {
|
||||
o.reward = parseReward(o.reward);
|
||||
o.additionalReward = parseReward(o.additionalReward);
|
||||
o.reward = parseGoodStr(o.reward);
|
||||
o.additionalReward = parseGoodStr(o.additionalReward);
|
||||
o.termsForAdd = parseTermsForAdd(o.termsForAdd);
|
||||
o.suitFloor = parseSuitFloor(o.suitFloor as string);
|
||||
dicTowerTask.set(o.taskId, o);
|
||||
|
||||
@@ -14,6 +14,8 @@ import { Attributes } from './interface';
|
||||
import { DicSe } from './dictionary/DicSe';
|
||||
import { EquipType } from '../db/Equip';
|
||||
import { DicRandomEffectPool } from './dictionary/DicRandomEffectPool';
|
||||
import { getGoodById } from './gamedata';
|
||||
import { JEWEL_ATTR } from '../consts/constModules/abilityConst';
|
||||
|
||||
const HERO_CE_RATIO = 100;
|
||||
const _ = require('underscore');
|
||||
@@ -44,6 +46,10 @@ export function calPlayerCe(globalCeAttr: CeAttr, hero: HeroType, type: number,
|
||||
reIncAttr = calHeroEquipIncAttr(hero);
|
||||
} else if (type == HERO_SYSTEM_TYPE.RESTRENGTHEN) {
|
||||
reIncAttr = calRestrengthenIncAttr(hero, args.shift(), args, addSeidList, removeSeidList);
|
||||
} else if (type == HERO_SYSTEM_TYPE.JEWEL_ON) {//宝石穿戴
|
||||
reIncAttr = calHeroCeWhenJewelOn(hero, args);
|
||||
} else if (type == HERO_SYSTEM_TYPE.JEWEL_OFF) {//宝石卸下
|
||||
reIncAttr = calHeroCeWhenJewelOff(hero, args);
|
||||
}
|
||||
|
||||
addSeidEffect(reIncAttr, hero.ceAttr, addSeidList, removeSeidList); // 处理加值
|
||||
@@ -431,6 +437,38 @@ function addSeid(effectList: Array<any>, seidId:number, rand: number, seidValue
|
||||
}
|
||||
effectList.push(seid);
|
||||
}
|
||||
|
||||
function calHeroCeWhenJewelOn(hero: HeroType, args: Array<number>) {
|
||||
let res: CeAttr = {};
|
||||
let id = args[0];
|
||||
let oldId = args[1];
|
||||
let goodInfo = getGoodById(id);
|
||||
let oldGoodInfo;
|
||||
if (!!oldId)
|
||||
oldGoodInfo = getGoodById(oldId);
|
||||
for (let attrName in JEWEL_ATTR) {
|
||||
if (!!goodInfo[attrName]) {
|
||||
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
|
||||
res[attrName].fixUp += goodInfo[attrName];
|
||||
if (oldGoodInfo)
|
||||
res[attrName].fixUp -= oldGoodInfo[attrName];
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
function calHeroCeWhenJewelOff(hero: HeroType, args: Array<number>) {
|
||||
let res: CeAttr = {};
|
||||
for (let id of args) {
|
||||
let goodInfo = getGoodById(id);
|
||||
for (let attrName in JEWEL_ATTR) {
|
||||
if (!!goodInfo[attrName]) {
|
||||
res[attrName] = {fixUp: hero.ceAttr[attrName].fixUp, base: hero.ceAttr[attrName].base, ratioUp: hero.ceAttr[attrName].ratioUp};
|
||||
res[attrName].fixUp -= goodInfo[attrName];
|
||||
}
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
//全局属性加成
|
||||
export async function reCalAllHeroCe(roleId: string, type: number, args:Array<number>) {
|
||||
let reIncAttr: CeAttr = {};
|
||||
@@ -470,8 +508,9 @@ function calHeroAddSkin(args:Array<number>, ceAttr: CeAttr){
|
||||
for (let attr of addSkin.globalAttr) {
|
||||
attrName = getAtrrNameById(attr.id);
|
||||
res[attrName] = {fixUp: ceAttr[attrName].fixUp, ratioUp: ceAttr[attrName].ratioUp};
|
||||
res[attrName].fixUp += attr.number * HERO_CE_RATIO;
|
||||
res[attrName].fixUp += attr.number * HERO_CE_RATIO;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
|
||||
@@ -466,7 +466,7 @@ export function readWarJsonFileList() {
|
||||
|
||||
// 字典表常用解析方法
|
||||
// 解析物品 {"id": number, "count": number} 格式
|
||||
export function parseReward(str: string) {
|
||||
export function parseGoodStr(str: string) {
|
||||
let result = new Array<{id: number, count: number}>();
|
||||
if(!str) return result;
|
||||
let decodeArr = decodeArrayListStr(str);
|
||||
|
||||
Reference in New Issue
Block a user