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

47 lines
1.7 KiB
TypeScript
Raw Permalink Normal View History

2025-04-23 09:34:08 +08:00
import SkillBase from "../core/SkillBase";
import GameUtil from "../../core/GameUtil";
import SKDataUtil from "../../gear/SKDataUtil";
import {EAttrTypeL1, EMagicType, ESkillQuality, ESkillType} from "../../role/EEnum";
// 震天动地
export default class ZhenTianDongDi extends SkillBase {
constructor() {
super();
this.skill_id = ESkillType.ZhenTianDongDi;
this.skill_name = "震天动地";
this.effectMap = {
[EAttrTypeL1.PHY_BREAK]: { add: 0.8, index: 0 },
[EAttrTypeL1.PHY_BREAK_PROB]: { add: 0.8, index: 0 },
[EAttrTypeL1.ATK]: { add: 1350, index: 0 },
};
this.skill_type = EMagicType.PHYSICS;
this.quality = ESkillQuality.HIGH;
}
getEffect(params: any = null): any {
let level = params.level || 0;
let relive = params.relive || 0;
let qinmi = params.qinmi || 0;
let profic = params.profic || 0;
let sweep = params.sweep || 0;
let atk = params.atk || 0;
let po = params.po || 0;
let polv = params.polv || 0;
let nilin = params.nilin || 0;
let ret = SKDataUtil.clone(GameUtil.skillEffect);
let addhurt = Math.floor(55 * level * (profic ** 0.3 * 2.8853998 / 200 + 1) + Math.floor(50 * relive * (profic * 0.1 * 2 / 280 + 1)));
let pohurt = 0;
let randkb = GameUtil.random(0, 10000);
ret.cnt = Math.floor(Math.random() * (3 - 6) + 6);
if (randkb < polv * 100) {
pohurt = Math.floor(addhurt * (po/20));
}
if(nilin > 0){
ret.cnt++;
ret.hurt = addhurt+(addhurt*sweep/100)+atk/2+pohurt + 12345;
}else{
ret.hurt = addhurt+(addhurt*sweep/100)+atk/2+pohurt;
}
return ret;
}
}