KhymChanur: As discussed here, pseudo-id doesn't always work quite right, especially for Lost Souls, who will pseudo-id an Indestructable Ring of Slow Digestion as "excellent" because it has an ego but isn't cursed, and then waste a scarce Scroll of Identification on it. One way to deal with this would be to use the value of an item as an indicator of it's quality, rather than merely the absence or presence of egos. However, this also won't quite work as it's done now. For instance, adding the Fireproof ego to a Scroll of Light will boost it's value from 15 to 1,015, even though it's really not worth nearly that much.

My proposal is to let the ego data-structure have a cost-multiplier field as well as a cost-adder field, so that an ego can multiply the base value of an object instead of, or in addition to, simply adding to the value. The code would look something like:

value = (obj->cost * ego1->cost_mult * ego2->cost_mult) + ego1->cost_add + ego2->cost_add;

So the Fireproof ego could have a multiplier of 1.5 with a simple addition of 0, so it would gain a Scroll of Light only about 7 AU in value, but gain a Tome of Foo about 10,000 AU in value.

While we're at it, we should probably call a module-overidable Lua function which will provide its own cost multiplier and cost addition. This will let modules define their own values for pluses to armour and weapons. It will also let us, for example, make a Mage Staff of Power (+10) have a much higher value than a Mage Staff of Power (+1), even though they have the exact same base objects and exact same egos.

Developers Corner/Proposals/New method for calculating an object's value (last edited 2005-06-22 09:09:16 by KhymChanur)