A40-凯茜模组通用信息站汉化-游戏机制

Updated 6 days ago

游戏机制

需要了解并善加利用的有用机制。

img

昏招数量

我们仍不确定昏招是什么(已检查了大量与白鼬相关的内容)。老实说可能只是随机间隔

昏招就是随机的哈哈

以及:我永远不会修改昏招统计项哈哈,也永远不会解释其运作原理,你们得反编译游戏才能搞清楚哈哈。

“以及:我永远不会修改昏招统计项哈哈,也永远不会解释其运作原理,你们得反编译游戏才能搞清楚哈哈。”

真是绝妙的恶搞行为。 感谢丹尼尔。

- 摘自V0.20更新日志

WhisMoney解释的真实昏招函数

这段代码片段在每场战斗结束时运行,无论玩家胜利或失败都会在战斗结束后更新昏招数。

TurnNumber初始为0,循环会根据战斗中的回合数运行三次,例如一回合击杀运行三次循环,两回合击杀运行六次循环。

每次循环有5%几率将num2变量加一,循环结束时num2的值会被加到该次冒险的昏招统计项中。

img

要实现最低昏招数,最优策略是尽可能减少回合数。一回合结束战斗有85.7375%几率该场战斗昏招数为0。每张地图三场战斗(各一回合)、三个标准头目(各两回合)和莱西(三回合),最少需要18回合。在所有战斗完美操作下,实现0昏招的几率为6.2672%。若莱西回合不计入【注1】,则最少15回合,完美操作下几率为9.9440%。

注1 似乎确实如此,因为在月亮死亡后无限拖回合不会导致昏招数暴增。

img

若败给标准敌人(非头目)也会获得1昏招。

顶牌算法/公平手牌/手牌操控

原版游戏既有机制。

初始手牌算法会尝试给你一张非毛皮、非免费且“能在第二回合前打出”的卡牌,通过一系列检查实现。

这意味着通过精心管理牌组,你可以迫使游戏总是给你特定起始手牌,比如黑山羊或强化过的螳螂神。

主要操控方法是牌组中只保留一张1血祭卡,其他卡牌全为2/3/4血祭或骨头费用。这能确保你起始手牌必有那张1血祭卡。但无法强制获得免费卡。

也可利用多张1血祭卡实现算法操控。不是强制单张1血祭卡,而是确保所有可能强制抽到的卡都能衔接你的核心策略。

强制获得2或3血祭卡虽可行但困难,因为需要其他卡全是免费卡。因此该策略较难实现,也不常见。

通常“GetFairHand”或“顶牌算法”指机制本身,而“手牌操控”指利用该算法强制特定卡进入起始手牌。

运作原理

游戏抽起始手牌时流程如下:

  1. 抽一张松鼠和两张卡牌
  2. 检查是否有卡牌符合:
    • 非免费
    • 非毛皮
    • 能通过以下检查在下一回合打出:

由于算法适用于所有章节,对每种费用类型都有检查:

  • 血祭: 检查手中免费可献祭卡的数量。 血祭费用小于等于该数量的卡视为可打出。
  • 骨头: 检查手中带脆骨印记的免费卡数量。 骨头费用小于等于该数量的卡视为可打出。
  • 能量: 能量费用≤2的卡视为可打出。
  • 玛珂: 对每颗所需玛珂,检查手牌是否有卡能提供。 若有,则该卡视为可打出。
  1. 若没有卡符合条件: 列出牌组中所有符合条件的卡(非免费、非毛皮且可打出),从中抽取第三张卡。

    若有卡符合,或牌组中没有符合条件的卡: 从牌组随机抽一张。

在凯茜模组中,多数情况下起始手牌会获得1血祭卡,因为你手中总会有一张免费可献祭卡(第一张松鼠)。但若自然抽到另一张免费可献祭卡,由于现在手中有两张免费可献祭卡,2血祭卡也会被视为可打出,就不再保证抽到1血祭卡。

86张缝合兽与1张螳螂的牌组

img

抽到两张缝合兽和螳螂

img

伊耶拉克会干扰算法表现。当然会。参见示例

由于伊耶拉克真身是免费卡,即使伪装成高费卡也会被视为另一张免费可献祭卡。若你抽到全2费以上手牌且含有伊耶拉克,可确定伊耶拉克是前两张之一。详见示例说明。

烛烟不影响起始手牌。虽然烛烟看似在检查前加入手牌,但起始手牌函数独立运行,抽到的卡会在烛烟之后加入手牌。

当前理论认为Static!Glitch!Card卡会被视为其变形后的卡而非本身。这意味着当Static!Glitch!Card卡变成1血祭/免费卡时,游戏不会强制第三抽为1血祭卡。

狼崽是Static!Glitch!Card卡

img

黑山羊未被强制

img

Static!Glitch!Card卡影响起始手牌的其他示例。

待补充:更多牌组示例图

Igniter#6890使用手牌操控的牌组。

玩家起始手牌必含黑山羊。

img

完整顶牌算法流程图

参见KCM版更易读——这些检查基于代码编写。

我跳过了DrawOpeningHand中的fixedHand部分——在固定手牌组加入起始手牌的遭遇中,fixedHand卡牌会在从副牌组抽牌后、抽两张牌前加入手牌,这意味着fixedHand中的卡会影响强制抽牌。

img

疑问

AmethystEnd:

这有原因吗?比如如果只有1张免费卡,其他全是2血祭或3血祭,这样不行吗?

不行。免费卡不被视为“有效”卡——标准是:

  • 非毛皮
  • 非免费
  • “能在第二回合前打出”

所以当游戏要强制第三张卡时——假设你抽到2血祭和3血祭卡。免费卡不被视为有效卡,游戏会判定“🤷 没有有效卡,算了”然后随机抽一张。

相反,当你有1血祭卡时——游戏检查“有效”卡时会判定“哦,你有1血祭卡!这有效!”并强制该卡。

zentaque:

只在前两张抽牌时计算吗?第三张不会视为有效?

类似。这是因为“能在第二回合前打出”机制——基本上,一张卡被视为“能在第二回合前打出”的条件是其血费用≤手中免费可献祭卡的数量。

假设你抽到松鼠、壁虎和狼。狼现在被视为“能在第二回合前打出”,因为你有两张免费可献祭卡——松鼠和壁虎。既然狼现在有效,就不会强制第三张卡。

本质上区别在于免费卡永远不会有效——而是免费卡会让高费卡变有效。

漏洞

V0.31: 已修复

骨头漏洞终于修复了。

更新日志: 修复:臭名昭著的“GetFairHand”漏洞。玩家能精准指出导致这个存在多年的漏洞的代码在哪一行,真是超现实……

不幸的是,修复这个漏洞又暴露了另一个小漏洞。(见下文。)

img

之前:

这更像疏忽而非漏洞,起始手牌算法似乎将所有骨头费用卡视为第二回合可打出,即使实际不行。

函数DiskCardGame.Deck.CardCanBePlayedByTurn2WithHand用于验证卡牌是否能根据当前手牌在下一回合打出。

但第202行是:

flag2 = (hand.FindAll((CardInfo x) => x.CostTier == 0 && x.HasAbility(Ability.Brittle)).Count <= card.BonesCost);

这会找出所有1)免费且2)有脆骨印记的卡,然后比较其数量与当前卡的骨头费用。但判断条件是免费脆骨卡数量≤骨头费用。

例如,若你有0张脆骨卡(第一章任何手牌都应如此),则需8骨头的红头美洲鹫被视为有效卡,因为0 ≤ 8。

因此在第一章/凯茜模组中,任何骨头费用卡都被视为“第二回合可打出”,因为你总有0脆骨卡,而0永远小于任何骨头需求。

也适用于原版游戏。这是第二章中全骨头卡牌组的起始手牌。所有卡至少需1骨头。若玩家下回合未抽到免费卡,所有卡都无法打出。

img

1 Primadonna#0325制作了模组(在此)“修复”该检查并考虑骨头领主恩赐对骨头卡可打出性的影响。

V0.32: 已修复

1骨头卡不再视为免费。

之前:

(漏洞报告内容)

GetFairHand漏洞修复了!!!

但还有个问题——奇怪的蛋(或其他1骨头卡)被视为CostTier 0,所以仍会干扰。

DiskCardGame.CardInfo.CostTier中:

return this.BloodCost + Mathf.RoundToInt((float)this.BonesCost / 3f) + Mathf.RoundToInt((float)this.energyCost / 2f) + this.gemsCost.Count;

蛋只需1骨头,所以向下取整为0,游戏认为它是免费卡。

这意味着这里的林鼠被视为可打出(感谢@Bert Sampson提供图片)

img

这里的东方泥龟也被视为可打出(感谢@CrushforceX提供图片)

img

毛皮价格

毛皮价格随地图编号变化。

毛皮价格 昂贵毛皮挑战下
兔皮 狼皮 金羊皮 兔皮 狼皮 金羊皮
地图1 2 4 7 地图1 4 8 14
地图2 2 5 9 地图2 4 10 18
地图3 2 6 10 地图3 4 12 20

毛皮融合

原版游戏既有机制。

融合毛皮允许你在毛皮商节点购买融合卡牌。

只要你有至少1张融合毛皮,该类型毛皮的所有交易选项都会显示为融合状态。

例如,若有1张融合金羊皮和3张普通金羊皮,可交易4张融合稀有卡。

若对融合毛皮使用“三重菌术”(将融合过的毛皮与第三张毛皮融合),毛皮商不会给你三重菌术卡。你会得到与普通融合毛皮相同的卡牌选择。

毛皮上的印记对交易无影响。但有建议让印记影响毛皮商选项。见此

img

印记上限

原版游戏既有机制。

正常上限为7个印记:2个先天,4个附加,1个图腾。

启用惹人生厌的开局挑战后,可有8个印记,其中3个为先天。

(原版游戏中死亡卡也可达8印记。)

每张卡只能转移一次印记,因此无菌学家时只能附加1或2个印记。

通过菌学家最多可加4印记,但后续印记会消失。

参见地图节点>菌学家章节示例

img

隐藏印记

原版游戏既有机制。

特定情况下,一张卡可能有多个相同印记,但由于多数印记不可叠加,第二个印记不会显示。但它仍占位并计入印记上限。

这可在沽伯特节点洞穴试炼中观察到。也曾见于菌学家

沽伯特可能改变隐藏印记,表现为新增印记。

img

例如在智慧试炼中,莱西会说某卡有4印记但只显示3个。

待办:补充演示图。期间可查看沽伯特地图节点章节示例。

变更

V0.27:

菌学家修复后,若印记为先天仍可出现重复。

例如,飞蚂蚁可附加空袭印记。

但任何附加的重复印记会被移除/合并为1。

例如,当带有空袭和滋生寄生虫的翠鸟与带有空袭和囤积狂的翠鸟融合时,结果翠鸟不会像之前那样有4附加印记(空袭、滋生寄生虫、空袭、囤积狂),而是3附加印记(空袭、滋生寄生虫、囤积狂)。

之前:

在菌学家处融合时,卡牌可能因隐藏印记达到上限而“丢失”印记。

继承印记的卡牌

总结而言,大多数卡牌继承附加印记但不继承属性增益,以下例外:

  • 筑坝师是继承先天印记的特例。
  • 断尾求生是继承火焰增益的特例。
  • 蚁后什么都不继承。
印记 卡牌 先天印记 附加印记 图腾印记 属性增益 族群
内心之蜂 蜜蜂 N/A
兔子洞 兔子 N/A
蚁后 蚂蚁 N/A
筑坝师 堤坝 N/A
鸣钟人 铃铛 N/A
断尾求生 任意尾巴
幼雏 特殊进化 N/A
挑剔之兽 九头蛇 N/A
克拉肯水袭 触手 ? N/A

可叠加印记

原版游戏既有机制。

漏洞已修复。自V0.27起印记不再叠加。

但图腾丰产之巢仍会叠加——打出卡牌时获得两份复制,一份来自附加印记,一份来自图腾印记。未知是疏忽还是故意。

之前:

这些可叠加是因为第二章菌学家的可合并卡牌。

掘骨人

丰产之巢

哨兵(KCM不可用)

头脑风宝(KCM不可用)

其他印记不可叠加。

投降机制

原版游戏既有机制。

投降判断逻辑见DiskCardGame.Opponent.CanOfferSurrender。

基本规则是:若对手无牌可出,你的总攻击力*≥对手攻击力**,且你的总攻击力不足一回合取胜,对手可投降。

* 总攻击力不计算牌桌带有“厌恶情绪”印记的对位卡。

* 对手牌桌最大攻击力不计入总和,除非启用松鼠鱼挑战。因为你可以无限用松鼠(或第三章的空容器)阻挡牌桌最大攻击力(直到用完)。

攻击力受领袖等效果调整,但计算总和时不考虑卡牌印记(双重攻击)或是否被阻挡。

感谢RageLeague!!!

示例:

玩家总攻击力为1(工蚁)。 莱西总攻击力为0。 = 玩家攻击力>莱西攻击力。

玩家攻击力<6(取胜所需点数)。

img

img

玩家总攻击力为4(白鼬、蚁后)。 莱西总攻击力为1(小麋鹿)。麋鹿不计因松鼠鱼未启用且玩家可无限松鼠阻挡。 = 玩家攻击力>莱西攻击力。

玩家攻击力<6(取胜所需点数)。

img

img

月亮

月之怜悯

当你无牌可抽时,月亮会获得“月之怜悯”而非饥饿,每回合增加攻击力。这是原版游戏既有机制。

击败月亮后也不会出现常规饥饿。

img

变更

V0.27:

根据以下代码,潮汐锁定现在也影响兔子和水生松鼠:

bool flag = playerCard != null && (playerCard.Info.name == “Squirrel” || playerCard.Info.name == “AquaSquirrel” || playerCard.Info.name == “Rabbit”);

img

绕月飞行的兔子。来自Primsine

img

绕月飞行的两只水生松鼠。同样来自Primsine

过量伤害

原版游戏既有机制。

过量伤害被视为第二次攻击。

若卡牌在攻击前排后立即死亡(例如因尖刺铠甲),过量攻击不会触发。因为过量伤害是单独计算的攻击,而卡牌在攻击前就已死亡。

通过过量伤害击杀后排卡牌不会触发某些印记/先天特性效果。

因为这些效果只在卡牌在场时触发,而后排卡尚未打出——它展示的是下回合将打出的卡。

例如,击杀陷阱者后排的奇怪青蛙不会在死亡时生成跳跃陷阱。 在莱西第二阶段击杀仍在后排的死亡卡不会生成负鼠。

例外:

击杀后排石龙子会生成扭动尾巴。需验证仅攻击是否会生成? 尖刺铠甲在后排生效。

待办:验证其他例外。

移动印记组合

冲刺能手和蛮力冲撞为原版游戏既有机制。

移动印记按添加顺序生效。 顺序为:

  1. 先天
  2. 附加
  3. 图腾

img

Αphie! 💫#2603

img

Αphie! 💫: 我要考虑重复读档了因为刚才发生了个啥

img

img

Αphie! 💫:

野牛横冲直撞了两次???然后雄驼鹿又把野牛推走

横冲直撞触发两次——可能与卡牌顺序有关

https://discord.com/channels/529604048773578763/920010818114961408/946336789793234985

Roshibomb: 漏洞成功复现!!

与菌学家无关。单纯给野牛添加移动印记即可 :)

https://discord.com/channels/529604048773578763/920010818114961408/946383800496173197

TnT - Scrybe of Boom:

我认为可能是因为测试时给野牛同时加了蛮力冲撞和冲刺能手,所以它先横冲直撞两次再蛮力冲撞

https://discord.com/channels/529604048773578763/920010818114961408/946479140578668595

视频

https://discord.com/channels/529604048773578763/920010818114961408/946480039283810335

重置机制

在第一张地图终止冒险会替换一张或两张起始兔皮。

终止一次会替换一张为负鼠。

连续终止两次会替换第二张为环形虫。

可通过以下方式恢复毛皮:

  • 击败第一个头目并进入地图2的第一个节点。此后任何时候终止冒险都不会有惩罚。

若在地图2的起始节点结束冒险,不会视为地图2,仍按地图1终止计算。

  • 在任何战斗中死亡。

负鼠/兔皮

终止1次冒险

对话:

你的前一任轻易就认输了。

你赚的毛皮没那么多了。

img

img

负鼠/环形虫

连续终止2次冒险

对话:

2张毛皮就行了吗?

别这么轻易向我投降。

img

img

负鼠/环形虫

连续终止2次冒险

对话:

你很意外?难道想要更多毛皮?

别做个懦夫。

img

img

感谢Noll Reed#4813提供对话文本!!

变更

V0.24:

更新日志: 仅当在第一张地图使用终止冒险卡时才惩罚。正常死亡会以完整2张兔皮开始新冒险。并添加对话说明情况。

之前:

基于过去两次冒险中击败第一张地图头目的次数。

在首个头目前死亡或终止冒险会替换一张起始毛皮为负鼠。

若再次在首个头目前死亡或终止,第二张毛皮替换为环形虫。

击败首个头目一次恢复一张毛皮。连续击败超过一次恢复第二张毛皮。

简言之,基于过去两次冒险:

0次击败 = 负鼠/环形虫

1次击败 = 负鼠/兔皮

2次击败 = 兔皮/兔皮

若起始无毛皮,会获得选卡节点而非毛皮商。

注:之前似乎至少需要到达首个头目才能恢复起始的毛皮,可选择在战斗中死亡,或击败头目后终止冒险。在头目战中退出不会恢复。

但据radiish#9483,似乎需要实际击败头目才能获得毛皮。目前正在核实确认。

特殊机制

过分精简手牌

若牌组少于3张卡,首回合会抽空牌组。

伤害松鼠统计项的计算方式

缝合兽属于松鼠族群,但不计入伤害松鼠统计项

✅ 松鼠被献祭/战斗死亡

❌ 松鼠被钓鱼人钩走

✅ 松鼠被钓鱼人钩走后击杀

❌ 松鼠被钓鱼人钩走后通过诱饵钩更多东西推出棋盘

❌ 松鼠被钓鱼人钩走后进入阶段2时移出棋盘

✅ 松鼠被潮汐锁定拉入轨道

Pages