Game_Num_Basics_And_Calc

🛡️ 装备与物品化设计 (Itemization System)

装备是 RPG 的核心驱动力。本系统参考 Path of ExileDiablo II 的词缀机制,强调随机性与深度的结合。


1. 装备部位 (Equipment Slots)


2. 稀有度体系 (Rarity)

稀有度 颜色 词缀槽位 (Affix Slots) 说明
普通 (Normal) ⚪ 白 0 仅有基础属性 (Base Stats)。可用作打造底材。
魔法 (Magic) 🔵 蓝 1-2 1前缀 或 1后缀 或 1前1后。数值通常较高。
稀有 (Rare) 🟡 黄 3-6 最多3前缀3后缀。后期的主力装备。
传奇 (Unique) 🟠 橙 固定 拥有特殊机制词条,无法随机生成。

3. 词缀池结构 (Affix Pool)

为了保证装备的随机性与平衡性,词缀被严格分为 前缀 (Prefixes)后缀 (Suffixes)

3.1 前缀 (Prefixes) - 决定基础数值

通常增加装备的“本体属性”。

3.2 后缀 (Suffixes) - 决定辅助属性

通常提供“额外增益”。

3.3 物品等级 (Item Level - iLvl)


4. 传奇装备设计理念 (Uniques)

核心原则: 传奇装备不应该只是“数值大”。它们应该提供构建流派 (Build-Defining) 的机制。

4.1 案例分析


5. 智能掉落 (Smart Loot) vs 纯随机

为了减少垃圾时间,采用伪随机智能掉落

  1. 职业偏好: 掉落的装备有 80% 几率偏向当前职业的主属性(如法师偏向智力)。
  2. 词缀互斥: 不会生成完全冲突的词缀(如“物理伤害增加”和“法术伤害增加”出现在同一把剑上)。

6. 物品生成算法 (Generation Algorithm)

// 伪代码:生成一件随机稀有装备
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;
}

7. 引用与参考 (References)