|
|
|
import { ActionSkill, Attack, Control, PassiveSkill, PrePassiveSkill, StartPassiveSkill, SufPassiveSkill } from './base';
|
|
|
|
import { createt } from '../i18n';
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
import { replace, BattleRole } from '@/tool';
|
|
|
|
import { AttackedBuff, BaseAtkPercentBuff, ControlBuff, CritDmgBuff, DmgPercentBuff, DmgReducBuff, KuiLan, LiuXue } from './buff';
|
|
|
|
|
|
|
|
const t = createt('');
|
|
|
|
const st = createt('skill.');
|
|
|
|
//冰刃
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
export class IceBlade extends SufPassiveSkill {
|
|
|
|
name: string = 'iceBlade';
|
|
|
|
rate: number = 10;
|
|
|
|
percent: number = 1000;
|
|
|
|
last: number = 1;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('iceBlade.1'), [this.rate, this.percent, this.last]);
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.crit && Math.random() < this.rate / 100;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const additional = Math.ceil((owner.atk * this.percent) / 100);
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
target.addHp(-1 * additional);
|
|
|
|
target.putBuff(new ControlBuff(this.name, this.last));
|
|
|
|
owner.extraDmgLog(replace(st('iceBlade.2'), [additional, t(target.type), this.last]));
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
}
|
|
|
|
}
|
|
|
|
//见红
|
|
|
|
export class SeeRed extends ActionSkill {
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
name: string = 'seeRed';
|
|
|
|
layer: number = 5;
|
|
|
|
cd: number = 5;
|
|
|
|
last: number = 5;
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
desc(): string {
|
|
|
|
return replace(st('seeRed.1'), [this.layer, this.last]) + replace(st('seeRed.2'), [this.cd]);
|
|
|
|
}
|
|
|
|
use(owner: BattleRole, target: BattleRole): void {
|
|
|
|
owner.skillPercent = 0;
|
|
|
|
const liuxue = new LiuXue(this.layer, this.last);
|
|
|
|
target.putBuff(liuxue);
|
|
|
|
owner.extraDmgLog(replace(st('user'), [t(owner.type), st(this.name + '.0')]) + replace(st('seeRed.1'), [this.layer, this.last]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//鳍刺
|
|
|
|
export class QiCi extends SufPassiveSkill {
|
|
|
|
name: string = 'qici';
|
|
|
|
rate: number = 30;
|
|
|
|
layer: number = 3;
|
|
|
|
last: number = 4;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('qici.1'), [this.rate, this.layer, this.last]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.dmg > 0 && Math.random() < this.rate / 100;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const liuxue = new LiuXue(this.layer, this.last);
|
|
|
|
target.putBuff(liuxue);
|
|
|
|
owner.extraDmgLog(replace(st('qici.2'), [t(target.type), this.layer, this.last]));
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
}
|
|
|
|
}
|
|
|
|
//暴虐
|
|
|
|
export class BaoNue extends SufPassiveSkill {
|
|
|
|
name: string = 'baonue';
|
|
|
|
rate: number = 30;
|
|
|
|
last: number = 2;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('baonue.1'), [this.rate, this.last]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.dmg > 0 && Math.random() < this.rate / 100;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const liuxue = new LiuXue(9999, this.last);
|
|
|
|
target.putBuff(liuxue);
|
|
|
|
owner.extraDmgLog(replace(st('baonue.2'), [t(target.type), this.last]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//扎心
|
|
|
|
export class ZhaXin extends StartPassiveSkill {
|
|
|
|
name: string = 'zhaxin';
|
|
|
|
critDmg: number = 200;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('zhaxin.1'), [this.critDmg]);
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const zhaxin = new CritDmgBuff(this.name, this.critDmg, 9999);
|
|
|
|
owner.putBuff(zhaxin);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//鳌之毒
|
|
|
|
export class AoZhiDu extends SufPassiveSkill {
|
|
|
|
name: string = 'aozhidu';
|
|
|
|
last: number = 2;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('aozhidu.1'), [this.last]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.dmg > 0;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const aozhidu = new KuiLan('kuilan', this.last);
|
|
|
|
target.putBuff(aozhidu);
|
|
|
|
owner.extraDmgLog(replace(st('aozhidu.2'), [t(target.type), this.last, aozhidu.layer]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//十九叉
|
|
|
|
export class ShiJiuCha extends SufPassiveSkill {
|
|
|
|
name: string = 'shijiucha';
|
|
|
|
times: number = 19;
|
|
|
|
cout: number = 0;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('shijiucha.1'), [this.times]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.dmg > 0;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
this.cout++;
|
|
|
|
if (this.cout >= 10) {
|
|
|
|
this.cout = 0;
|
|
|
|
const dmg = owner.dmg * this.times;
|
|
|
|
owner.extraDmgLog(replace(st('shijiucha.2'), [t(owner.type), dmg]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//剑气动四方
|
|
|
|
export class JianQiDongSiFang extends StartPassiveSkill {
|
|
|
|
name: string = 'jianqidongsifang';
|
|
|
|
dmgPercent: number = 50;
|
|
|
|
dmgReduc: number = -20;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('jianqidongsifang.1'), [this.dmgPercent, this.dmgReduc * -1]);
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const buff1 = new DmgPercentBuff(this.name, this.dmgPercent, 9999);
|
|
|
|
owner.putBuff(buff1);
|
|
|
|
const buff2 = new DmgReducBuff(this.name, this.dmgReduc, 9999);
|
|
|
|
owner.putBuff(buff2);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//暴风雪
|
|
|
|
export class BaoFengXue extends Control {
|
|
|
|
name: string = 'baofengxue';
|
|
|
|
cd: number = 10;
|
|
|
|
last: number = 3;
|
|
|
|
rate: number = 100;
|
|
|
|
bossRate: number = 65;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('baofengxue.1'), [this.last, this.cd, this.bossRate]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// 波动杀意
|
|
|
|
export class BoDongShaYi extends PrePassiveSkill {
|
|
|
|
name: string = 'bodongshayi';
|
|
|
|
precent: number = 10;
|
|
|
|
maxLayer: number = 15;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('bodongshayi.1'), [this.precent, this.maxLayer]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const shayi: any = owner.attackBuff.get('shayi');
|
|
|
|
if (shayi) {
|
|
|
|
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;
|
|
|
|
}
|
|
|
|
}
|