summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/effects.cc
diff options
context:
space:
mode:
Diffstat (limited to 'crawl-ref/source/effects.cc')
-rw-r--r--crawl-ref/source/effects.cc30
1 files changed, 19 insertions, 11 deletions
diff --git a/crawl-ref/source/effects.cc b/crawl-ref/source/effects.cc
index 4f445579fd..951a37e139 100644
--- a/crawl-ref/source/effects.cc
+++ b/crawl-ref/source/effects.cc
@@ -1430,31 +1430,39 @@ static int _acquirement_wand_subtype()
int w = 0;
// First, weight according to usefulness.
- // (The numbers are approximately percentages.)
switch (type)
{
- case WAND_HASTING:
+ case WAND_HASTING: // each 17.9%, group unknown each 26.3%
case WAND_HEALING:
+ w = 25; break;
+ case WAND_TELEPORTATION: // each 10.7%, group unknown each 17.6%
+ case WAND_INVISIBILITY:
w = 15; break;
- case WAND_TELEPORTATION:
+ case WAND_FIRE: // each 5.7%, group unknown each 9.3%
+ case WAND_COLD:
+ case WAND_LIGHTNING:
+ case WAND_DRAINING:
+ w = 8; break;
+ case WAND_DIGGING: // each 3.6%, group unknown each 6.25%
case WAND_FIREBALL:
- w = 10; break;
- case WAND_INVISIBILITY:
- case WAND_DIGGING:
case WAND_DISINTEGRATION:
case WAND_POLYMORPH_OTHER:
- w = 7; break;
- case WAND_FIRE:
- case WAND_COLD:
- case WAND_LIGHTNING:
w = 5; break;
+ case WAND_FLAME: // each 0.7%, group unknown each 1.4%
+ case WAND_FROST:
+ case WAND_CONFUSION:
+ case WAND_PARALYSIS:
+ case WAND_SLOWING:
+ case WAND_ENSLAVEMENT:
+ case WAND_MAGIC_DARTS:
+ case WAND_RANDOM_EFFECTS:
default:
w = 1; break;
}
// Unknown wands get another huge weight bonus.
if (get_ident_type(OBJ_WANDS, type) == ID_UNKNOWN_TYPE)
- w += 10;
+ w *= 2;
total += w;
if (x_chance_in_y(w, total))