/* Fighter.h Class definition. Copyright (C) 1995 David Flater. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ #ifndef _FIGHTER_H #define _FIGHTER_H /* This class provides useful functions to inherit for players and */ /* fighting monsters. */ #include "Container.h" /* A pacifist will run away from combat. A warmonger will jump into a fray. A bystander will just stand there and not get involved. */ typedef enum {pacifist, warmonger, bystander} fightertype; @interface Fighter: Container { id enemies; int heartbeat_kill; float stamina, maxstamina; int panic; fightertype ftype; char deadname[20], deaddef[80], deadindef[80], deaddesc[80]; } /* ACTIONS */ - kill: who: dobj; /* METHODS */ - hit: fromwho: (float) damage; - clue: dontkillme; - unclue: killme; - (int) checkkillflag; - die; - enemies; - runaway; - theres_a_fight_going_on; + new; - free; - (void) heartbeat; - killagain; - (float) priority: (char *) action: (int) numargs; /* Descriptions for listcontents. */ - empty: who; - nonempty: who; - (float) health; - (float) stamina; - (float) maxstamina; - (void) heal; /* Receive experience for killing something. */ - get_experience: (unsigned long) exp; @end #endif