xy-server/game/skill/low/AnXingJiDou.ts

64 lines
2.2 KiB
TypeScript
Raw Normal View History

2025-04-23 09:34:08 +08:00
import GameUtil from "../../core/GameUtil";
import SkillBase from "../core/SkillBase";
import SKDataUtil from "../../gear/SKDataUtil";
import Buff from "../../skill/core/Buff";
import SkillUtil from "../../skill/core/SkillUtil";
import SKLogger from "../../gear/SKLogger";
import {ESkillType, EMagicType, EActionType, ESkillQuality} from "../../../game/role/EEnum";
// 安行疾斗
export default class AnXingJiDou extends SkillBase {
constructor() {
super();
this.skill_id = ESkillType.AnXingJiDou;
this.skill_name = '安行疾斗';
this.skill_type = EMagicType.PHYSICS;
this.action_type = EActionType.INITIATIVE;
this.kind = ESkillType.AnXingJiDou;
this.kind = ESkillType.KuaiXueShiQing;
this.quality = ESkillQuality.HIGH;
}
// getEffect(params: any = null): any {
// let ret = SKDataUtil.clone(GameUtil.skillEffect);
// ret.round = 999;
// return ret;
// }
//
// active(brole: any = null) {
// SKLogger.debug(`安行疾斗触发`);
// //检测添加BUFF
// if (!brole.hasBuff(ESkillType.AnXingJiDou)) {
// let skill = SkillUtil.getSkill(ESkillType.AnXingJiDou);
// let buff = new Buff(ESkillType.AnXingJiDou, skill.getEffect());
// brole.addBuff(buff);
// }
// if (brole.hasBuff(EMagicType.CHAOS)) {
// brole.cleanBuff(EMagicType.CHAOS);
// SKLogger.debug(`安行疾斗清除混乱`);
// }
// if (brole.hasBuff(EMagicType.SLEEP)) {
// brole.cleanBuff(EMagicType.SLEEP);
// SKLogger.debug(`安行疾斗清除昏睡`);
// }
// if (brole.hasBuff(EMagicType.SEAL)) {
// brole.cleanBuff(EMagicType.SEAL);
// SKLogger.debug(`安行疾斗清除封印`);
// }
// }
getEffect(params: any = null): any {
let level = params.level || 0;
let relive = params.relive || 0;
let qinmi = params.qinmi || 0;
let atk = params.atk||0;
let maxmp = params.maxmp || 0;
let ret = SKDataUtil.clone(GameUtil.skillEffect);
ret.cnt = 3;
ret.hurt = Math.floor(80 * level + atk * (relive * 0.8 + 1)*0.55 + maxmp / 100 * 6 * (relive * 0.6 + 1) * (Math.pow(level,0.4) / 10 + Math.pow(qinmi,0.166666666666666666) * 10 / (100 + relive * 20)));
//Math.floor(75 * level + atk * (relive * 0.8 + 1) + (po * atk / 100) + Math.pow(qinmi,0.166666666666666666) * 10 / (100 + relive * 20));
return ret;
}
}