View Single Post
Old March 14, 2011, 21:39   #1
Derakon's Avatar
Join Date: Dec 2009
Posts: 9,024
Derakon is on a distinguished road
Make all artifacts "special" artifacts

There's a number of places in the code that complain about how "special" artifacts (light sources and jewelry, basically) are a big hack and how their generation process should be unified with the normal artifact generation process. I think this is a good idea, though not in the way the comments presumably intended. I say all artifacts should use the special artifact generation process.

To clarify: currently, normal equipment artifacts are generated if the game makes an equipment item, it passes (in order) the good, great, and artifact checks, there is an artifact still to be generated of the appropriate item type, and it passes an appropriate rarity check for the artifact chosen. More or less, anyway; I'm working from memory here.

Conversely, for special artifacts the game just decides to try making a special artifact, then runs the appropriate rarity tests for each one, and if one passes, then bam, special artifact generated.

There's a few warts with artifact generation that the "special" generator obviates. The most obvious is that artifact rarity is tied to base item rarity, so every time the base item rarity gets changed, artifact rarities have to be adjusted to suit. It's also basically impossible to make, say, an artifact Scythe of Slicing native to dlvl 10, whose only special properties are that it aggravates and slays orcs. And it's a bit weird that the level on which a random item lying on the floor is most likely to be Ringil is 20, since that's the native depth of the longsword.

Someone suggested this offhandedly in a recent thread, I forget who, and IMO it's an excellent idea. Looking at make_artifact_special (the function called to make a special artifact, natch), as far as I can tell the only thing that'd need to be changed is that instead of trying each artifact in order, it should try to make a single random artifact.

Derakon is offline   Reply With Quote