远征本主界面及匹配机器人
This commit is contained in:
@@ -30,7 +30,6 @@ function parseTowerData() {
|
||||
}
|
||||
|
||||
function initData (folder) {
|
||||
console.log('加载文件夹:', folder);
|
||||
if(!gamedata.hasOwnProperty(folder)) {
|
||||
gamedata[folder] = {};
|
||||
}
|
||||
@@ -67,8 +66,15 @@ export function getGamedata(key) {
|
||||
}
|
||||
|
||||
// 获取出兵表
|
||||
export function getWarJsons(key: string) {
|
||||
return gamedata['warJsons'][key];
|
||||
export function getWarJsons(key: any) {
|
||||
key = key + '';
|
||||
let arr = key.split('&');
|
||||
let index = Math.floor(Math.random() * arr.length);
|
||||
key = arr[index];
|
||||
return {
|
||||
json: gamedata['warJsons'][key],
|
||||
fileName: key
|
||||
}
|
||||
}
|
||||
|
||||
export function getWarById(warid: number) {
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
|
||||
import { getWarById, getGoodById } from './gamedata';
|
||||
import { getWarById, getGoodById, getGamedata } from './gamedata';
|
||||
import { CounterModel } from '../db/Counter';
|
||||
import { EquipModel } from '../db/Equip';
|
||||
import { HeroModel } from '../db/Hero';
|
||||
import { GOOD_TYPE } from '../consts/consts';
|
||||
|
||||
export function genCode(len) {
|
||||
@@ -54,11 +55,17 @@ import { GOOD_TYPE } from '../consts/consts';
|
||||
result = { min: parseInt(min), max: parseInt(max) };
|
||||
|
||||
}
|
||||
case 'attribute': {
|
||||
let [id, value] = arr;
|
||||
if(isNaN(id) || isNaN(value)) throw new Error('格式错误');
|
||||
result = { id: parseInt(id), value: parseInt(value) };
|
||||
}
|
||||
}
|
||||
return result;
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
// 获取物品
|
||||
export class Reward {
|
||||
roleId: string;
|
||||
@@ -108,6 +115,7 @@ import { GOOD_TYPE } from '../consts/consts';
|
||||
return weaponsData;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 将 | 分隔的字符串解析为数组,如:a|b|c 解析为[a, b, c]
|
||||
* @param str 要解析的字符串
|
||||
@@ -130,3 +138,35 @@ export function decodeIdCntArrayStr(str: string, multi: number) {
|
||||
});
|
||||
return strMap;
|
||||
}
|
||||
|
||||
// 计算当前武将战力
|
||||
export async function calculateSumCE(roleId: string, type: number, param: { num?: number, heroes?: Array<number> }) {
|
||||
let sum;
|
||||
if(type == 1) { // 最高num人战力和
|
||||
sum = await HeroModel.sumTopHeroCe(roleId, param.num);
|
||||
} else if(type == 2) { // 所有人战力和
|
||||
sum = await HeroModel.sumHeroCe(roleId);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
// 计算当前武将战力
|
||||
export function calculateCE(heroInfo: {hid: number, lv: number }) {
|
||||
let { hid, lv } = heroInfo;
|
||||
// 假设所有属性和等级的关系是简单的线性关系
|
||||
let dicHero = getGamedata('dic_zyz_hero');
|
||||
let curDicHero = dicHero.find(cur => cur.heroId == hid);
|
||||
|
||||
let { atk, matk, def, mdef, agi, luk, atk_up, matk_up, def_up, mdef_up, agi_up, luk_up } = curDicHero;
|
||||
atk += lv * atk_up;
|
||||
matk += lv * matk_up;
|
||||
def += lv * def_up;
|
||||
mdef += lv * mdef_up;
|
||||
agi += lv * agi_up;
|
||||
luk += lv * luk_up;
|
||||
|
||||
// 假设战力为所有属性的简单加法
|
||||
|
||||
let ce = atk + matk + def + mdef + agi + luk;
|
||||
return ce;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user