Digging down on a magical trap causes it to explode
This commit is contained in:
@@ -1269,6 +1269,7 @@ separate level flags premapped and sokoban
|
|||||||
hero had worn amulet of magical breathing become unworn during theft by nymph,
|
hero had worn amulet of magical breathing become unworn during theft by nymph,
|
||||||
dropped it to be able to crawl out of water, so it wasn't there when
|
dropped it to be able to crawl out of water, so it wasn't there when
|
||||||
game tried to transfer it to thief, triggering an "object lost" panic
|
game tried to transfer it to thief, triggering an "object lost" panic
|
||||||
|
digging down on a magical trap causes it to explode
|
||||||
|
|
||||||
|
|
||||||
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
Fixes to 3.7.0-x General Problems Exposed Via git Repository
|
||||||
|
|||||||
@@ -802,7 +802,10 @@ dighole(boolean pit_only, boolean by_magic, coord *cc)
|
|||||||
&& (lev->wall_info & W_NONDIGGABLE) != 0)) {
|
&& (lev->wall_info & W_NONDIGGABLE) != 0)) {
|
||||||
pline_The("%s %shere is too hard to dig in.", surface(dig_x, dig_y),
|
pline_The("%s %shere is too hard to dig in.", surface(dig_x, dig_y),
|
||||||
(dig_x != u.ux || dig_y != u.uy) ? "t" : "");
|
(dig_x != u.ux || dig_y != u.uy) ? "t" : "");
|
||||||
|
} else if (ttmp && is_magical_trap(ttmp->ttyp)) {
|
||||||
|
explode(dig_x, dig_y, 0, 20 + d(3, 6), TRAP_EXPLODE, EXPL_MAGICAL);
|
||||||
|
deltrap(ttmp);
|
||||||
|
newsym(dig_x, dig_y);
|
||||||
} else if (is_pool_or_lava(dig_x, dig_y)) {
|
} else if (is_pool_or_lava(dig_x, dig_y)) {
|
||||||
pline_The("%s sloshes furiously for a moment, then subsides.",
|
pline_The("%s sloshes furiously for a moment, then subsides.",
|
||||||
hliquid(is_lava(dig_x, dig_y) ? "lava" : "water"));
|
hliquid(is_lava(dig_x, dig_y) ? "lava" : "water"));
|
||||||
|
|||||||
@@ -649,6 +649,11 @@ explode(
|
|||||||
else if (str != gk.killer.name && str != hallu_buf)
|
else if (str != gk.killer.name && str != hallu_buf)
|
||||||
Strcpy(gk.killer.name, str);
|
Strcpy(gk.killer.name, str);
|
||||||
gk.killer.format = KILLED_BY_AN;
|
gk.killer.format = KILLED_BY_AN;
|
||||||
|
} else if (olet == TRAP_EXPLODE) {
|
||||||
|
gk.killer.format = NO_KILLER_PREFIX;
|
||||||
|
Snprintf(gk.killer.name, sizeof gk.killer.name,
|
||||||
|
"caught %sself in a %s", uhim(),
|
||||||
|
str);
|
||||||
} else if (type >= 0 && olet != SCROLL_CLASS) {
|
} else if (type >= 0 && olet != SCROLL_CLASS) {
|
||||||
gk.killer.format = NO_KILLER_PREFIX;
|
gk.killer.format = NO_KILLER_PREFIX;
|
||||||
Snprintf(gk.killer.name, sizeof gk.killer.name,
|
Snprintf(gk.killer.name, sizeof gk.killer.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user