I like the general idea of making uniques more useful, but only if there's still a significant level of randomness-- the player should not always get something that would be perfect, but it should be very rare for a completely useless unique to spawn, and if a unique does spawn, at least a 50/50 chance that it'll suit your current playstyle.
To that end, I propose a weighted random spawn generator, which can be altered by kill ratios, challenge modes, traits, and previously generated uniques.
For example, at level 1, start off with an evenly weighted selection process, one chance for each unique, selected from a random bucket, giving a 1/23 chance of getting any of the 23 uniques. As the player plays, the chances are altered.
The effect of the weighting should be dependent on the degree to which any situation affects their gameplay options.
- Player starts with AoMR? That's a big restriction that makes a lot of uniques useless, so we'll go with a big weighting change, +4 chances each to blaster/GCB/AFJ/Trigun spawn and -2 chances for non-pistol weapons.
- Player chooses Ammochain? +5 chances to minigun, (assuming minigun works with ammochain) -1 chance for pistol-category uniques that nobody will bother with, +2 chances for non-phasing armor.
- AoB game? -10 chance for non-melee weapons, +2 chances for melee weapons +1 chance for phaseshift/malek armors
- Player chooses Brute? +5 chances to melee uniques
- Player has an armor unique in inventory? -1 chances to armor uniques.
- Player is killing a lot with rockets? +5 chances to missile/rev launchers.
- Shottyman? +5 chances to pancor/assault shotgun
- Triggerhappy? +5 chances to rapid uniques
- Hellrunner? +1 chance to non-gothic armor uniques
- TaN? +1 chance to armor uniques
- Fireangel? +10 chances to missile/rev/AFJ/BFG10k
- SoAG? +2 chances to pistol uniques
The difficult part comes in balancing the weightings, but I feel that a general guideline could look like this:
~50% chance of getting a unique that fits your current playstyle well.
<10% chance of getting something completely useless/unusable.
I'm also in favor of adding weird minor skews to some traits to encourage more random playstyles-- like eagle eye giving +1 chances to missile launcher and phase boots or ironman giving +1 chances to any unique that regenerates ammo. Oh, and this weighting system should be at least mostly unknown to players. Life is just more fun when you get a useful unique, let 'em enjoy it without worrying much about how it happened.