You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
40 lines
1.2 KiB
40 lines
1.2 KiB
2 weeks ago
|
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);
|
||
|
}
|
||
|
}
|