|
|
|
import { PrePassiveSkill, BuffSkill, CounterSkill, StartPassiveSkill } from './base';
|
|
|
|
import i18n from '../i18n';
|
|
|
|
import { BattleRole, callDmgReduc, replace } from '@/tool';
|
|
|
|
import { BlocPercentBuff } from './buff';
|
|
|
|
const { t } = i18n;
|
|
|
|
|
|
|
|
//百花羞的矜持
|
|
|
|
export class BHXDJC extends PrePassiveSkill {
|
|
|
|
name: string = 'bhxdjc';
|
|
|
|
hpPercent: number = 60;
|
|
|
|
shieldPercentOfHp: number = 80;
|
|
|
|
cd: number = 999;
|
|
|
|
desc(): string {
|
|
|
|
return replace(t('skill.bhxdjc.1'), [this.hpPercent, this.shieldPercentOfHp]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.attr.curHp / owner.attr.hp < this.hpPercent / 100;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const shield = Math.ceil((owner.attr.hp * this.shieldPercentOfHp) / 100);
|
|
|
|
owner.shield += shield;
|
|
|
|
owner.battleLog(replace(t('skill.bhxdjc.2'), [shield]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//铁壁
|
|
|
|
export class TieBi extends BuffSkill {
|
|
|
|
name: string = 'tiebi';
|
|
|
|
last: number = 4;
|
|
|
|
cd: number = 6;
|
|
|
|
dmgReduc: number = 40;
|
|
|
|
desc(): string {
|
|
|
|
return replace(t('skill.tiebi.1'), [this.dmgReduc, this.last, this.cd]);
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
owner.extraAttr.dmgReduc = callDmgReduc(owner.extraAttr.dmgReduc, this.dmgReduc);
|
|
|
|
}
|
|
|
|
log(owner: BattleRole, target: BattleRole): void {
|
|
|
|
owner.battleLog(replace(t('skill.tiebi.2'), [t(owner.type), this.dmgReduc, this.last]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//督军的潜能
|
|
|
|
export class DuJunQianNeng extends PrePassiveSkill {
|
|
|
|
name: string = 'dujunqianneng';
|
|
|
|
hpPercent: number = 50;
|
|
|
|
dmgReduc: number = 40;
|
|
|
|
desc(): string {
|
|
|
|
return replace(t('skill.dujunqianneng.1'), [this.hpPercent, this.dmgReduc]);
|
|
|
|
}
|
|
|
|
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 = callDmgReduc(owner.extraAttr.dmgReduc, this.dmgReduc);
|
|
|
|
owner.battleLog(replace(t('skill.dujunqianneng.2'), [this.hpPercent, this.dmgReduc]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//金光护身
|
|
|
|
export class JinGuangHuShen extends CounterSkill {
|
|
|
|
name: string = 'jinguanghushen';
|
|
|
|
cd: number = 999;
|
|
|
|
hpPercent: number = 35;
|
|
|
|
desc(): string {
|
|
|
|
return replace(t('skill.jinguanghushen.1'), [this.hpPercent]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.isDeath();
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
owner.addHp((owner.attr.hp * this.hpPercent) / 100);
|
|
|
|
owner.battleLog(replace(t('skill.jinguanghushen.2'), [this.hpPercent]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//牢不可破
|
|
|
|
export class LaoBuKePo extends StartPassiveSkill {
|
|
|
|
name: string = 'laobukepo';
|
|
|
|
percent: number = 200;
|
|
|
|
desc(): string {
|
|
|
|
return replace(t('skill.laobukepo.1'), [this.percent]);
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const laobukepo = new BlocPercentBuff(this.name, this.percent, 9999);
|
|
|
|
owner.putBuff(laobukepo);
|
|
|
|
}
|
|
|
|
}
|