装备:一键装备
This commit is contained in:
@@ -48,7 +48,7 @@ export enum ABI_TYPE{
|
||||
ABI_MDAMAGE_INC = 20,
|
||||
/**物伤减免 */
|
||||
ABI_PDAMAGE_DEC = 21,
|
||||
/**物伤减免 */
|
||||
/**法伤减免 */
|
||||
ABI_MDAMAGE_DEC = 22,
|
||||
/**反击伤害 */
|
||||
ABI_STRIKE_BACK = 23,
|
||||
@@ -117,8 +117,13 @@ export const HERO_ATTR = {
|
||||
14: "damageDecrease", // 伤害减免等级
|
||||
15: "defIngnore", // 忽视防御等级
|
||||
16: "bloodSuck", // 吸血等级
|
||||
17: "damageCri", // 暴击伤害
|
||||
18: "ap" // 暴击伤害
|
||||
17: "ap", // 怒气
|
||||
18: "damageCri", // 暴击伤害
|
||||
19: "pdamageInc", // 物伤加深
|
||||
20: "mdamageInc", // 法伤加深
|
||||
21: "pdamageDec", // 物伤减免
|
||||
22: "mdamageDec", // 法伤减免
|
||||
23: "strikeBack", // 反击伤害
|
||||
};
|
||||
|
||||
export const ABI_TYPE_TO_STAGE = new Map<number, number>([
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { ABI_TYPE } from "./abilityConst";
|
||||
|
||||
export const IT_TYPE = {
|
||||
BLUEPRT: 28,
|
||||
EQUIP_PIECE: 40,
|
||||
@@ -67,6 +69,15 @@ export enum EQUIP_TYPE {
|
||||
END = 6
|
||||
}
|
||||
|
||||
export const equipTypeToSortAttr = new Map([
|
||||
[ EQUIP_TYPE.WEAPON, ABI_TYPE.ABI_ATK ],
|
||||
[ EQUIP_TYPE.CLOTHES, ABI_TYPE.ABI_HP ],
|
||||
[ EQUIP_TYPE.SHOES, ABI_TYPE.ABI_ATK ],
|
||||
[ EQUIP_TYPE.CAP, ABI_TYPE.ABI_HP ],
|
||||
[ EQUIP_TYPE.ACCESSORY, ABI_TYPE.ABI_DEF ],
|
||||
[ EQUIP_TYPE.BOOK, ABI_TYPE.ABI_MDEF ]
|
||||
]);
|
||||
|
||||
export enum JEWEL_TYPE {
|
||||
WEAPON = 42, // 神兵(武器)
|
||||
CLOTHES = 43, // 宝甲(上装)
|
||||
|
||||
@@ -99,6 +99,12 @@ export default class Equip extends BaseModel {
|
||||
return equip;
|
||||
}
|
||||
|
||||
|
||||
public static async findNotWearEquips(roleId: string) {
|
||||
const equips: EquipType[] = await EquipModel.find({ roleId, hid: 0 }).lean();
|
||||
return equips;
|
||||
}
|
||||
|
||||
public static async deleteAccount(roleId: string) {
|
||||
let result = await EquipModel.deleteMany({ roleId });
|
||||
return result;
|
||||
|
||||
@@ -128,6 +128,17 @@ export class Attribute {
|
||||
}
|
||||
}
|
||||
|
||||
setByMap( attributes: Map<number, number>, ratio: number = 1 ) {
|
||||
for(let [id, val] of attributes) {
|
||||
let attrName = getAtrrNameById(id);
|
||||
if(ABI_TYPE_MAIN.includes(id)) {
|
||||
if(attrName in this) this[attrName] = Math.floor(val * ratio * HERO_CE_RATIO * HERO_CE_RATIO);
|
||||
} else {
|
||||
if(attrName in this) this[attrName] = Math.floor(val * HERO_CE_RATIO * HERO_CE_RATIO);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private calAttrValue(roleFix: number = 0, roleRatio: number = 0, heroBase: number = 0, heroFix: number = 0, heroRatio: number = 0, heroEquip: number = 0) {
|
||||
return (heroFix + heroEquip + roleFix) * HERO_CE_RATIO + heroBase * ( HERO_CE_RATIO + heroRatio + roleRatio );
|
||||
}
|
||||
@@ -209,6 +220,12 @@ export class Attribute {
|
||||
return ce > 0? ce: 1;
|
||||
}
|
||||
|
||||
// 计算未装备的装备的简易战力公式
|
||||
public calEquipCe() {
|
||||
let { hp, atk, def, mdef } = this.getRealMainAttr();
|
||||
return hp * 1 + atk * 3 + def * 2 + mdef * 2;
|
||||
}
|
||||
|
||||
public calCelAndReduce() {
|
||||
return Math.floor(this.calCe() / HERO_CE_RATIO / HERO_CE_RATIO);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user