Slime Produce

Slime Produce

史莱姆球会掉落基于史莱姆窝中史莱姆特性的独特资源,默认情况下与原始版本中颜色对应的史莱姆掉落物一致。所有掉落表均可完全自定义!

游戏玩法机制

概述

每当史莱姆球在世界上生成时,它会被分配一个位于同一位置的随机史莱姆。被打破时,它会根据所选史莱姆的特性掉落物品。默认情况下,这些物品本质上与原版中对应颜色史莱姆的掉落物相同。


默认掉落

以下是每种颜色史莱姆的默认掉落列表,按优先级排序。所有掉落互斥;例如,一个红、绿、蓝分量均大于230的史莱姆球永远不会掉落任何石头,因为配置文件中白色史莱姆掉落表排在灰色史莱姆掉落表之前,且白色史莱姆掉落表被标记为互斥。第一代史莱姆指从蛋中孵化而非繁殖产生的史莱姆。史莱姆的特殊数字是一个0到99之间的随机整数,在孵化/生成时分配。

虎纹史莱姆掉落

  • 15-25 树液
  • 1-2 翡翠
  • 4-8 姜 (65%)
  • 5-10 火山晶石 (50%, 仅第一代)
  • 1-2 熔岩菇 (33%, 仅第一代)
  • 1-2 龙牙 (33%, 仅第一代)

棕色史莱姆掉落 (49 < R < 101, 24 < G < 51, B < 26)

  • 30-60 木材
  • 5-10 硬木

黑色史莱姆掉落 (R,G,B < 80)

  • 5-10 煤炭
  • 1-2 海王石 (5%)
  • 1-2 蓝方石 (5%)

黄色史莱姆掉落 (R > 200, 绿色 > 180, 蓝色 < 50)

  • 10-20 金矿石

红色史莱姆掉落 (R > 220, 150 > G > 90, B < 50)

  • 10-20 铜矿石

白色史莱姆掉落 (R,G,B > 230)

  • 2-4 精炼石英 (仅当R为奇数时)
  • 2-4 精炼石英 (仅当R和G均为奇数时,与上一掉落叠加)
  • 10-20 铁矿石 (仅当R和G均为偶数时)
  • 1-2 钻石 (仅当R,G,B均为偶数,或R,G,B均为255时)

灰色史莱姆掉落 (R,G,B > 150)

  • 20-40 石头

紫色史莱姆掉落 (R > 150, G < 50, B > 180)

  • 5-10 铱矿石 (仅当特殊数字能被4整除(第一代)或为偶数(非第一代)时)
  • 1 铱锭 (7.2%, 仅当第一代且特殊数字满足上述条件时)

配置

史莱姆球掉落完全可自定义(不过它们始终会掉落史莱姆,并有几率掉落石化史莱姆)。配置文件中的字段如下:

启用特殊颜色掉落(EnableSpecialColorDrops,默认false)

启用后,颜色与染料颜色对应的史莱姆球有机会掉落与该染料颜色共享的随机物品。这可能不够平衡,因此默认关闭,但笔者认为这是一个足够有趣的功能,值得保留。

特殊颜色最小掉落数(SpecialColorMinDrop,默认1)

这是一个整数,代表当启用特殊颜色掉落时,有机会掉落的有色物品的最小数量。非常大的值可能导致卡顿或崩溃,请保持合理。此值包含在内。

特殊颜色最大掉落数(SpecialColorMaxDrop,默认1)

同上,但这是最大掉落数量。此值包含在内。

特殊颜色掉落几率(SpecialColorDropChance,默认0.05)

启用特殊颜色掉落时,有色物品的掉落几率。此值应在0到1之间(包含)。


掉落表

配置文件中的最后一项是掉落表列表。每个掉落表包含三个字段:表达式(Expression)、物品掉落(ItemDrops) 和 互斥(Exclusive)。

表达式字段包含一个布尔表达式的字符串,史莱姆球可能满足或不满足。例如,表达式 "R > 230 AND G > 230 AND B > 230 AND R % 2 = 1" 仅当史莱姆球关联的史莱姆颜色的红、绿、蓝分量均严格大于230,且红色分量为奇数时才会满足。表达式的语法详见此处。可在表达式中使用的史莱姆产出专属变量如下:

  • R - 表示史莱姆颜色红色分量的整数。
  • G - 表示史莱姆颜色绿色分量的整数。
  • B - 表示史莱姆颜色蓝色分量的整数。
  • Tiger - 表示史莱姆是否为虎纹史莱姆的布尔值。
  • Prismatic - 表示史莱姆是否为彩虹史莱姆的布尔值。据笔者所知,在原版中无法在史莱姆小屋获得彩虹史莱姆,因此如果你没有允许此功能的模组,该变量可能无用。
  • Cute - 表示史莱姆是否为可爱的布尔值。当然,我们都知道每只史莱姆都很可爱,但游戏代码中“可爱”实际决定的是史莱姆头上是否有绒球。可爱度在生成时随机决定,大约49%的史莱姆是可爱的。
  • FirstGeneration - 表示史莱姆是从蛋中孵化(第一代史莱姆)还是由现有史莱姆繁殖(非第一代)的布尔值。
  • SpecialNumber - 范围从0到99的整数,在史莱姆生成时随机分配。
  • Name - 表示史莱姆名称的字符串。

物品掉落字段是一个对象列表,每个对象包含四个值:限定物品ID(QualifiedItemId)、最小掉落(MinDrop)、最大掉落(MaxDrop) 和 掉落几率(DropChance)。限定物品ID代表掉落物品的物品ID,枚举列表见此处。最小掉落和最大掉落代表该物品可以掉落的最小和最大数量。掉落几率是0到1之间的数字,代表指定物品掉落的几率。

当史莱姆球被打破时,它会按顺序逐一检查配置文件中的每个掉落表。对于每个掉落表,它会检查是否满足关联的表达式。如果满足,则关联的物品掉落将被添加到尝试掉落列表中。如果互斥字段设置为True,则它会停止查找掉落表列表并立即开始掉落物品;否则,它会继续检查。


常见问题

  • 问:这个模组与<插入其他模组>兼容吗?
  • 答:很可能兼容,包括修改史莱姆小屋的模组。但是,目前不支持能自动收集史莱姆球的自动采集器模组,在这种情况下你只会获得默认的原版掉落。
  • 问:我可以在现有存档中安全地添加/移除这个模组吗?
  • 答:可以!
  • 问:我可以添加自己的自定义表达式变量来访问诸如史莱姆生命值、伤害等特性吗?
  • 答:目前不行,但笔者计划在未来为此添加API支持,并且代码结构已经使其变得相当容易。

联系方式

请随时通过本模组的论坛标签或官方星露谷物语Discord(@exotico)联系笔者,以提出请求、建议平衡性更改/改进,或报告你遇到的任何问题!此外,你可以在Github上找到源代码。