远征本主界面及匹配机器人

This commit is contained in:
luying
2020-10-13 19:16:27 +08:00
parent 682e95561d
commit 7652f63414
15 changed files with 568 additions and 17 deletions

View File

@@ -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) {

View File

@@ -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;
}