018 Example:Chloroplast
这期教程,我们继续来讲解特性实例。
那么,这期教程我们要讲解的是叶绿体。
叶绿体(Chloroplast)——
战斗时,自身视为处于晴天下;
只会在场上没有天气被激活时发动*。
这个特性来自Elite Redux,也就是ER——


但是,这里要做的这个特性和在ER中的这个特性的表现并不会完全一致。
其中最主要的区别是,ER的叶绿体不会触发晴天相关特性,只会触发晴天相关技能。
而这里要做的这个叶绿体会同时触发晴天相关的特性和技能,就相当于自身背了一个太阳在身上。
首先是PBS部分——

那么,这个特性该怎么做呢,是不是需要在所有检查晴天的地方都额外加上检查一下这个特性呢?
并不是,其实,这个特性的实现非常简单,只需要一行代码就够了。
我们搜索一下effectiveWeather这个方法——

加上一行代码——

这样,这个特性就做好了,是不是相当快速。
当然,快速的前提也是基于你对战斗系统的充分的理解的。
在ESS中,有3种方式用来检查天气——
一,使用battle.field.weather——

这一种是直接检查场上的天气是什么。
二,使用battle.pbWeather——

这一种是检查场上是否有激活的某某天气。
这两种的区别就是场上的天气是否被激活,比如说,如果场上有无天气的话,即使场上是雨天,那么这个雨天也没有被激活。
当无天气下场的瞬间,雨天才会被激活。
你可以理解为,天空在下雨,但是雨在落到你身上之前就消失了,所以你并没有被雨淋到,所以你自然也不会受到雨天的各种效果。
三,使用battler.effectiveWeather——
这个就是我们在这期教程里面用到的方法。
和前两个对比,你会发现,前两个都是battle级的,但是这个是battler级的,也就是说这个方法是针对单个battler的。
我们还是通过例子来说明,还是雨天吧,battle.field.weather决定了天空有没有下雨,battle.pbWeather决定了雨能不能落到你身上。
而最后的battler.effectiveWeather决定了你主观上是否想要让雨落到你身上。
比如说,你撑一把雨伞,雨就落不到你身上了。
所以,对于叶绿体这个特性来说,就是当场上没有天气,或者有天气,但是天气没有被激活,或者有天气,并且天气被激活,但是自身撑了伞的时候,就会发动。
也就是说,必须是自身不受天气影响的时候,这个特性才会发动。
当然,这样已经很强了,那你说,我要再加强一个这个特性,我要无视任何天气,我要让有这个特性的精灵始终视为处于晴天,那该怎么做呢?
很简单,这样就好了——

这样就相当于你身上永远背了一个太阳,并且这个太阳的优先级还高于场上真实存在的天气。
比如说场上现在是雪天,但是对于你来说,你是晴天。
这两种的区别就在于,是否会受到外部天气的影响。
这期教程,我们继续来讲解特性实例。
那么,这期教程我们要讲解的是叶绿体。
叶绿体(Chloroplast)——
战斗时,自身视为处于晴天下;
只会在场上没有天气被激活时发动*。
这个特性来自Elite Redux,也就是ER——


但是,这里要做的这个特性和在ER中的这个特性的表现并不会完全一致。
其中最主要的区别是,ER的叶绿体不会触发晴天相关特性,只会触发晴天相关技能。
而这里要做的这个叶绿体会同时触发晴天相关的特性和技能,就相当于自身背了一个太阳在身上。
首先是PBS部分——

那么,这个特性该怎么做呢,是不是需要在所有检查晴天的地方都额外加上检查一下这个特性呢?
并不是,其实,这个特性的实现非常简单,只需要一行代码就够了。
我们搜索一下effectiveWeather这个方法——

加上一行代码——

这样,这个特性就做好了,是不是相当快速。
当然,快速的前提也是基于你对战斗系统的充分的理解的。
在ESS中,有3种方式用来检查天气——
一,使用battle.field.weather——

这一种是直接检查场上的天气是什么。
二,使用battle.pbWeather——

这一种是检查场上是否有激活的某某天气。
这两种的区别就是场上的天气是否被激活,比如说,如果场上有无天气的话,即使场上是雨天,那么这个雨天也没有被激活。
当无天气下场的瞬间,雨天才会被激活。
你可以理解为,天空在下雨,但是雨在落到你身上之前就消失了,所以你并没有被雨淋到,所以你自然也不会受到雨天的各种效果。
三,使用battler.effectiveWeather——
这个就是我们在这期教程里面用到的方法。
和前两个对比,你会发现,前两个都是battle级的,但是这个是battler级的,也就是说这个方法是针对单个battler的。
我们还是通过例子来说明,还是雨天吧,battle.field.weather决定了天空有没有下雨,battle.pbWeather决定了雨能不能落到你身上。
而最后的battler.effectiveWeather决定了你主观上是否想要让雨落到你身上。
比如说,你撑一把雨伞,雨就落不到你身上了。
所以,对于叶绿体这个特性来说,就是当场上没有天气,或者有天气,但是天气没有被激活,或者有天气,并且天气被激活,但是自身撑了伞的时候,就会发动。
也就是说,必须是自身不受天气影响的时候,这个特性才会发动。
当然,这样已经很强了,那你说,我要再加强一个这个特性,我要无视任何天气,我要让有这个特性的精灵始终视为处于晴天,那该怎么做呢?
很简单,这样就好了——

这样就相当于你身上永远背了一个太阳,并且这个太阳的优先级还高于场上真实存在的天气。
比如说场上现在是雪天,但是对于你来说,你是晴天。
这两种的区别就在于,是否会受到外部天气的影响。