Mercurial > hg > early-roguelike
diff urogue/status.c @ 256:c495a4f288c6
Import UltraRogue from the Roguelike Restoration Project (r1490)
author | John "Elwin" Edwards |
---|---|
date | Tue, 31 Jan 2017 19:56:04 -0500 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/urogue/status.c Tue Jan 31 19:56:04 2017 -0500 @@ -0,0 +1,52 @@ +/* + status.c - functions for complex status determination of monsters/objects + + UltraRogue: The Ultimate Adventure in the Dungeons of Doom + Copyright (C) 1992, 1993, 1995 Herb Chong + All rights reserved. + + See the file LICENSE.TXT for full copyright and licensing information. +*/ + +#include "rogue.h" + +/* + has_defensive_spell() + has monster cast a defensive spell. + Any flags added here must also be in player_powers[]. +*/ + +int +has_defensive_spell(struct thing th) +{ + if (on(th, HASOXYGEN)) + return(TRUE); + if (on(th, CANFLY)) + return(TRUE); + if (on(th, CANINWALL)) + return(TRUE); + if (on(th, CANREFLECT)) + return(TRUE); + if (on(th, CANSEE)) + return(TRUE); + if (on(th, HASMSHIELD)) + return(TRUE); + if (on(th, HASSHIELD)) + return(TRUE); + if (on(th, ISHASTE)) + return(TRUE); + if (on(th, ISREGEN)) + return(TRUE); + if (on(th, ISDISGUISE)) + return(TRUE); + if (on(th, ISINVIS)) + return(TRUE); + if (on(th, NOCOLD)) + return(TRUE); + if (on(th, NOFIRE)) + return(TRUE); + if (on(th, ISELECTRIC)) + return(TRUE); + + return(FALSE); +}