diff --git a/Source/items.cpp b/Source/items.cpp index 706611966..a430fe17f 100644 --- a/Source/items.cpp +++ b/Source/items.cpp @@ -3224,20 +3224,19 @@ Item *SpawnUnique(_unique_items uid, Point position, std::optional level /* while (AllItemsList[idx].iItemId != UniqueItems[uid].UIItemId) idx++; - if (gbIsMultiplayer) { + if (sgGameInitInfo.nDifficulty == DIFF_NORMAL) { + GetItemAttrs(item, static_cast<_item_indexes>(idx), curlv); + GetUniqueItem(*MyPlayer, item, uid); + SetupItem(item); + } else { if (level) curlv = *level; const ItemData &uniqueItemData = AllItemsList[idx]; _item_indexes idx = GetItemIndexForDroppableItem(false, [&uniqueItemData](const ItemData &item) { - return item.itype == uniqueItemData.itype || (uniqueItemData.itype == ItemType::Amulet && item.itype == ItemType::Ring); + return item.itype == uniqueItemData.itype; }); SetupAllItems(*MyPlayer, item, idx, AdvanceRndSeed(), curlv * 2, 15, true, false, false); } - if (!gbIsMultiplayer || item._iMagical == ITEM_QUALITY_UNIQUE) { - GetItemAttrs(item, static_cast<_item_indexes>(idx), curlv); - GetUniqueItem(*MyPlayer, item, uid); - SetupItem(item); - } if (sendmsg) NetSendCmdPItem(false, CMD_SPAWNITEM, item.position, item);