Submitted at
2026-09-20 22:00:25
csharp
AI generated puzzle
public struct WeaponAffix
{
public int RarityTier;
public decimal ModifierValue;
public override int GetHashCode() => (RarityTier, ModifierValue).GetHashCode();
}
public class LootRegistry
{
private readonly Dictionary<WeaponAffix, decimal> _dropRates = new();
public void RegisterAffix(WeaponAffix affix, decimal probability)
{
_dropRates[affix] = probability;
}
public bool TryGetDropRate(WeaponAffix affix, out decimal probability)
{
return _dropRates.TryGetValue(affix, out probability);
}
}
// Usage:
var legendary = new WeaponAffix { RarityTier = 5, ModifierValue = 1.5m };
registry.RegisterAffix(legendary, 0.02m);
legendary.ModifierValue *= 2.0m; // caller scales the original
registry.TryGetDropRate(legendary, out var rate); // false — rare drop vanished!