装备是 RPG 的核心驱动力。本系统参考 Path of Exile 和 Diablo II 的词缀机制,强调随机性与深度的结合。
| 稀有度 | 颜色 | 词缀槽位 (Affix Slots) | 说明 |
|---|---|---|---|
| 普通 (Normal) | ⚪ 白 | 0 | 仅有基础属性 (Base Stats)。可用作打造底材。 |
| 魔法 (Magic) | 🔵 蓝 | 1-2 | 1前缀 或 1后缀 或 1前1后。数值通常较高。 |
| 稀有 (Rare) | 🟡 黄 | 3-6 | 最多3前缀3后缀。后期的主力装备。 |
| 传奇 (Unique) | 🟠 橙 | 固定 | 拥有特殊机制词条,无法随机生成。 |
为了保证装备的随机性与平衡性,词缀被严格分为 前缀 (Prefixes) 和 后缀 (Suffixes)。
通常增加装备的“本体属性”。
通常提供“额外增益”。
核心原则: 传奇装备不应该只是“数值大”。它们应该提供构建流派 (Build-Defining) 的机制。
为了减少垃圾时间,采用伪随机智能掉落:
// 伪代码:生成一件随机稀有装备
Item GenerateRareItem(int monsterLevel) {
// 1. 随机选择底材 (Base Type)
Item baseItem = SelectBaseItem(monsterLevel);
baseItem.iLvl = monsterLevel;
// 2. 决定词缀数量 (3-6)
int affixCount = Random.Range(3, 7);
// 3. 随机词缀
int prefixCount = 0;
int suffixCount = 0;
while(baseItem.Affixes.Count < affixCount) {
bool tryPrefix = Random.value > 0.5f;
// 强制平衡前缀后缀 (最多3前3后)
if (prefixCount >= 3) tryPrefix = false;
if (suffixCount >= 3) tryPrefix = true;
Affix newAffix;
if (tryPrefix) {
newAffix = AffixTable.RollPrefix(baseItem.Tags, baseItem.iLvl);
prefixCount++;
} else {
newAffix = AffixTable.RollSuffix(baseItem.Tags, baseItem.iLvl);
suffixCount++;
}
// 检查互斥组 (ModGroup)
if (!baseItem.HasConflict(newAffix.Group)) {
baseItem.AddAffix(newAffix);
}
}
return baseItem;
}
Design/Numerical_Manual.md (定义了属性的权重和价值)。Design/Systems/Economy_And_Inflation_Model.md (定义了物品的回收和交易价值)。Design/Systems/Loot_Table_Rules.md (定义了 Drop Table 和权重)。