diff --git a/src/exper.c b/src/exper.c index 06456e0c0..675375ebe 100644 --- a/src/exper.c +++ b/src/exper.c @@ -293,9 +293,11 @@ boolean incr; /* true iff via incremental experience growth */ u.uexp = newuexp(u.ulevel); } ++u.ulevel; + pline("Welcome %sto experience level %d.", + u.ulevelmax < u.ulevel ? "" : "back ", + u.ulevel); if (u.ulevelmax < u.ulevel) u.ulevelmax = u.ulevel; - pline("Welcome to experience level %d.", u.ulevel); adjabil(u.ulevel - 1, u.ulevel); /* give new intrinsics */ reset_rndmonst(NON_PM); /* new monster selection */ } diff --git a/src/potion.c b/src/potion.c index 4925b27b0..5daa9fbcc 100644 --- a/src/potion.c +++ b/src/potion.c @@ -577,6 +577,18 @@ register struct obj *otmp; if (++i >= A_MAX) i = 0; } + + /* when using the potion (not the spell) also restore lost levels, + to make the potion more worth keeping around for players with + the spell or with a unihorn; this is better than full healing + in that it can restore all of them, not just half, and a + blessed potion restores them all at once */ + if (otmp->otyp == POT_RESTORE_ABILITY && + u.ulevel < u.ulevelmax) { + do { + pluslvl(FALSE); + } while (u.ulevel < u.ulevelmax && otmp->blessed); + } } break; case POT_HALLUCINATION: