After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 6.1 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 4.8 KiB |
After Width: | Height: | Size: 5.2 KiB |
After Width: | Height: | Size: 5.4 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 4.6 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 6.3 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.7 KiB |
After Width: | Height: | Size: 5.9 KiB |
After Width: | Height: | Size: 5.6 KiB |
After Width: | Height: | Size: 6.4 KiB |
After Width: | Height: | Size: 4.7 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.3 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 6.0 KiB |
After Width: | Height: | Size: 4.9 KiB |
After Width: | Height: | Size: 5.5 KiB |
After Width: | Height: | Size: 5.7 KiB |
@ -0,0 +1,22 @@ |
|||||||
|
import { SufPassiveSkill, PrePassiveSkill } from './base'; |
||||||
|
import i18n from '../i18n'; |
||||||
|
import { BattleRole, replace } from '@/tool'; |
||||||
|
const { t } = i18n; |
||||||
|
|
||||||
|
export class Duan extends SufPassiveSkill { |
||||||
|
name: string = 'duan'; |
||||||
|
rate: number = 10; |
||||||
|
order: number = 999; |
||||||
|
dmg: number = 999999999; |
||||||
|
desc(): string { |
||||||
|
return replace(t('skill.duan.1'), [this.rate]); |
||||||
|
} |
||||||
|
trigger(owner: BattleRole, target: BattleRole): boolean { |
||||||
|
return target.attr.curHp / target.attr.hp < this.rate / 100; |
||||||
|
} |
||||||
|
takeEffect(owner: BattleRole, target: BattleRole): void { |
||||||
|
target.addHp(-1 * this.dmg); |
||||||
|
const log = replace(t('skill.duan.2'), [this.rate, this.dmg]); |
||||||
|
owner.battleLog(log); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,22 @@ |
|||||||
|
import { SufPassiveSkill, PrePassiveSkill } from './base'; |
||||||
|
import i18n from '../i18n'; |
||||||
|
import { BattleRole, replace } from '@/tool'; |
||||||
|
const { t } = i18n; |
||||||
|
|
||||||
|
export class FuRenPiHu extends SufPassiveSkill { |
||||||
|
name: string = 'furenpihu'; |
||||||
|
hpPercent: number = 30; |
||||||
|
last: number = 3; |
||||||
|
dmgReduc: number = 100; |
||||||
|
desc(): string { |
||||||
|
return replace(t('skill.furenpihu.1'), [this.hpPercent, this.dmgReduc, this.last]); |
||||||
|
} |
||||||
|
trigger(owner: BattleRole, target: BattleRole): boolean { |
||||||
|
return owner.attr.curHp / owner.attr.hp < this.hpPercent / 100; |
||||||
|
} |
||||||
|
takeEffect(owner: BattleRole, target: BattleRole): void { |
||||||
|
owner.extraAttr.dmgReduc = this.dmgReduc; |
||||||
|
const log = replace(t('skill.furenpihu.2'), [this.hpPercent, this.dmgReduc]); |
||||||
|
owner.battleLog(log); |
||||||
|
} |
||||||
|
} |
@ -0,0 +1,39 @@ |
|||||||
|
import { SufPassiveSkill, PrePassiveSkill } from './base'; |
||||||
|
import i18n from '../i18n'; |
||||||
|
import { BattleRole, replace } from '@/tool'; |
||||||
|
const { t } = i18n; |
||||||
|
|
||||||
|
export class SLWX extends PrePassiveSkill { |
||||||
|
name: string = 'SLWX'; |
||||||
|
percent: number = 20; |
||||||
|
desc(): string { |
||||||
|
return replace(t('skill.SLWX.1'), [this.percent]); |
||||||
|
} |
||||||
|
trigger(owner: BattleRole, target: BattleRole): boolean { |
||||||
|
return true; |
||||||
|
} |
||||||
|
takeEffect(owner: BattleRole, target: BattleRole): void { |
||||||
|
const extra = owner.extraAttr; |
||||||
|
extra.atkPercent += this.percent; |
||||||
|
extra.dmgPercent = (100 + extra.dmgPercent) * (1 + this.percent / 100) - 100; |
||||||
|
extra.crit += 20; |
||||||
|
extra.critDmg += 20; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
export class JinGangZhuo extends SufPassiveSkill { |
||||||
|
name: string = 'jinggangzhuo'; |
||||||
|
rate: number = 5; |
||||||
|
last: number = 2; |
||||||
|
desc(): string { |
||||||
|
return replace(t('skill.jinggangzhuo.1'), [this.rate, this.last]); |
||||||
|
} |
||||||
|
trigger(owner: BattleRole, target: BattleRole): boolean { |
||||||
|
return Math.random() < this.rate / 100; |
||||||
|
} |
||||||
|
takeEffect(owner: BattleRole, target: BattleRole): void { |
||||||
|
target.control = target.control > this.last ? target.control : this.last; |
||||||
|
const log = replace(t('skill.jinggangzhuo.2'), [this.last]); |
||||||
|
owner.battleLog(log); |
||||||
|
} |
||||||
|
} |