|
|
|
import { ActionSkill, Attack, Control, 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 { ControlBuff, CritDmgBuff, DmgPercentBuff, DmgReducBuff, GanDian, 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 = 15;
|
N多功能新增与调整
1.新增装备属性:伤害加成,伤害减免,暴击避免,爆伤减免,移动速度,转生属性副本行进速度更改为移动速度
2.新增装备类型:饰品,裤子,鞋子,护腕
3.新增装备品质:多彩,多彩品质装备拥有独特的主被动技能
4.新增部分多彩品质装备(暂无产出途径)
5.调整战斗逻辑,适配新增属性和技能
6.调整护甲减伤比例(调低)
7.调整格挡属性数值(调低)
8.调整暴击率和暴击伤害数值随装备等级线性增长(1级为原来一半,100级与原来相等)
9.调整转生点对移动速度的加成(调低)
10.新增装备图标资源
11.装备图鉴显示方式调整
1 month ago
|
|
|
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 QiuAi extends Attack {
|
|
|
|
name: string = 'qiuai';
|
|
|
|
order: number = 998;
|
|
|
|
percent: number = 240;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('qiuai.1'), [this.percent]);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//见红
|
|
|
|
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 = 11;
|
|
|
|
name: string = 'daorenfengbao';
|
|
|
|
dmgPrecent: number = 80;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('daorenfengbao.1'), [this.dmgPrecent]);
|
|
|
|
}
|
|
|
|
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.percent = lirenzhou.layer * this.dmgPrecent;
|
|
|
|
super.use(owner, target);
|
|
|
|
lirenzhou.layer = 0;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//流萤
|
|
|
|
export class LiuYing extends SufPassiveSkill {
|
|
|
|
name: string = 'liuying';
|
|
|
|
rate: number = 60;
|
|
|
|
layer: number = 1;
|
|
|
|
maxLayer: number = 3;
|
|
|
|
percent: number = 600;
|
|
|
|
last: number = 3;
|
|
|
|
curLayer: number = 0;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('liuying.1'), [this.rate, this.layer, this.maxLayer, this.percent, this.last]);
|
|
|
|
}
|
|
|
|
trigger(owner: BattleRole, target: BattleRole): boolean {
|
|
|
|
return owner.dmg > 0 && Math.random() < this.rate / 100;
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
this.curLayer += this.layer;
|
|
|
|
owner.extraDmgLog(replace(st('liuying.2'), [t(owner.type), this.layer, this.maxLayer, this.curLayer]));
|
|
|
|
if (this.curLayer >= this.maxLayer) {
|
|
|
|
const additional = Math.ceil((owner.atk * this.percent) / 100);
|
|
|
|
target.addHp(-1 * additional);
|
|
|
|
const gandian = new GanDian(this.last);
|
|
|
|
target.putBuff(gandian);
|
|
|
|
this.curLayer = 0;
|
|
|
|
owner.extraDmgLog(replace(st('liuying.3'), [t(owner.type), additional, this.last]));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
//失恋
|
|
|
|
export class ShiLian extends StartPassiveSkill {
|
|
|
|
name: string = 'shilian';
|
|
|
|
dmgReduce: number = -100;
|
|
|
|
desc(): string {
|
|
|
|
return replace(st('shilian.1'), [-1 * this.dmgReduce]);
|
|
|
|
}
|
|
|
|
takeEffect(owner: BattleRole, target: BattleRole): void {
|
|
|
|
const shilian = new DmgReducBuff(this.name, this.dmgReduce, 9999);
|
|
|
|
owner.putBuff(shilian);
|
|
|
|
}
|
|
|
|
}
|