diff -Npbaur -x '*.o' -x nethack nethack-3.4.3/src/potion.c nethack-gainability/src/potion.c --- nethack-3.4.3/src/potion.c 2006-08-09 15:19:54.000000000 -0600 +++ nethack-gainability/src/potion.c 2006-08-27 19:58:37.000000000 -0600 @@ -1765,6 +1765,31 @@ dodip() } } + if (potion->otyp == POT_GAIN_ABILITY && + obj->oclass == WAND_CLASS) { + if (potion->cursed && obj->otyp != WAN_NOTHING) + { + pline_The("%s glows %s for a moment.", + xname(obj), hcolor(NH_BLACK)); + obj = poly_obj(obj, WAN_NOTHING); + goto poof; + } + else if (obj->otyp == WAN_NOTHING) + { + int i, prob = rnd(1000); + pline_The("%s glows %s for a moment.", + xname(obj), hcolor(NH_BLUE)); + + //shamelessly borrowed from mkobj + i = bases[WAND_CLASS]; + while((prob -= objects[i].oc_prob) > 0) i++; + + obj = poly_obj(obj, i); + + goto poof; + } + } + if (potion->otyp == POT_OIL) { boolean wisx = FALSE; if (potion->lamplit) { /* burning */