I'm currently working on a better way of generating the randart set as a whole, and could do with a sanity check on my thinking.
The current method is approximately:
That last one is the killer, because if you have a relatively unlikely tval (boots, say), it's really easy to end up with less than 4 and you start again.
My proposed new system is approximately this:
I think this will be efficient. One consequence I can see is that all randart DSMs will be really good, being no worse than 10% less than the power of the worst of the standart ones (probably Razorback) - I don't think that's a big problem.
Anyone see any bad consequences, or flaws in my thinking?
The current method is approximately:
- Measure the power of all the standard artifacts (for these purposes I'm ignoring how this is done)
- Go through the standard artifacts one by one doing the following:
- Choose an item to base the randomised artifact on, based roughly on the standart distribution (although the large number of swords and polearms is reduced to make a viable set more likely)
- If the power of this artifact is too great for an item of this tval, try (a) again
- If the power of the base item is too close to the artifact power (so the result would have few properties beyond those of the base item) or too low (so it would need too many added properties), try (a) again
- Make an artifact on the base item
- If the resulting list fails to reach minimum quantities of tvals:
Code:"bow", 4) "hafted", 5) "polearm", 5) "sword", 5) "boots", 4) "gloves", 4) "helm", 3) "crown", 1) "shield", 4) "cloak", 4) "soft armor", 2) "hard armor", 2) "dragon armor", 1) "light", 3) "amulet", 3) "ring", 3)
That last one is the killer, because if you have a relatively unlikely tval (boots, say), it's really easy to end up with less than 4 and you start again.
My proposed new system is approximately this:
- Measure all the standarts
- Set a minimum number for each tval (currently they're hard-coded as above - I'd prefer saying something like at least 80% of the number in the standart set)
- Set appropriate power bounds for each tval (something like no more than 10% less than the minimum for that tval in the standarts, and no more than 10% more than the maximum)
- Pick upfront, for each tval, a collection of artifacts to scramble which fit within the power bounds
- Allocate the remaining artifacts to tvals randomly according to the standart distribution (enforcing the bounds)
- For each tval, pick appropriate base items for each artifact (these should exist because of the way the bounds were set) and scramble them
I think this will be efficient. One consequence I can see is that all randart DSMs will be really good, being no worse than 10% less than the power of the worst of the standart ones (probably Razorback) - I don't think that's a big problem.
Anyone see any bad consequences, or flaws in my thinking?
Comment