|
|
|
@ -1,7 +1,7 @@
@@ -1,7 +1,7 @@
|
|
|
|
|
import { ActionSkill, Attack, Control, PassiveSkill, PrePassiveSkill, StartPassiveSkill, SufPassiveSkill } from './base'; |
|
|
|
|
import { createt } from '../i18n'; |
|
|
|
|
import { replace, BattleRole } from '@/tool'; |
|
|
|
|
import { BaseAtkPercentBuff, ControlBuff, CritDmgBuff, DmgPercentBuff, DmgReducBuff, KuiLan, LiuXue } from './buff'; |
|
|
|
|
import { AttackedBuff, BaseAtkPercentBuff, ControlBuff, CritDmgBuff, DmgPercentBuff, DmgReducBuff, KuiLan, LiuXue } from './buff'; |
|
|
|
|
|
|
|
|
|
const t = createt(''); |
|
|
|
|
const st = createt('skill.'); |
|
|
|
@ -153,10 +153,10 @@ export class BaoFengXue extends Control {
@@ -153,10 +153,10 @@ export class BaoFengXue extends Control {
|
|
|
|
|
// 波动杀意
|
|
|
|
|
export class BoDongShaYi extends PrePassiveSkill { |
|
|
|
|
name: string = 'bodongshayi'; |
|
|
|
|
perent: number = 10; |
|
|
|
|
precent: number = 10; |
|
|
|
|
maxLayer: number = 15; |
|
|
|
|
desc(): string { |
|
|
|
|
return replace(st('bodongshayi.1'), [this.perent, this.maxLayer]); |
|
|
|
|
return replace(st('bodongshayi.1'), [this.precent, this.maxLayer]); |
|
|
|
|
} |
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean { |
|
|
|
|
return true; |
|
|
|
@ -164,8 +164,54 @@ export class BoDongShaYi extends PrePassiveSkill {
@@ -164,8 +164,54 @@ export class BoDongShaYi extends PrePassiveSkill {
|
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void { |
|
|
|
|
const shayi: any = owner.attackBuff.get('shayi'); |
|
|
|
|
if (shayi) { |
|
|
|
|
shayi.percent = this.perent; |
|
|
|
|
shayi.percent = this.precent; |
|
|
|
|
shayi.maxLayer = this.maxLayer; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// 利刃咒
|
|
|
|
|
export class LiRenZhou extends SufPassiveSkill { |
|
|
|
|
name: string = 'lirenzhou'; |
|
|
|
|
precent: number = 3; |
|
|
|
|
layer: number[] = [1, 3]; |
|
|
|
|
maxLayer: number = 14; |
|
|
|
|
desc(): string { |
|
|
|
|
return replace(st('lirenzhou.1'), [this.layer[0], this.layer[1], this.maxLayer, this.precent]); |
|
|
|
|
} |
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean { |
|
|
|
|
return true; |
|
|
|
|
} |
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void { |
|
|
|
|
const lirenzhou = new DmgPercentBuff(this.name, this.precent, 9999, this.maxLayer); |
|
|
|
|
const layer = this.layer[0] + Math.floor(Math.random() * (this.layer[1] - this.layer[0] + 1)); |
|
|
|
|
lirenzhou.layer = layer; |
|
|
|
|
owner.putBuff(lirenzhou); |
|
|
|
|
owner.atteckLog(replace(st('lirenzhou.2'), [layer, lirenzhou.layer])); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
// 刀刃风暴
|
|
|
|
|
export class DaoRenFengBao extends Attack { |
|
|
|
|
order: number = 101; |
|
|
|
|
name: string = 'daorenfengbao'; |
|
|
|
|
dmgPrecent: number = 80; |
|
|
|
|
cd: number = 1; |
|
|
|
|
desc(): string { |
|
|
|
|
return replace(st('daorenfengbao.1'), [this.precent]); |
|
|
|
|
} |
|
|
|
|
beforeAtk(owner: BattleRole, target: BattleRole): void { |
|
|
|
|
if (owner.action) { |
|
|
|
|
return; |
|
|
|
|
} else { |
|
|
|
|
const lirenzhou = owner.attackBuff.get('lirenzhou'); |
|
|
|
|
if (lirenzhou && lirenzhou.layer == lirenzhou.maxLayer) { |
|
|
|
|
owner.action = this; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
use(owner: BattleRole, target: BattleRole): void { |
|
|
|
|
const lirenzhou: any = owner.attackBuff.get('lirenzhou'); |
|
|
|
|
this.precent = lirenzhou.layer * this.dmgPrecent; |
|
|
|
|
super.use(owner, target); |
|
|
|
|
lirenzhou.layer = 0; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|