咒法学学习手记(五):常用咒术示例
批量破坏方块
破坏方块也许是最为常用的法术,但一个一个的破坏未免过于麻烦。利用托特之策略的力量,可以实现大范围的方块破坏。
破坏方块接受一个坐标,然后破坏那个坐标上的方块——就算那个位置上空无一物也不会丢出事故。如果我们要用托特之策略来破坏大量的方块,那么我们就需要想办法获取我们想要破坏的那些方块的坐标。
思路便清晰了:用弓箭手之馏化获取一个方块的坐标,那之后根据这一个坐标获取我们要破坏的所有方块的坐标。怎么获取这些坐标呢?还是用托特之策略。
看这个例子(iota:c93f9c.json):这个列表看似长得吓人,但仔细一看,不过是多次用托特之策略重复几个类似的图案(iota:49f422.json):每一次都将原本的一个向量复制成三个,然后其中两个在相反的轴向加上一个单位向量,剩一个不做处理。
这样一变成三,三变成九,九变成二十七,就得到了 3×3×3 的立方体内的所有方块的坐标。如果最后重复时多执行一个破坏方块,就可以一次性破坏大量方块了。
也可以把这长长的坐标列表保存下来,编写法术时直接将其嵌入到咒术中,来方便使用。
射线追踪技巧与照明术
在使用放置方块、构筑光源、启迪树苗这些法术时,我们会发现利用弓箭手之馏化往往不能获得正确的坐标向量。这是因为弓箭手之馏化会越过空气、树苗这类没有碰撞箱的方块,返回射线追踪所遇到的第一个有实体的方块。
但是像构筑光源这样的法术,它所接受的坐标位置上又不能有方块,我们要怎样获取那个方块附近的空气的坐标呢?
答案是运用建筑师之馏化:这个图案会返回射线追踪遇到的第一个实体方块的那个面的法向量。如果我们将弓箭手与建筑师的结果相加,便可以得到那个方块在视线方向上相邻的空气的坐标,比如说 iota:raycast0.json。
对于启迪树苗也是一样的——毕竟在这里空气和树苗并没有什么区分,都是被一般的射线追踪忽略的方块。
更好的爆炸
爆炸法术是对敌人造成杀伤的好方法。但是让人感到烦恼的是,爆炸会破坏地形。
好在我们并不是没有办法避免这种事情发生:我们如果用双子之策略将目标向量 Iota 复制成四份,先在那个位置构筑一份水源,之后释放爆炸——由于在水里发生爆炸便不会破坏方块。
接着使用构筑方块来填充水源,最后使用破坏方块消除掉所有痕迹,这便是所谓的无损爆炸。示例:iota:booms.json。
如果利用区域之馏化和托特之策略的话,也许还能把这个法术改造成大范围的杀伤性法术。
高速箭的妙用
箭,速度越快,伤害越高。如果说能够使用咒术让箭的速度达到极高,便可以用一支箭造成极高的伤害。最容易想到的是用连续多次驱动的方式,但多次驱动的媒质消耗有些高。
所以也可以采用多次低等级爆炸的方法来将箭加速到极快的速度。
看这个例子(iota:arrow.json):这个法术先利用非物品和非生物的区域之馏化取交集之后获取附近的箭实体,之后在箭矢延施法者视线的反向延长线的一点上引发多次 0.1 级爆炸。这个法术运用双子之策略和托特之策略将低等级爆炸执行了 100 次,箭被加速到极快,伤害巨大——消耗不到 50 紫水晶粉。
可惜的是,哪怕使用施法物品,射箭后立刻切换施法也比较麻烦,也许随着我的研究,会有更好的方法吧。
媒质!媒质!
施法需要媒质,需要很多很多很多的媒质。我的技术日益精进,而媒质却总是不足……
媒质,媒质!依靠紫水晶洞中那些微不足道的产出根本不足以维持施法……我得找到别的办法。
**媒质来自于思维,思维产生于意识,任何的思考都会产生痕量的媒质。**让我想想,让我想想……也许我可以通过一次施法时少带些紫水晶来节省媒质,也许我可以寻找新的晶洞,但是还不够。
我现在的知识是不足够的,我还需要更多的知识。卓越法术,必须找到卓越法术们——不管是把结晶态的媒质制作成媒质瓶,还是任何其他办法。为了媒质,我将不顾一切。也许在沉船或地牢这样的先民遗迹中,会有记载卓越法术的远古卷轴的踪迹?
我不能忍受媒质的缺乏,我不能停下施法……