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

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

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