39 lines
1.3 KiB
TypeScript
39 lines
1.3 KiB
TypeScript
|
|
||
|
import SKDataUtil from "../../gear/SKDataUtil";
|
||
|
import GameUtil from "../../core/GameUtil";
|
||
|
import { ESkillType, EActionType, ESkillQuality, EActionOn, EAttrTypeL1 } from "../../role/EEnum";
|
||
|
import SkillBase from "../core/SkillBase";
|
||
|
|
||
|
// 用自己的气血 换 对方的法力
|
||
|
export default class FenGuangHuaYing extends SkillBase {
|
||
|
constructor() {
|
||
|
super();
|
||
|
this.skill_id = ESkillType.FenGuangHuaYing;
|
||
|
this.kind = ESkillType.FenGuangHuaYing;
|
||
|
this.skill_name = '分光化影';
|
||
|
this.action_type = EActionType.INITIATIVE;
|
||
|
this.quality = ESkillQuality.LOW;
|
||
|
this.act_on = EActionOn.ENEMY;// 技能作用于 0 all 1 敌人 2 自己人
|
||
|
}
|
||
|
|
||
|
useSkill(brole: any): string {
|
||
|
let cur = brole.source.getAttr1(EAttrTypeL1.HP) || 0;
|
||
|
let max = brole.source.getAttr1(EAttrTypeL1.HP_MAX) || 0;
|
||
|
let sub = Math.ceil(max * 0.95);
|
||
|
if (cur < sub) {
|
||
|
return `[${this.skill_name}]气血不足,无法释放!`;
|
||
|
}
|
||
|
brole.subHP(-sub);
|
||
|
return "";
|
||
|
}
|
||
|
|
||
|
getEffect(params: any = null): any {
|
||
|
let level = params.level || 0;
|
||
|
let relive = params.relive || 0;
|
||
|
let qinmi = params.qinmi || 0;
|
||
|
let ret = SKDataUtil.clone(GameUtil.skillEffect);
|
||
|
ret.smppre = Math.round(10.1 + 2 * (relive * 0.4 + 1) * (level ** 0.5 / 10 + qinmi ** 0.1666667 * 10 / (100 + relive * 20)));
|
||
|
return ret;
|
||
|
}
|
||
|
}
|