
Balatro 已经发售有一周了,各位老赌棍应该摸出一些套路,或是已经爽过,也被狠狠坑过了。但是作为一款 Rogue 游戏,游戏过于依赖随机性的特点也被大家发现,特别是高赌注下,没有运气就意味着无解。
游戏的更新速度并没有很快,一些重要机制的添加与修改短期内是没指望了,相关的 MOD 开发也需要大牛们为爱发电。为了让更多牌友尽可能享受到游戏本应该有的乐趣,减少因为脸黑而非技术问题所导致的挫败体验,我发一篇关于游戏卡牌和牌组的修改教程。掌握这个技巧之后,你就能够永久改变以下内容:
游戏牌(数字和人头牌)的分值、花色;
小丑牌 Jokers 的售价、稀有度、可否被【蓝图】复制、触发效果;
塔罗牌 & 星球牌 & 幻灵牌的售价、是否可消耗、触发效果
优惠券的售价
卡包的售价、出现概率、包内卡片数、可挑选张数
开局牌组的特性(如起始金额、手牌大小和上限、小丑牌槽位、有无特定优惠券、有无人头牌等)
再声明一次我的初衷,我希望大家能够更好地体会到这款游戏在构筑和运营上所带来的乐趣。我也希望这篇教程能够起到抛砖引玉的作用。我本身没有什么技术能力,而那些有能力的朋友,或许能够依此创造出更有意思的、更平衡设计。
发一下调教后的黑牌卡组,是不是一下子就变得有吸引力多了:

游戏的引擎基于 Lua,基本上所有的源码都被打包进了游戏的 .exe 文件。把 .exe 启动程序以压缩包的形式打开之后,就可以看到很多可以更改的 .lua 文件。
我们用记事本或者其他代码编辑器打开,就可以找到很多可供修改的内容。基本原理很简单,我们改完内容保存之后,把这份修改后的文件重新压缩进 .exe,就可以在游戏中生效了。
我使用的是 7-ZIP,尚没有测试其他压缩软件该如何操作这一步。大家有兴趣,可以自己尝试一下,如果搞不明白的话,就去 7-ZIP 官网下载一个吧,绿色小巧,不喜欢的话用完删掉即可。


我们主要修改的是其中叫做 game.lua 的文件,它解压出来,然后用记事本或编辑器打开,就可以看到代码内容:


这部分是关于如何修改初始卡组的。
首先在文档中找到【--Backs】这个标识,找不到可以用搜索功能。正确的位置应该如下显示:

b_ XXX,其中 XXX 英文单词所对应的名字就是在开局时的牌组,例如 b_abandoned 指的就是废弃牌组,b_plasma 指的就是等离子牌组。
我们重点要关注的是后面 config = {} 这部分,其中花括号 {} 里面的内容就是该牌组的开局条件设计。

我们举几个例子,黄色牌组开局就有 $10,我们可以看到对应的配置里写的是 dollars = 10;黑色牌组手牌上限 -1,小丑槽位 +1,我们可以看到对应的配置里写的是 hands = -1, joker_slot = 1。
我这里罗列一些大家可能感兴趣的参数含义:
discards = XX 【额外的弃牌数 = XX】
hands = XX 【额外的出牌数 = XX】
dollars = XX 【每回合额外的金钱 = XX】
extra_hand_bonus = XX 【每个没有用完的出牌数奖励 $XX】
extra_discard_bonus = XX 【每个没有用完的弃牌数奖励 $XX】
joker_slot = XX 【额外的小丑槽位 = XX】
voucher = XX 【起始带有名为 XX 的优惠券,优惠券的名字可以在该部分上方一点的 --vouchers 找到对应的英文写法】
voucher = {XX, XX} 【如果要带有多张优惠券,就需要添加花括号】
spectral_rate = XX 【幻灵牌在商店中的出现倍率为 XX】
remove_faces = true 【开局移除掉所有人头牌】
那么我具体该怎么修改呢?很简单,直接在里面添加或者调整你想要的参数就可以了。我举一个例子:

上面这幅图里,我在参数开头的地方全部加上了 dollars = 10, joker_slot = 1,其结果是我的所有牌组在初始都会带有额外的 10 块钱,以及一个额外的小丑槽位。到游戏里验证一下:


可以看到,不管是红色牌组还是蓝色牌组,初始金额变成了 14,小丑槽位变成了 6。
再举一个例子:

我在参数的开头处加上了 vouchers = 'v_overstock_norm',其中 v_overstock 指的是【库存过剩】这张优惠券, norm 即 normal,说明这是一张 1 级优惠券。这个效果是开局自带该优惠券,让商店的销售槽变成 3。我们进游戏实际看一下:

学会基本的思路之后,只要你认得相关的英文单词,基本上就知道该怎么修改特定的卡牌了,其方法是类似的。

比如说,这组 --Jokers 数据是 小丑牌的参数,其中 rarity = XX 表示其稀有度,即普通、罕见、稀有、传奇等。当然,这个只改变其标签判定效果,而不改变本身的机制作用。cost = XX 表示这张卡牌在商店里的价格,这个价格不包括带有一些特殊效果(如多彩)之后的溢价,只是基础价格而已。不仅仅是小丑牌,其他牌也可以通过改这个参数实现售价的改变。

上面这三组数据从上往下分别是塔罗牌、星球牌和幻灵牌。

上面这组数据是优惠券。


上面这组数据是卡包。其中 weight = XX 表示在商店中出现的概率比重,这个数字越大,说明越容易出现。第二张图中的 config 参数设置,其中 extra = XX 表示这个卡包里面包含几张牌,choose = XX 表示你可以从中挑几张。
这款游戏很优秀,我强烈建议在不修改的情况下至少冲击一次高赌注或者无尽模式,这样你才能充分体会到这款游戏的巧思和局。如果上述的修改教程让你你觉太麻烦了,我在评论处提供一份轻度修改过的文件,能帮助对卡牌类游戏不够熟练或者只是想更多时候不那么脸黑的朋友,更轻松游玩这部游戏。在不破坏核心乐趣的前提下,我做了如下修改:
初始携带两张扩充商店销售槽的优惠券。还在一边流泪一边花钱如流水地重 Roll 商店吗? 希望 4 个销售槽位能拯救你的脸黑。
初始额外携带 5 块钱(黄色卡组为15块)。加快玩家的发育速度,避免在高赌注时过分依赖重 Roll 开局。
5 选 2、 4 选 2 的卡包出现概率加倍(包括幻灵卡包)。