msg_print("Your mind unleashes its power in an uncontrollable storm!");
#endif
- project(1, 2 + plev / 10, py, px, plev * 2,
+ project(PROJECT_WHO_UNCTRL_POWER, 2 + plev / 10, py, px, plev * 2,
GF_MANA, PROJECT_JUMP | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM, -1);
p_ptr->csp = MAX(0, p_ptr->csp - plev * MAX(1, plev / 10));
}
msg_print("Your mind unleashes its power in an uncontrollable storm!");
#endif
- project(1, 2 + plev / 10, py, px, plev * 2,
+ project(PROJECT_WHO_UNCTRL_POWER, 2 + plev / 10, py, px, plev * 2,
GF_MANA, PROJECT_JUMP | PROJECT_KILL | PROJECT_GRID | PROJECT_ITEM, -1);
p_ptr->csp = MAX(0, p_ptr->csp - plev * MAX(1, plev / 10));
}
/* Choose 'new' target */
- do
+ if (who > 0)
{
- t_y = m_list[who].fy - 1 + randint1(3);
- t_x = m_list[who].fx - 1 + randint1(3);
- max_attempts--;
- }
- while (max_attempts && in_bounds2u(t_y, t_x) && !projectable(py, px, t_y, t_x));
+ do
+ {
+ t_y = m_list[who].fy - 1 + randint1(3);
+ t_x = m_list[who].fx - 1 + randint1(3);
+ max_attempts--;
+ }
+ while (max_attempts && in_bounds2u(t_y, t_x) && !projectable(py, px, t_y, t_x));
- if (max_attempts < 1)
+ if (max_attempts < 1)
+ {
+ t_y = m_list[who].fy;
+ t_x = m_list[who].fx;
+ }
+ }
+ else
{
- t_y = m_list[who].fy;
- t_x = m_list[who].fx;
+ t_y = py - 1 + randint1(3);
+ t_x = px - 1 + randint1(3);
}
project(0, 0, t_y, t_x, dam, typ, (PROJECT_STOP|PROJECT_KILL|PROJECT_REFLECTABLE), monspell);
/* Get the monster's real name (gotten before polymorph!) */
strcpy(killer, who_name);
}
- else if (who < 0)
+ else
{
+ switch (who)
+ {
+ case PROJECT_WHO_UNCTRL_POWER:
#ifdef JP
- strcpy(killer, "æ«");
+ strcpy(killer, "À©¸æ¤Ç¤¤Ê¤¤ÎϤÎÈÅή");
#else
- strcpy(killer, "a trap");
+ strcpy(killer, "uncontrollable power storm");
#endif
+ break;
+
+ default:
+#ifdef JP
+ strcpy(killer, "æ«");
+#else
+ strcpy(killer, "a trap");
+#endif
+ break;
+ }
+
+ /* Paranoia */
+ strcpy(m_name, killer);
}
/* Analyze the damage */
}
}
- if (p_ptr->tim_eyeeye && get_damage > 0 && !p_ptr->is_dead)
+ if (p_ptr->tim_eyeeye && (get_damage > 0) && !p_ptr->is_dead && (who > 0))
{
#ifdef JP
msg_format("¹¶·â¤¬%s¼«¿È¤ò½ý¤Ä¤±¤¿¡ª", m_name);