Viewing Issue Simple Details
[ Jump to Notes ]
[ Wiki ]
|
[ View Advanced ]
[ Issue History ]
[ Print ]
|
ID |
Category |
Severity |
Reproducibility |
Date Submitted |
Last Update |
0005827 |
[DCSS] Bug Report |
minor |
always |
2012-06-23 19:31 |
2012-06-23 23:12 |
|
Reporter |
sgrunt |
View Status |
public |
|
Assigned To |
KiloByte |
Priority |
normal |
Resolution |
done |
|
Status |
closed |
|
Product Branch |
0.11 ancient branch |
|
Summary |
0005827: Monster-cast Leda's Liquefaction persists indefinitely after monster death |
Description |
There aren't any monsters that have the ability to use this spell at present, but the code for it is there, and it can be assigned through MONSTER: definitions.
In any case, if you kill a monster that has cast this spell while the effect persists, it does not time out and persists (apparently) indefinitely. (It might be cancelled after another monster uses an area-of-effect spell such as Silence, but I haven't checked this.)
The attached patch has the spell expire on death, as with Silence. |
Additional Information |
|
Tags |
No tags attached. |
|
Attached Files |
crawl-monster-liquefaction-expiry.patch [^] (1,644 bytes) 2012-06-23 19:31 [Show Content] [Hide Content]From da2705666adddfd50d4e5f6e862270512aeecff9 Mon Sep 17 00:00:00 2001
From: Steve Melenchuk <smelenchuk@gmail.com>
Date: Sat, 23 Jun 2012 11:27:18 -0600
Subject: [PATCH] Make monster casts of Leda's Liquefaction expire on
death.
This prevents the effect from persisting indefinitely if the monster
dies while the effect is in progress.
---
crawl-ref/source/mon-ench.cc | 2 +-
crawl-ref/source/mon-stuff.cc | 3 +++
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/crawl-ref/source/mon-ench.cc b/crawl-ref/source/mon-ench.cc
index de713a5..a426a40 100644
--- a/crawl-ref/source/mon-ench.cc
+++ b/crawl-ref/source/mon-ench.cc
@@ -1068,7 +1068,6 @@ void monster::apply_enchantment(const mon_enchant &me)
case ENCH_LIFE_TIMER:
case ENCH_LEVITATION:
case ENCH_DAZED:
- case ENCH_LIQUEFYING:
case ENCH_FAKE_ABJURATION:
case ENCH_RECITE_TIMER:
case ENCH_INNER_FLAME:
@@ -1089,6 +1088,7 @@ void monster::apply_enchantment(const mon_enchant &me)
break;
case ENCH_SILENCE:
+ case ENCH_LIQUEFYING:
decay_enchantment(me);
invalidate_agrid();
break;
diff --git a/crawl-ref/source/mon-stuff.cc b/crawl-ref/source/mon-stuff.cc
index 85344c6..8cdf7d8 100644
--- a/crawl-ref/source/mon-stuff.cc
+++ b/crawl-ref/source/mon-stuff.cc
@@ -1495,6 +1495,9 @@ int monster_die(monster* mons, killer_type killer,
// Same for silencers.
mons->del_ench(ENCH_SILENCE);
+ // ... and liquefiers.
+ mons->del_ench(ENCH_LIQUEFYING);
+
crawl_state.inc_mon_acting(mons);
ASSERT(!(YOU_KILL(killer) && crawl_state.game_is_arena()));
--
1.7.8.6
|
|