编辑器零件制作5:复刻玛恩纳的天赋“无动于衷”与三技能附加伤害
玛恩纳的二天赋“无动于衷”描述为:在场时,自身更容易受到攻击,所有卡西米尔干员被攻击时反弹相当于玛恩纳攻击力18%(+3%)的真实伤害。
首先是嘲讽,没有难度,直接嘲讽等级在表格里写1即可。
其次就是本次的主题:反伤和通过同样的原理制作的附加伤害,分析一下这个技能可以得出:
(1)叔叔在场时,该天赋生效,退场之后这个天赋效果就会消失。
(2)天赋生效的单位被攻击的时候,以玛恩纳当前攻击的18%为准,对攻击者造成真实伤害,需要确认敌人造成伤害时的伤害信息,包括被攻击者、玛恩纳和攻击者。
(3)只有卡西米尔干员才能吃到这个天赋。
最后将这个天赋制作为一种“Buff”,由玛恩纳每隔0.1秒附加给全场带有无效果“卡西米尔”Buff的单位,该Buff持续0.1秒。
(1)首先在Buff文件夹下新建一个脚本,取名为反伤,定义float变量damage(伤害),enum变量damagetype(伤害类型),布尔值EnemyOnly(只有true和false对错两种结果)

(2)随后取到表格中BuffData处的相应数值,获取伤害基准、伤害类型和EnemyOnly的正确与否,这里由于需要取到叔叔的攻击力,所以采用的是case 1,也就是释放技能,赋予Buff的Unit的攻击力,即叔叔的攻击力。

(3)然后使用Modify方法。① 在EnemyOnly为false时,对伤害信息的来源造成伤害,伤害量Attack取值为damage,伤害类型DamageType取值为表格中的DamageType,目标Target为伤害来源,来源Source为释放技能赋予Buff的单位Skill.Unit(即玛恩纳)。② 在EnemyOnly为true时,如果伤害来源是敌人类的Unit,才会触发相同的反伤效果(这样阿就不会把自己杀死了)。

(4)最后在表格中的BuffData栏新建一行Type为“反伤”的Buff,Data列填写以下内容即可。
{"DamageBase":1,"DamageType":"Real","EnemyOnly":true}

同样的道理也可以用于制作玛恩纳三技能“未照耀的荣光”的附加伤害,该技能的描述为:范围内所有敌人受到卡西米尔干员攻击时额外附带玛恩纳12%攻击力的真实伤害。
与反伤buff有所不同的是,前者是玛恩纳每0.1秒附加给场上所有带有“卡西米尔”Buff的队友,后者是玛恩纳在技能期间激活额外技能,每0.1秒附加给射程内所有的敌人一个受到伤害时附加额外伤害的Debuff,触发条件为伤害来源具有特定Buff(即“卡西米尔”)。
(1)首先在Buff文件夹下新建一个脚本,取名为受击附加伤害,定义float变量damage(伤害),enum变量damagetype(伤害类型),buffId借用了隔壁减伤脚本获取判定对象是否具有特定buff的效果。

(2)第二步取到表格中BuffData处的相应数值,获取伤害基准、伤害类型和生效所需的Buff名,这里由于需要取到叔叔的攻击力,所以采用的是case 1,也就是释放技能,赋予Buff的Unit的攻击力,即叔叔的攻击力。

(3)最后使用Modify方法,在不填写buffId,或是伤害信息的来源具有特定Buff(在这里需要攻击者具有“卡西米尔”Buff才可以生效)时,对Unit造成伤害。
伤害量Attack取值为damage,伤害类型DamageType取值为表格中的DamageType,目标Target为持有该Buff的单位Unit,来源Source为释放技能赋予Buff的单位Skill.Unit(即玛恩纳)。

(4)最后在表格中的BuffData栏新建一行Type为“受击附加伤害”的Buff,Data列填写以下内容即可。
{"DamageBase":1,"DamageType":"Real","TargetBuffNeed":"卡西米尔"}

这样叔叔的两个机制就都搞定了。