《饥荒》中龙蝇是另玩家们头痛的生物之一,那么龙蝇的暴怒和吐虫机制是如何运行的呢?下面小编带来玩家分享的《饥荒》龙蝇暴怒吐虫机制解析,一起来看吧。
wikia上关于吐虫的描述是:首次间隔9次攻击,之后间隔7次攻击,龙蝇就会去吐虫。
wikia上关于暴怒的描述是:熔岩虫全死boss即会暴怒,催眠可移除。(这一点在dragonfly.lua中也有特别指出)
但是事情真的是这样吗?我决定做一番测试。
首先,我完全不攻击boss,等待他9次攻击后,boss并没与去吐虫。事实上,必须打到80%血量它才会去吐虫。
其次,在boss第一次吐虫后,我利用走位,减少boss的攻击次数,他大概5次攻击就又回去吐虫了。
至此,关于攻击间隔论终结。
可以得出结论是龙蝇吐虫间隔是时间而不是攻击次数,触发第一次吐虫是血量到达80%。
另外,Yann_Hu提示我说boss血达到80%,50%,20%血量时boss会立即召唤熔岩虫,这一点在dragonfly.lua中也得到了证实。但根据我的实验,
事情并不是这么简单,具体情况后面阐释。
首先选择威尔逊,用传统打法,肉棒输出,围墙卡小虫子,以下是我观察到的数据:
一共进行了2次实验。
现在唯一不解的就在第二种状态下,为什么有时候会暴怒,有时候不会?
为了验证,我选择大力士+韦斯进行第二次测试:
测试结果如下:
上图是2次大力士的数据。
两次韦斯的数据。
可以看到,大力士在熔岩虫生命周期内可输出高达5000+的伤害,但boss依旧会暴怒;为韦斯输出仅仅为2000+,boss却经常不暴怒。
至此,输出论的流言终结。
代码中的逻辑是这样的:每当吐一个虫后,判断一下是否已达到熔岩虫上限,如果是,就停止吐虫动作,等待30秒在开始。但是由于每一个熔岩虫的存活时间也是30秒。也就是说最后一个熔岩虫死亡时间和下一次吐虫开始时间几乎是相同的。个人猜测,由于误差,延迟等因素,可能出现最后一只熔岩虫先死的情况,也可能出现下一次吐虫倒计时先结束的情况。前者龙蝇就会狂暴,而后者不会。
具体原因在dragonfly.lua中可以看到:每只熔岩虫死亡,系统都要判断一下:
if inst.components.rampingspawner:GetCurrentWave() <= 0 and data.remaining_spawns <= 0
翻译过来就是时候还有当前是否在吐虫阶段?是否有要执行的吐虫事情?(这种情况多发生在被打晕后,本来boss该去吐虫但是无法实施)。
这2个都判断失败,boss才会狂暴。但是由于误差因素,最后一只熔岩虫死掉时,boss刚刚好去进行新的一轮吐虫,导致暴怒判断失败。
为了验证这个结论,我把等待时间改成了20秒,再进行测试。结果意料之中,龙蝇100%不会暴怒,而且每次只攻击4~5次就会去吐虫。
而我把等待时间改成了40秒,再进行测试,龙蝇就变成了必然暴怒,但攻击还是7次,因为30秒小虫子死直接触发暴怒。
至此,我可以得出以下结论:
由于吐虫间隔和熔岩虫生命周期均为30秒,所以boss在7次攻击后是否暴怒是难以预判的,完全取决于游戏内部的随机运行情况。
简单的说就是暴怒与否,完全看脸。。。
关于掉落再代码里说的也比较详细,必掉6块肉,4个金子,各色宝石1个(蓝红为2个),图纸一张,皮一张。
其他还有4个金子,紫绿橙黄宝石,每个都是50%几率掉落。
蛋的几率是33%
function RampingSpawner:GetWaveSize()
return math.floor(Lerp(self.min_wave, self.max_wave, self.wave_num/self.waves_to_max))
end
function RampingSpawner:DoWave()
self.wave_num = self.wave_num + 1
self.current_wave = self.current_wave + self:GetWaveSize()
end
关于每波有多少个龙蝇,代码解释如上,翻译过来就是:
每次吐虫数量都会比上次多一些(self:GetWaveSize()),具体多多少是看当前波数/6是否大于0.5,说白了就是前3波每波增加4个小虫子,后3波没次增加10个小虫子。
我再总结一下:
一.龙蝇何时会去吐虫?
达到80%,50%,20%血量,boss就会进入吐虫模式,每次吐若干熔岩虫,然后休息30秒,再继续。暴怒会使boss退出吐虫模式,变成只会普工的模式。
一句话就是:血线入,暴怒出。
二.龙蝇何时会暴怒?
众所周知基本逻辑就是最后一只熔岩虫死亡boss即暴怒。但有2个条件:
1.boss不能正在吐虫
2.boss的下一个任务不能是吐虫
上面说了boss每次一波吐虫要休息30秒,而这30秒恰恰是最后一只熔岩虫存活时间。也就是说boss去吐下一波虫的时刻跟熔岩虫死触发暴怒的时刻是重叠的。细微的时间差就会导致截然相反的结果(也就是第1个条件成立与否非常微妙)。这就导致了每次30秒休息结束时boss狂暴与否变得不可预测(当然如果你杀掉最后一只虫boss就必然会暴怒)。
三.对策:
由于80%,50%,20%血量可以强制boss去吐虫,提高输出打boss到这个血线就可以防止上面所说的“等待30秒休息时间后的随机事件”发生。从而确保最后一只熔岩虫死亡时,boss处于吐虫状态,而使暴怒判断的条件1失败。
一句话就是:输出够不暴怒,输出不够要看脸。