[BACK]Return to status.c CVS log [TXT][DIR] Up to [contributed] / early-roguelike / urogue

File: [contributed] / early-roguelike / urogue / status.c (download)

Revision 1.1.1.1 (vendor branch), Tue Mar 9 20:01:27 2021 UTC (3 years, 2 months ago) by rubenllorente
Branch: MAIN, ElwinR
CVS Tags: start, rel2021_03, ISRUN-rel2021_03, ISRUN-2021-03-09-acc3718f50ab, HEAD
Changes since 1.1: +0 -0 lines

Initial commit from ElwinR's early-roguelike collection (https://icemonster.rlgallery.org/hg/early-roguelike, revision acc3718f50ab)

/*
    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);
}