Lines Matching refs:monster
72 object *monster;
106 monster = get_zapped_monster(d, &row, &col);
108 wdrain_life(monster);
109 } else if (monster) {
110 wake_up(monster);
111 s_con_mon(monster);
112 zap_monster(monster, wand->which_kind);
133 if (dungeon[*row][*col] & MONSTER) {
142 zap_monster(object *monster, unsigned short kind)
148 row = monster->row;
149 col = monster->col;
153 if (monster->m_flags & HASTED) {
154 monster->m_flags &= (~HASTED);
156 monster->slowed_toggle = 0;
157 monster->m_flags |= SLOWED;
161 if (monster->m_flags & SLOWED) {
162 monster->m_flags &= (~SLOWED);
164 monster->m_flags |= HASTED;
168 tele_away(monster);
171 monster->m_flags |= INVISIBLE;
174 if (monster->m_flags & HOLDS) {
177 nm = monster->next_monster;
178 tc = monster->trail_char;
179 (void)gr_monster(monster, get_rand(0, MONSTERS-1));
180 monster->row = row;
181 monster->col = col;
182 monster->next_monster = nm;
183 monster->trail_char = tc;
184 if (!(monster->m_flags & IMITATES)) {
185 wake_up(monster);
189 rogue_hit(monster, 1);
192 if (monster->m_flags & HOLDS) {
195 if (monster->m_flags & STEALS_ITEM) {
196 monster->drop_percent = 0;
198 monster->m_flags &= (~(FLIES | FLITS | SPECIAL_HIT | INVISIBLE |
208 tele_away(object *monster)
212 if (monster->m_flags & HOLDS) {
216 mvaddch(monster->row, monster->col, monster->trail_char);
217 dungeon[monster->row][monster->col] &= ~MONSTER;
218 monster->row = row; monster->col = col;
219 dungeon[row][col] |= MONSTER;
220 monster->trail_char = mvinch(row, col);
222 mvaddch(row, col, gmc(monster));
251 wdrain_life(object *monster)
270 if (monster) {
271 wake_up(monster);
272 (void)mon_damage(monster, hp);
311 (dungeon[orow][ocol] & MONSTER) ||
325 (dungeon[row][col] & MONSTER) ||
329 if (dungeon[row][col] & MONSTER) {
330 object *monster;
332 monster = object_at(&level_monsters, row, col);
334 wake_up(monster);
337 mon_name(monster));
341 if (!(monster->m_flags & RUSTS)) {
342 if (monster->m_flags & FREEZES) {
343 damage = monster->hp_to_kill;
344 } else if (monster->m_flags & FLAMES) {
345 damage = (monster->hp_to_kill / 10) + 1;
350 damage = (monster->hp_to_kill / 2) + 1;
353 mon_name(monster));
354 (void)mon_damage(monster, damage);
357 if (!(monster->m_flags & FREEZES)) {
359 messagef(0, "the monster is frozen");
360 monster->m_flags |= (ASLEEP | NAPPING);
361 monster->nap_length = get_rand(3, 6);
370 mon_name(monster));
371 (void)mon_damage(monster, damage);