summaryrefslogtreecommitdiffstats
path: root/crawl-ref/source/ghost.cc
diff options
context:
space:
mode:
authordshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-15 11:41:50 +0000
committerdshaligram <dshaligram@c06c8d41-db1a-0410-9941-cceddc491573>2007-10-15 11:41:50 +0000
commitcceb96c98028adfaa93a7613e363022cc77ec095 (patch)
tree073cfb63a04a2e479b9c52680467b0e28ea65bf4 /crawl-ref/source/ghost.cc
parent7828ee2a9bdec7e8a415872780333ebc2146ebda (diff)
downloadcrawl-ref-cceb96c98028adfaa93a7613e363022cc77ec095.tar.gz
crawl-ref-cceb96c98028adfaa93a7613e363022cc77ec095.zip
Fixed bad treatment of ghosts and pandemonium lords that get the delayed fireball spell. Also allow pan lords to get orc slaying or disruption brands if the player merits it.
git-svn-id: https://crawl-ref.svn.sourceforge.net/svnroot/crawl-ref/trunk@2469 c06c8d41-db1a-0410-9941-cceddc491573
Diffstat (limited to 'crawl-ref/source/ghost.cc')
-rw-r--r--crawl-ref/source/ghost.cc8
1 files changed, 6 insertions, 2 deletions
diff --git a/crawl-ref/source/ghost.cc b/crawl-ref/source/ghost.cc
index 21812c5a8d..c3aa4c907a 100644
--- a/crawl-ref/source/ghost.cc
+++ b/crawl-ref/source/ghost.cc
@@ -158,11 +158,13 @@ void ghost_demon::init_random_demon()
values[ GVAL_BRAND ] = random2(17);
/* some brands inappropriate (eg holy wrath) */
} while (values[ GVAL_BRAND ] == SPWPN_HOLY_WRATH
- || values[ GVAL_BRAND ] == SPWPN_ORC_SLAYING
+ || (values[ GVAL_BRAND ] == SPWPN_ORC_SLAYING
+ && you.mons_species() != MONS_ORC)
|| values[ GVAL_BRAND ] == SPWPN_PROTECTION
|| values[ GVAL_BRAND ] == SPWPN_FLAME
|| values[ GVAL_BRAND ] == SPWPN_FROST
- || values[ GVAL_BRAND ] == SPWPN_DISRUPTION);
+ || (values[ GVAL_BRAND ] == SPWPN_DISRUPTION
+ && you.holiness() != MH_UNDEAD));
}
// is demon a spellcaster?
@@ -440,6 +442,8 @@ int ghost_demon::translate_spell(int spel) const
case SPELL_SYMBOL_OF_TORMENT:
/* Too powerful to give ghosts Torment for Agony? Nah. */
return (SPELL_SYMBOL_OF_TORMENT);
+ case SPELL_DELAYED_FIREBALL:
+ return (SPELL_FIREBALL);
default:
break;
}