✓ ESS21仅限 【TA】【特性】015 Dragon Break(0617)

TAAAAAAA

天王
管理成员
2024/06/16
279
4
39
1,270
015 Example:Dragon Break

这期教程,我们继续来讲解特性实例。

那么,这期教程我们要讲解的是斩龙。
斩龙(Dragon Break):攻击时,将目标视为龙属性。

首先是PBS部分——
1722165163420.png

关于这个特性,我的第一感觉就是,可以按照破格来做,因为它也是仅仅只是在攻击时生效的。
那我们就动手吧——
1722165175425.png
接着初始化——
1722165186330.png
接着按照破格的逻辑——
1722165197707.png
1722165206235.png
我们暂且把这个效果称为属性破坏效果。
也就是说,斩龙依赖于属性破坏效果,并且,战龙属于属性破坏类效果。
属性破坏类效果就是在攻击时将目标视为某某属性的这么一类效果。
也就是说,我们新创造了一类效果。

接着——
1722165218840.png
通过这个方法来开启属性破坏效果。

现在,属性破坏效果有了,那么接着就是如何应用这个效果了——
我们需要搞清楚两点,一,对谁应用;二,怎么应用。

先来看第一点,对谁应用。
这一点很简单,当然是对目标应用。
所以,我们可以在属性破坏效果开启后就对目标应用——
1722165259897.png
就是这一行代码targets.each { |b| b.typeBreakType(user) if @battle.typeBreak }。
因为技能不一定只有一个目标,所以我们要对所有目标应用属性破坏效果。
事实上,你也只能使用targets,用不了target。

这一行代码的意思就是,当属性破坏效果开启时,对所有目标应用属性破坏效果。
其实,属性破坏效果是通过typeBreakType(user)这个方法来实现的。

这里,出现了xxx.each { |a| a.yyy if zzz }这样的格式。
这里其实是迭代,或者说循环,或者说遍历,就是对xxx里的每一个元素做同样的处理。
也就是说,xxx是一个数组,我们用a来指代xxx里面的每一个元素,当zzz时候,就对a调用yyy方法。

xxx.each { |a| a.yyy if zzz }也可以写成——
你要写的完整一点的话就是这样——

这两种写法,一种只需要一行,一种是分了多行。
我不能说它们是完全一模一样的,但是,你就当它们是完全一模一样的就好了。
当用一行就可以写完的时候,你可以直接一行写完;当你想要代码更好理解的话,你可以用多行的,并且是最完整的这种写法,并且,我也推荐你用这种。

那么我们回来,实际上,我们把怎么应用,也就是第二点,也差不多讲完了。
怎么应用其实就是看typeBreakType(user)这个方法是怎么写的——
1722165325152.png
这里的话,是通过检查技能的使用者是否有某一个特性,进而来决定技能的目标的@breakType这个变量的值。
也就是说,我们是新加了一个基于battler的变量@breakType,用来记录被属性破坏之后的属性。

所以,我们把这个变量的前两步补齐——
1722165338986.png
1722165345105.png

那么就还剩最后一步了,那就是应用这个被属性破坏之后的属性。
找到pbTypes这个方法——
1722165358011.png
增加上这一行代码——
1722165370949.png
pbTypes这个方法就是在计算精灵的属性的时候用的。
也就是说,我们只需要在计算精灵的属性的时候,直接使用我们之前保存在@breakType中的数据就好了。
这一行return @typeBreak if @typeBreak && @battle.typeBreak的这种写法,还有一个好处是,因为pbTypes这个方法会在很多地方、很多时候被调用,但是,我们其实并不需要知道它会在什么地方、什么时候被调用。
因为这个方法只有在@breakType本身有数据,并且场上存在属性破坏效果的时候,才会使用@breakType的数据计算属性。
当场上没有属性破坏效果时,精灵并不会被属性破坏。

另外,通过这两个方法,可以更加方便的管理和添加新的属性破坏类特性——
1722165385066.png
比如说这样——
这里我又新加了一个属性破坏类特性XXX,这个特性的精灵在攻击时,会将目标的属性视为水属性和火属性。

现在,我们来总结一下——
首先,由技能的使用者是否有某个特性来确定场上是否存在属性破坏效果;
接着,当场上存在属性破坏效果时,对所有目标应用属性破坏。
 

TAAAAAAA

天王
管理成员
2024/06/16
279
4
39
1,270
现在,我们打开游戏测试一下——
1722165568930.png
1722165575203.png
1722165580755.png
1722165586948.png
1722165593460.png
1722165599811.png
1722165605794.png
1722165613354.png


功能上来说的话,这个特性就讲解完了。
但是,如果你想让玩家对于属性克制发生了变化不感到迷惑的话,你还可以这样——
就是让精灵出场时出现一个提示,这样可能会稍微好点。
1722165661236.png

就我个人来说,我是觉得这个特性挺有趣的,就像是破格的属性版本。
原本的破格是破特性,这个是破属性。

那么这期教程就到此为止。

视频预览(0728)——

浏览附件2024-08-01 21-58-11.mp4

感谢阅读。
 

在线成员

论坛统计

主题
543
消息
2,480
成员
3,147
最新成员
执余-