* are included in all such copies. Other copyrights may also apply.
*/
-/* Purpose: Mane code */
+/* Purpose: Imitation code */
#include "angband.h"
break;
case MS_DISPEL:
{
- monster_type *m_ptr;
- bool need_mproc_remove = FALSE;
- char m_name[80];
+ int m_idx;
if (!target_set(TARGET_KILL)) return FALSE;
- if (!cave[target_row][target_col].m_idx) break;
+ m_idx = cave[target_row][target_col].m_idx;
+ if (!m_idx) break;
if (!player_has_los_bold(target_row, target_col)) break;
if (!projectable(py, px, target_row, target_col)) break;
- m_ptr = &m_list[cave[target_row][target_col].m_idx];
- monster_desc(m_name, m_ptr, 0);
- if (m_ptr->invulner)
- {
- m_ptr->invulner = 0;
- need_mproc_remove = TRUE;
- if (m_ptr->ml)
- {
-#ifdef JP
- msg_format("%s¤Ï¤â¤¦ÌµÅ¨¤Ç¤Ï¤Ê¤¤¡£", m_name);
-#else
- msg_format("%^s is no longer invulnerable.", m_name);
-#endif
- p_ptr->redraw |= (PR_HEALTH);
- if (p_ptr->riding == cave[target_row][target_col].m_idx) p_ptr->redraw |= (PR_UHEALTH);
- }
- m_ptr->energy_need += ENERGY_NEED();
- }
- if (m_ptr->fast)
- {
- m_ptr->fast = 0;
- need_mproc_remove = TRUE;
-#ifdef JP
- if (m_ptr->ml) msg_format("%s¤Ï¤â¤¦²Ã®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
-#else
- if (m_ptr->ml) msg_format("%^s is no longer fast.", m_name);
-#endif
- }
- if (m_ptr->slow)
- {
- m_ptr->slow = 0;
- need_mproc_remove = TRUE;
-#ifdef JP
- if (m_ptr->ml) msg_format("%s¤Ï¤â¤¦¸ºÂ®¤µ¤ì¤Æ¤¤¤Ê¤¤¡£", m_name);
-#else
- if (m_ptr->ml) msg_format("%^s is no longer slow.", m_name);
-#endif
- }
-
- if (need_mproc_remove && !need_mproc(m_ptr)) mproc_remove(m_ptr->mproc_idx);
+ dispel_monster_status(m_idx);
break;
}
case MS_ROCKET:
break;
case MS_SLOW:
if (!get_aim_dir(&dir)) return FALSE;
- slow_monster(dir);
+ slow_monster(dir, plev);
break;
case MS_SLEEP:
if (!get_aim_dir(&dir)) return FALSE;
- sleep_monster(dir);
+ sleep_monster(dir, plev);
break;
case MS_SPEED:
(void)set_fast(randint1(20 + plev) + plev, FALSE);
(void)set_invuln(randint1(7) + 7, FALSE);
break;
case MS_BLINK:
- teleport_player(10, FALSE);
+ teleport_player(10, 0L);
break;
case MS_TELEPORT:
- teleport_player(plev * 5, FALSE);
+ teleport_player(plev * 5, 0L);
break;
case MS_WORLD:
world_player = TRUE;
msg_format("You command %s to return.", m_name);
#endif
- teleport_monster_to(cave[target_row][target_col].m_idx, py, px, 100, TRUE);
+ teleport_monster_to(cave[target_row][target_col].m_idx, py, px, 100, TELEPORT_PASSIVE);
break;
}
case MS_TELE_AWAY:
energy_use = 100;
/* Window stuff */
- p_ptr->redraw |= (PR_MANE);
+ p_ptr->redraw |= (PR_IMITATION);
p_ptr->window |= (PW_PLAYER);
p_ptr->window |= (PW_SPELL);