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);
+}