33 object *applier,
int aflags);
51 object *applier,
int aflags) {
93 "You potion had no effect.", NULL);
101 for (i = 1; i <
MIN(11, applier->
level); i++) {
137 "The Gods smile upon you and remake you a little more in their image."
138 "You feel a little more perfect.", NULL);
141 "The potion had no effect - you are already perfect", NULL);
146 "The Gods are angry and punish you.", NULL);
149 "You are fortunate that you are so pathetic.", NULL);
166 "Yech! Your lungs are on fire!", NULL);
171 fball->
x = applier->
x;
172 fball->
y = applier->
y;
216 && potion->
value != 0)
222 "Nothing happened.", NULL);
archetype * find_archetype(const char *name)
void drain_stat(object *op)
const char *const restore_msg[NUM_STATS]
#define MSG_TYPE_APPLY_FAILURE
static method_ret potion_type_apply(ob_methods *context, object *potion, object *applier, int aflags)
#define EXPLODING_FIREBALL
sint8 get_attr_value(const living *stats, int attr)
void draw_ext_info(int flags, int pri, const object *pl, uint8 type, uint8 subtype, const char *message, const char *oldmessage)
int change_abil(object *op, object *tmp)
void remove_ob(object *op)
void handle_apply_yield(object *tmp)
object * create_archetype(const char *name)
void identify(object *op)
#define MSG_TYPE_ATTRIBUTE
void register_apply(int ob_type, apply_func method)
#define QUERY_FLAG(xyz, p)
#define CLEAR_FLAG(xyz, p)
object * insert_ob_in_ob(object *op, object *where)
object * insert_ob_in_map(object *op, mapstruct *m, object *originator, int flag)
sint16 resist[NROFATTACKS]
#define MSG_TYPE_APPLY_CURSED
#define MSG_TYPE_APPLY_SUCCESS
object * present_arch_in_ob(const archetype *at, const object *op)
void LOG(LogLevel logLevel, const char *format,...)
void free_object(object *ob)
int random_roll(int min, int max, const object *op, int goodbad)
void init_type_potion(void)
void fix_object(object *op)
#define MSG_TYPE_ATTRIBUTE_STAT_GAIN
int cast_spell(object *op, object *caster, int dir, object *spell_ob, char *stringarg)