buried punishment ball

Prevent burying a ball from ending your punishment.

When you bury the ball, internally NetHack Punishment
ceases, but a new trap type of TT_BURIEDBALL  immediately
kicks in (acting similar to TT_INFLOOR in some ways).
You can eventually work the ball free (or teleport, etc.),
but that will just return you back to normal Punishment.
This commit is contained in:
nethack.allison
2003-03-11 03:40:17 +00:00
parent 9fe995d2a3
commit 176d31c980
14 changed files with 198 additions and 29 deletions
+14 -2
View File
@@ -231,9 +231,15 @@ teleds(nux, nuy, allow_drag)
register int nux,nuy;
boolean allow_drag;
{
boolean ball_active = (Punished && uball->where != OBJ_FREE),
ball_still_in_range = FALSE;
boolean ball_active, ball_still_in_range;
if (u.utraptype == TT_BURIEDBALL) {
/* unearth it */
buried_ball_to_punishment();
}
ball_active = (Punished && uball->where != OBJ_FREE),
ball_still_in_range = FALSE;
/* If they have to move the ball, then drag if allow_drag is true;
* otherwise they are teleporting, so unplacebc().
* If they don't have to move the ball, then always "drag" whether or
@@ -646,6 +652,9 @@ level_tele()
}
}
if (u.utrap && u.utraptype == TT_BURIEDBALL)
buried_ball_to_punishment();
if (!next_to_u()) {
You(shudder_for_moment);
return;
@@ -766,6 +775,9 @@ register struct trap *ttmp;
{
struct d_level target_level;
if (u.utrap && u.utraptype == TT_BURIEDBALL)
buried_ball_to_punishment();
if (!next_to_u()) {
You(shudder_for_moment);
return;