import { SufPassiveSkill, PrePassiveSkill, CounterSkill, StartPassiveSkill } from './base'; import i18n from '../i18n'; import { BattleRole, replace } from '@/tool'; import { DmgReducBuff, KBLYDebuff, LingGanBuff } from './buff'; const { t } = i18n; //恐怖领域 export class KongBuLingYu extends StartPassiveSkill { name: string = 'kongbulingyu'; defReduc: number = 500; desc(): string { return replace(t('skill.kongbulingyu.1'), [this.defReduc]); } takeEffect(owner: BattleRole, target: BattleRole): void { const buff = new KBLYDebuff(this.name, this.defReduc, 9999); target.putBuff(buff); } } //白骨夫人的庇护 export class FuRenBiHu extends PrePassiveSkill { name: string = 'furenbihu'; cd: number = 999; hpPercent: number = 30; last: number = 3; dmgReduc: number = 100; desc(): string { return replace(t('skill.furenbihu.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; owner.battleLog(replace(t('skill.furenbihu.2'), [this.hpPercent, this.dmgReduc])); } } //灵感 export class LingGan extends StartPassiveSkill { name: string = 'linggan'; percent: number = 1; desc(): string { return replace(t('skill.linggan.1'), [this.percent]); } takeEffect(owner: BattleRole, target: BattleRole): void { const linggan = new LingGanBuff(this.name, this.percent, 9999); owner.putBuff(linggan); } } //顽抗 export class WanKang extends CounterSkill { name: string = 'wankang'; percent: number = 30; hpPercnet: number = 100; desc(): string { return replace(t('skill.wankang.1'), [this.percent, this.hpPercnet]); } trigger(owner: BattleRole, target: BattleRole): boolean { return target.dmg > 0; } takeEffect(owner: BattleRole, target: BattleRole): void { let reflected = Math.ceil((target.baseDmg * this.percent) / 100); const max = Math.ceil((owner.attr.hp * this.hpPercnet) / 100); reflected > max && (reflected = max); target.addHp(-1 * reflected); owner.battleLog(replace(t('skill.wankang.2'), [t(owner.type), reflected])); } } //五味 export class WuWei extends StartPassiveSkill { name: string = 'wuwei'; dmgReduc: number = 20; desc(): string { return replace(t('skill.wuwei.1'), [this.dmgReduc]); } takeEffect(owner: BattleRole, target: BattleRole): void { const wuwei = new DmgReducBuff(this.name, this.dmgReduc, 9999); owner.putBuff(wuwei); } }