* @param learnable ¥é¡¼¥Ë¥ó¥°²Äǽ¤«Èݤ«
* @return ¤Ê¤·
*/
-static void bolt(int m_idx, int typ, int dam_hp, int monspell, bool learnable)
+void bolt(int m_idx, int typ, int dam_hp, int monspell, bool learnable)
{
int flg = PROJECT_STOP | PROJECT_KILL | PROJECT_PLAYER;
if (typ != GF_ARROW) flg |= PROJECT_REFLECTABLE;
* @param learnable ¥é¡¼¥Ë¥ó¥°²Äǽ¤«Èݤ«
* @return ¤Ê¤·
*/
-static void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, bool learnable)
+void breath(int y, int x, int m_idx, int typ, int dam_hp, int rad, bool breath, int monspell, bool learnable)
{
int flg = PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL | PROJECT_PLAYER;
can_remember = is_original_ap_and_seen(m_ptr);
- /* Cast the spell. */
- switch (thrown_spell)
- {
- /* RF4_SHRIEK */
- case 96+0:
- {
- disturb(1, 1);
- msg_format(_("%^s¤¬¤«¤ó¹â¤¤¶âÀÚ¤êÀ¼¤ò¤¢¤²¤¿¡£", "%^s makes a high pitched shriek."), m_name);
- aggravate_monsters(m_idx);
- break;
- }
-
- /* RF4_XXX1 */
- case 96+1:
- {
- /* XXX XXX XXX */
- break;
- }
-
- /* RF4_DISPEL */
- case 96+2:
- {
- if (!direct) return (FALSE);
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬ËâÎϾõî¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a dispel magic."), m_name);
- }
- dispel_player();
- if (p_ptr->riding) dispel_monster_status(p_ptr->riding);
-
-#ifdef JP
- if ((p_ptr->pseikaku == SEIKAKU_COMBAT) || (inventory[INVEN_BOW].name1 == ART_CRIMSON))
- msg_print("¤ä¤ê¤ä¤¬¤Ã¤¿¤Ê¡ª");
-#endif
- learn_spell(MS_DISPEL);
- break;
- }
-
- /* RF4_ROCKET */
- case 96+3:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤ò¼Í¤Ã¤¿¡£", "%^s shoots something."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket."), m_name);
- }
-
- dam = ((m_ptr->hp / 4) > 800 ? 800 : (m_ptr->hp / 4));
- breath(y, x, m_idx, GF_ROCKET,
- dam, 2, FALSE, MS_ROCKET, learnable);
- update_smart_learn(m_idx, DRS_SHARD);
- break;
- }
-
- /* RF4_SHOOT */
- case 96+4:
- {
- if (!direct) return (FALSE);
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬´ñ̯¤Ê²»¤òȯ¤·¤¿¡£", "%^s makes a strange noise."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬Ìð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow."), m_name);
- }
-
- dam = damroll(r_ptr->blow[0].d_dice, r_ptr->blow[0].d_side);
- bolt(m_idx, GF_ARROW, dam, MS_SHOOT, learnable);
- update_smart_learn(m_idx, DRS_REFLECT);
- break;
- }
-
- /* RF4_XXX2 */
- case 96+5:
- {
- /* XXX XXX XXX */
- break;
- }
-
- /* RF4_XXX3 */
- case 96+6:
- {
- /* XXX XXX XXX */
- break;
- }
-
- /* RF4_XXX4 */
- case 96+7:
- {
- /* XXX XXX XXX */
- break;
- }
-
- /* RF4_BR_ACID */
- case 96+8:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬»À¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes acid."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_ACID, dam, 0, TRUE, MS_BR_ACID, learnable);
- update_smart_learn(m_idx, DRS_ACID);
- break;
- }
-
- /* RF4_BR_ELEC */
- case 96+9:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬°ðºÊ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes lightning."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_ELEC, dam,0, TRUE, MS_BR_ELEC, learnable);
- update_smart_learn(m_idx, DRS_ELEC);
- break;
- }
-
- /* RF4_BR_FIRE */
- case 96+10:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬²Ð±ê¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes fire."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_FIRE, dam,0, TRUE, MS_BR_FIRE, learnable);
- update_smart_learn(m_idx, DRS_FIRE);
- break;
- }
-
- /* RF4_BR_COLD */
- case 96+11:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬Î䵤¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes frost."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 1600 ? 1600 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_COLD, dam,0, TRUE, MS_BR_COLD, learnable);
- update_smart_learn(m_idx, DRS_COLD);
- break;
- }
-
- /* RF4_BR_POIS */
- case 96+12:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬¥¬¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes gas."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_POIS, dam, 0, TRUE, MS_BR_POIS, learnable);
- update_smart_learn(m_idx, DRS_POIS);
- break;
- }
-
-
- /* RF4_BR_NETH */
- case 96+13:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬ÃϹö¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes nether."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 550 ? 550 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_NETHER, dam,0, TRUE, MS_BR_NETHER, learnable);
- update_smart_learn(m_idx, DRS_NETH);
- break;
- }
-
- /* RF4_BR_LITE */
- case 96+14:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬Á®¸÷¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes light."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- breath(y_br_lite, x_br_lite, m_idx, GF_LITE, dam,0, TRUE, MS_BR_LITE, learnable);
- update_smart_learn(m_idx, DRS_LITE);
- break;
- }
-
- /* RF4_BR_DARK */
- case 96+15:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬°Å¹õ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes darkness."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 400 ? 400 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_DARK, dam,0, TRUE, MS_BR_DARK, learnable);
- update_smart_learn(m_idx, DRS_DARK);
- break;
- }
-
- /* RF4_BR_CONF */
- case 96+16:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬º®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes confusion."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_CONFUSION, dam,0, TRUE, MS_BR_CONF, learnable);
- update_smart_learn(m_idx, DRS_CONF);
- break;
- }
-
- /* RF4_BR_SOUN */
- case 96+17:
- {
- disturb(1, 1);
- if (m_ptr->r_idx == MON_JAIAN)
- {
- msg_format(_("¡Ö¥Ü¥©¥¨¡Á¡Á¡Á¡Á¡Á¡Á¡×", "'Booooeeeeee'"));
- }
- else if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬¹ì²»¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes sound."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 450 ? 450 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_SOUND, dam,0, TRUE, MS_BR_SOUND, learnable);
- update_smart_learn(m_idx, DRS_SOUND);
- break;
- }
-
- /* RF4_BR_CHAO */
- case 96+18:
- {
- disturb(1, 1);
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬¥«¥ª¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes chaos."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 600 ? 600 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_CHAOS, dam,0, TRUE, MS_BR_CHAOS, learnable);
- update_smart_learn(m_idx, DRS_CHAOS);
- break;
- }
-
- /* RF4_BR_DISE */
- case 96+19:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬Îô²½¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes disenchantment."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_DISENCHANT, dam,0, TRUE, MS_BR_DISEN, learnable);
- update_smart_learn(m_idx, DRS_DISEN);
- break;
- }
-
- /* RF4_BR_NEXU */
- case 96+20:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬°ø²Ìº®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes nexus."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_NEXUS, dam,0, TRUE, MS_BR_NEXUS, learnable);
- update_smart_learn(m_idx, DRS_NEXUS);
- break;
- }
-
- /* RF4_BR_TIME */
- case 96+21:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬»þ´ÖµÕž¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes time."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 150 ? 150 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_TIME, dam,0, TRUE, MS_BR_TIME, learnable);
- break;
- }
-
- /* RF4_BR_INER */
- case 96+22:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬ÃÙÆߤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes inertia."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_INERTIA, dam,0, TRUE, MS_BR_INERTIA, learnable);
- break;
- }
-
- /* RF4_BR_GRAV */
- case 96+23:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬½ÅÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes gravity."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 200 ? 200 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_GRAVITY, dam,0, TRUE, MS_BR_GRAVITY, learnable);
- break;
- }
-
- /* RF4_BR_SHAR */
- case 96+24:
- {
- disturb(1, 1);
- if (m_ptr->r_idx == MON_BOTEI)
- {
- msg_format(_("¡Ö¥ÜÄë¥Ó¥ë¥«¥Ã¥¿¡¼¡ª¡ª¡ª¡×", "'Boty-Build cutter!!!'"));
- }
- else if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬ÇËÊҤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes shards."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 500 ? 500 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_SHARDS, dam,0, TRUE, MS_BR_SHARDS, learnable);
- update_smart_learn(m_idx, DRS_SHARD);
- break;
- }
-
- /* RF4_BR_PLAS */
- case 96+25:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬¥×¥é¥º¥Þ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes plasma."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_PLASMA, dam,0, TRUE, MS_BR_PLASMA, learnable);
- break;
- }
-
- /* RF4_BR_WALL */
- case 96+26:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬¥Õ¥©¡¼¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes force."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 200 ? 200 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_FORCE, dam,0, TRUE, MS_BR_FORCE, learnable);
- break;
- }
-
- /* RF4_BR_MANA */
- case 96+27:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬ËâÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", "%^s breathes mana."), m_name);
- }
+ if (!direct)
+ {
+ switch (thrown_spell)
+ {
+ case 96 + 2: /* RF4_DISPEL */
+ case 96 + 4: /* RF4_SHOOT */
+ return (FALSE);
+ }
+ }
- dam = ((m_ptr->hp / 3) > 250 ? 250 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_MANA, dam,0, TRUE, MS_BR_MANA, learnable);
- break;
- }
+ /* Cast the spell. */
+ switch (thrown_spell)
+ {
+ case 96 + 0: spell_RF4_SHRIEK(m_idx, m_name); break; /* RF4_SHRIEK */
+ case 96 + 1: break; /* RF4_XXX1 */
+ case 96 + 2: spell_RF4_DISPEL(blind, m_name); break; /* RF4_DISPEL */
+ case 96 + 3: spell_RF4_ROCKET(blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_ROCKET */
+ case 96 + 4: spell_RF4_SHOOT(blind, m_name, r_ptr, m_idx, learnable); break; /* RF4_SHOOT */
+ case 96 + 5: break; /* RF4_XXX2 */
+ case 96 + 6: break; /* RF4_XXX3 */
+ case 96 + 7: break; /* RF4_XXX4 */
+ case 96 + 8: spell_RF4_BREATH(GF_ACID, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_ACID */
+ case 96 + 9: spell_RF4_BREATH(GF_ELEC, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_ELEC */
+ case 96 + 10: spell_RF4_BREATH(GF_FIRE, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_FIRE */
+ case 96 + 11: spell_RF4_BREATH(GF_COLD, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_COLD */
+ case 96 + 12: spell_RF4_BREATH(GF_POIS, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_POIS */
+ case 96 + 13: spell_RF4_BREATH(GF_NETHER, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_NETH */
+ case 96 + 14: spell_RF4_BREATH(GF_LITE, blind, m_name, m_ptr, y_br_lite, x_br_lite, m_idx, learnable); break; /* RF4_BR_LITE */
+ case 96 + 15: spell_RF4_BREATH(GF_DARK, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_DARK */
+ case 96 + 16: spell_RF4_BREATH(GF_CONFUSION, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_CONF */
+ case 96 + 17: spell_RF4_BREATH(GF_SOUND, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_SOUN */
+ case 96 + 18: spell_RF4_BREATH(GF_CHAOS, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_CHAO */
+ case 96 + 19: spell_RF4_BREATH(GF_DISENCHANT, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_DISE */
+ case 96 + 20: spell_RF4_BREATH(GF_NEXUS, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_NEXU */
+ case 96 + 21: spell_RF4_BREATH(GF_TIME, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_TIME */
+ case 96 + 22: spell_RF4_BREATH(GF_INERTIA, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_INER */
+ case 96 + 23: spell_RF4_BREATH(GF_GRAVITY, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_GRAV */
+ case 96 + 24: spell_RF4_BREATH(GF_SHARDS, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_SHAR */
+ case 96 + 25: spell_RF4_BREATH(GF_PLASMA, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_PLAS */
+ case 96 + 26: spell_RF4_BREATH(GF_FORCE, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_WALL */
+ case 96 + 27: spell_RF4_BREATH(GF_MANA, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_MANA */
/* RF4_BA_NUKE */
case 96+28:
break;
}
- /* RF4_BR_NUKE */
- case 96+29:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬Êü¼ÍÀÇÑ´þʪ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes toxic waste."), m_name);
- }
-
- dam = ((m_ptr->hp / 3) > 800 ? 800 : (m_ptr->hp / 3));
- breath(y, x, m_idx, GF_NUKE, dam,0, TRUE, MS_BR_NUKE, learnable);
- update_smart_learn(m_idx, DRS_POIS);
- break;
- }
-
+ case 96 + 29: spell_RF4_BREATH(GF_NUKE, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_NUKE */
+
/* RF4_BA_CHAO */
case 96+30:
{
break;
}
- /* RF4_BR_DISI */
- case 96+31:
- {
- disturb(1, 1);
-
- if (blind)
- {
- msg_format(_("%^s¤¬²¿¤«¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes."), m_name);
- }
- else
- {
- msg_format(_("%^s¤¬Ê¬²ò¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "%^s breathes disintegration."), m_name);
- }
-
- dam = ((m_ptr->hp / 6) > 150 ? 150 : (m_ptr->hp / 6));
- breath(y, x, m_idx, GF_DISINTEGRATE, dam,0, TRUE, MS_BR_DISI, learnable);
- break;
- }
-
-
+ case 96 + 31: spell_RF4_BREATH(GF_DISINTEGRATE, blind, m_name, m_ptr, y, x, m_idx, learnable); break; /* RF4_BR_DISI */
/* RF5_BA_ACID */
case 128+0:
case 128+5:
{
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-
-#ifdef JP
-else msg_format("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a nether ball.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball."), m_name);
dam = 50 + damroll(10, 10) + (rlev * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1));
breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, learnable);
case 128+6:
{
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", m_name);
-#else
- else msg_format("%^s gestures fluidly.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬Î®¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "%^s gestures fluidly."), m_name);
-#ifdef JP
-msg_print("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£");
-#else
- msg_print("You are engulfed in a whirlpool.");
-#endif
+ msg_print(_("¤¢¤Ê¤¿¤Ï±²´¬¤¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "You are engulfed in a whirlpool."));
dam = ((r_ptr->flags2 & RF2_POWERFUL) ? randint1(rlev * 3) : randint1(rlev * 2)) + 50;
breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, learnable);
case 128+7:
{
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles powerfully.", m_name);
-#endif
-
-#ifdef JP
-else msg_format("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", m_name);
-#else
- else msg_format("%^s invokes a mana storm.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
+ else
+ msg_format(_("%^s¤¬ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, learnable);
case 128+8:
{
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles powerfully.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", m_name);
-#else
- else msg_format("%^s invokes a darkness storm.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
+ else
+ msg_format(_("%^s¤¬°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, learnable);
disturb(1, 1);
if (!seen)
{
-#ifdef JP
-msg_print("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£");
-#else
- msg_print("You feel something focusing on your mind.");
-#endif
-
+ msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
}
else
{
-#ifdef JP
-msg_format("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", m_name);
-#else
- msg_format("%^s gazes deep into your eyes.", m_name);
-#endif
-
+ msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¤Ë¤é¤ó¤Ç¤¤¤ë¡£", "%^s gazes deep into your eyes."), m_name);
}
dam = damroll(7, 7);
disturb(1, 1);
if (!seen)
{
-#ifdef JP
-msg_print("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£");
-#else
- msg_print("You feel something focusing on your mind.");
-#endif
-
+ msg_print(_("²¿¤«¤¬¤¢¤Ê¤¿¤ÎÀº¿À¤ËÇ°¤òÊü¤Ã¤Æ¤¤¤ë¤è¤¦¤À¡£", "You feel something focusing on your mind."));
}
else
{
-#ifdef JP
-msg_format("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", m_name);
-#else
- msg_format("%^s looks deep into your eyes.", m_name);
-#endif
-
+ msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÆ·¤ò¤¸¤Ã¤È¸«¤Æ¤¤¤ë¡£", "%^s looks deep into your eyes."), m_name);
}
dam = damroll(12, 12);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", m_name);
-#else
- else msg_format("%^s points at you and curses.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses."), m_name);
dam = damroll(3, 8);
breath(y, x, m_idx, GF_CAUSE_1, dam, 0, FALSE, MS_CAUSE_1, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", m_name);
-#else
- else msg_format("%^s points at you and curses horribly.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly."), m_name);
dam = damroll(8, 8);
breath(y, x, m_idx, GF_CAUSE_2, dam, 0, FALSE, MS_CAUSE_2, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles loudly.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", m_name);
-#else
- else msg_format("%^s points at you, incanting terribly!", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly."), m_name);
+ else
+ msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!"), m_name);
dam = damroll(10, 15);
breath(y, x, m_idx, GF_CAUSE_3, dam, 0, FALSE, MS_CAUSE_3, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", m_name);
-#else
- if (blind) msg_format("%^s screams the word 'DIE!'", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", m_name);
-#else
- else msg_format("%^s points at you, screaming the word DIE!", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'"), m_name);
+ else
+ msg_format(_("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£",
+ "%^s points at you, screaming the word DIE!"), m_name);
dam = damroll(15, 15);
breath(y, x, m_idx, GF_CAUSE_4, dam, 0, FALSE, MS_CAUSE_4, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a acid bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a acid bolt."), m_name);
dam = (damroll(7, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
bolt(m_idx, GF_ACID, dam, MS_BOLT_ACID, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a lightning bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt."), m_name);
dam = (damroll(4, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
bolt(m_idx, GF_ELEC, dam, MS_BOLT_ELEC, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a fire bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt."), m_name);
dam = (damroll(9, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
bolt(m_idx, GF_FIRE, dam, MS_BOLT_FIRE, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a frost bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt."), m_name);
dam = (damroll(6, 8) + (rlev / 3)) * ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 1);
bolt(m_idx, GF_COLD, dam, MS_BOLT_COLD, learnable);
case 128+20:
{
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles powerfully.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", m_name);
-#else
- else msg_format("%^s invokes a starburst.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤òÎ϶¯¤¯¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles powerfully."), m_name);
+ else
+ msg_format(_("%^s¤¬¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst."), m_name);
dam = (rlev * 4) + 50 + damroll(10, 10);
breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a nether bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt."), m_name);
dam = 30 + damroll(5, 5) + (rlev * 4) / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3);
bolt(m_idx, GF_NETHER, dam, MS_BOLT_NETHER, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-#ifdef JP
-else msg_format("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a water bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt."), m_name);
dam = damroll(10, 10) + (rlev * 3 / ((r_ptr->flags2 & RF2_POWERFUL) ? 2 : 3));
bolt(m_idx, GF_WATER, dam, MS_BOLT_WATER, learnable);
{
if (!direct) return (FALSE);
disturb(1, 1);
-#ifdef JP
-if (blind) msg_format("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", m_name);
-#else
- if (blind) msg_format("%^s mumbles.", m_name);
-#endif
-
-#ifdef JP
-else msg_format("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", m_name);
-#else
- else msg_format("%^s casts a mana bolt.", m_name);
-#endif
+ if (blind)
+ msg_format(_("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles."), m_name);
+ else
+ msg_format(_("%^s¤¬ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt."), m_name);
dam = randint1(rlev * 7 / 2) + 50;
bolt(m_idx, GF_MANA, dam, MS_BOLT_MANA, learnable);