BWIKI 全站将于 9 月 3 日(全天)进行维护,期间无法编辑任何页面或发布新的评论。
模组:武器
← 物品
此页面解释了游戏如何存储和解析“武器”类型的物品数据。对于物品数据的概述,请参阅模组:物品数据。
概览
武器是能够被玩家挥舞或使用以杀伤怪物的物品。
武器的物品类型为 (W)
(在 C# 代码中,也写作 ItemRegistry.type_weapon
),其数据存储在 Data/Weapons,其贴图默认存储在 TileSheets/weapons,其代码存储在 StardewValley.Tools.MeleeWeapon 和 StardewValley.Tools.Slingshot。
数据格式
Data/Weapons中的数据为一个“字符串 → 数据模型”查询,其中:
- 键为武器的非限定性物品ID。
- 值为包含如下字段的模型。
武器基本信息
字段 | 效果 |
---|---|
Name | 内部名称 |
DisplayName Description |
用于显示翻译后名称和描述的模板字符串。 |
Type | 武器类型。可能取值为:0(刀)、1(匕首)、2(棒或锤)或 3(剑)。 |
外观
字段 | 效果 |
---|---|
Texture | 该武器所在的贴图集的素材名称。 |
SpriteIndex | 物品在贴图集Texture中的索引。0代表左上角。 |
数值
字段 | 效果 |
---|---|
MinDamage MaxDamage |
使用此武器对怪物的最小和最大伤害。 |
Knockback | (可选) 目标被武器击中时后退多远。为相对于生锈的剑之类的基础武器的乘数(例1.5代表生锈的剑的150%)。默认为1。 |
Speed | (可选) 玩家可以多快地挥舞此武器。每点相当于40毫秒,0点相当于0毫秒。这会和玩家的武器速度叠加。默认为0。 |
Precision | (可选) 减少miss的概率。默认为0。 |
Defense | (可选) 减少玩家受到的伤害。默认为0。 |
AreaOfEffect | (可选) 略增大效果区域。默认为0。 |
CritChance | (可选) 暴击几率,为 0(从不)至 1(每次)之间的小数。其中,0.02为默认值。 |
CritMultiplier | (可选) 暴击所造成的伤害是普通攻击的多少倍。可以为小数。默认为3。 |
游戏逻辑
字段 | 效果 |
---|---|
CanBeLostOnDeath | 玩家晕倒后此工具是否丢失。默认为true。 |
MineBaseLevel MineMinLevel |
(可选) 影响矿井宝箱掉落此武器的基础层数和最小层数。默认为-1,代表不可自动掉落。 |
高级
字段 | 效果 | ||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Projectiles | (可选) 使用该武器时发射的抛射物,它会按直线运动,直到击中怪物、造成伤害。会分别发射列表中列出的所有抛射物。
此字段为包含如下字段的数据模型所组成的列表(列表中每项都会生成一个抛射物):
注意这些实际上是武器发射的魔法抛射物,不能像弹弓一样直接瞄准。 | ||||||||||||||||||||||||||||||
CustomFields | 此条目的自定义字段。 |
武器的类别被硬编码为-98(Object.weaponCategory)。
实现说明
弹弓说明
矿井宝箱掉落
当玩家打碎矿井中的宝箱时,有一定概率掉落物品。如下所示为选取掉落物的机制[1]:
- 匹配MineMinLevel低于当前矿井层数的物品。
- 从上一步所得列表中,基于MineBaseLevel和当前矿井层数之差进行概率检查。其中,概率为中心落在基础层数的钟形曲线:
层数差 概率 0 100% 5 92% 10 71% 15 46% 20 25% 25 4% e-(当前层数 - 基础层数)2 / (2 * 122)
计算。) - 寻找层数差最小的武器,将其加入列表(若此物品在第二步中被选中,则有双倍几率掉落)。
- 从余下武器列表中随机选取一个掉落物。
参考
- ↑ 参见游戏代码中的Utility.getUncommonItemForThisMineLevel
另请参阅
- 模组:物品数据提供了物品数据的概述性参考。