#define DAM_ROLL 1
#define DAM_MAX 2
#define DAM_MIN 3
+#define DICE_NUM 4
+#define DICE_SIDE 5
+#define DICE_MULT 6
+#define DICE_DIV 7
+#define BASE_DAM 8
extern bool monster_has_hostile_align(monster_type *m_ptr, int pa_good, int pa_evil, monster_race *r_ptr);
extern bool monster_living(monster_race *r_ptr);
extern bool no_questor_or_bounty_uniques(int r_idx);
+extern void dice_to_string(int base_damage, int dice_num, int dice_side, int dice_mult, int dice_div, char* msg);
/* monster2.c */
extern void set_rf_masks(s32b *f4, s32b *f5, s32b *f6, int mode);
/* mspells4.c */
-extern int monspell_num(int SPELL_NUM_BASE, u32b SPELL_FLAG);
extern bool spell_learnable(int m_idx);
extern int monspell_to_player(int SPELL_NUM, int y, int x, int m_idx);
extern int monspell_to_monster(int SPELL_NUM, int y, int x, int m_idx, int t_idx);
}
/*!
- * @brief ʸ»úÎó¤Ë¥â¥ó¥¹¥¿¡¼¤Î¹¶·âÎϤò²Ã¤¨¤ë
- * @param r_idx ¥â¥ó¥¹¥¿¡¼¤Î¼ï²ID
- * @param SPELL_NUM ¼öʸÈÖ¹æ
- * @param msg ɽ¼¨¤¹¤ëʸ»úÎó
- * @param tmp ÊÖ¤¹¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ëÇÛÎó
- * @param min_max TRUE¤Ê¤é(ºÇ¾®-ºÇÂç)·Á¼°¤Ç¡¢FALSE¤Ê¤é(ºÇÂçÃÍ)·Á¼°¤ÇÊÖ¤¹
- * @return ¤Ê¤·
- */
-void set_damage(int r_idx, int SPELL_NUM, char* msg, char* tmp, bool min_max)
+* @brief ¥À¥¤¥¹Ìܤòʸ»úÎó¤ËÊÑ´¹¤¹¤ë
+* @param base_damage ¸ÇÄêÃÍ
+* @param dice_num ¥À¥¤¥¹¿ô
+* @param dice_side ¥À¥¤¥¹ÌÌ
+* @param dice_mult ¥À¥¤¥¹ÇÜΨ
+* @param dice_div ¥À¥¤¥¹½ü¿ô
+* @param msg ʸ»úÎó¤ò³ÊǼ¤¹¤ë¥Ý¥¤¥ó¥¿
+* @return ¤Ê¤·
+*/
+void dice_to_string(int base_damage, int dice_num, int dice_side, int dice_mult, int dice_div, char* msg)
{
- int dam_min = monspell_race_damage(SPELL_NUM, r_idx, DAM_MIN);
- int dam_max = monspell_race_damage(SPELL_NUM, r_idx, DAM_MAX);
- if(min_max)
- sprintf(tmp, msg, dam_min, dam_max);
- else
- sprintf(tmp, msg, dam_max);
+ char base[80] = "", dice[80] = "", mult[80]="";
+
+ if (dice_num == 0)
+ {
+ sprintf(msg, "%d", base_damage);
+ }
+ else
+ {
+ if (base_damage != 0)
+ sprintf(base, "%d+", base_damage);
+
+ if (dice_num == 1)
+ sprintf(dice, "d%d", dice_side);
+ else
+ sprintf(dice, "%dd%d", dice_num, dice_side);
+
+ if (dice_mult != 1 || dice_div != 1)
+ {
+ if (dice_div == 1)
+ sprintf(mult, "*%d", dice_mult);
+ else
+ sprintf(mult, "*(%d/%d)", dice_mult, dice_div);
+ }
+ sprintf(msg, "%s%s%s", base, dice, mult);
+ }
+}
+
+/*!
+* @brief ʸ»úÎó¤Ë¥â¥ó¥¹¥¿¡¼¤Î¹¶·âÎϤò²Ã¤¨¤ë
+* @param r_idx ¥â¥ó¥¹¥¿¡¼¤Î¼ï²ID
+* @param SPELL_NUM ¼öʸÈÖ¹æ
+* @param msg ɽ¼¨¤¹¤ëʸ»úÎó
+* @param tmp ÊÖ¤¹¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ëÇÛÎó
+* @return ¤Ê¤·
+*/
+void set_damage(int r_idx, int SPELL_NUM, char* msg, char* tmp)
+{
+ int base_damage = monspell_race_damage(SPELL_NUM, r_idx, BASE_DAM);
+ int dice_num = monspell_race_damage(SPELL_NUM, r_idx, DICE_NUM);
+ int dice_side = monspell_race_damage(SPELL_NUM, r_idx, DICE_SIDE);
+ int dice_mult = monspell_race_damage(SPELL_NUM, r_idx, DICE_MULT);
+ int dice_div = monspell_race_damage(SPELL_NUM, r_idx, DICE_DIV);
+ char dmg_str[80];
+ dice_to_string(base_damage, dice_num, dice_side, dice_mult, dice_div, dmg_str);
+ sprintf(tmp, msg, dmg_str);
}
/*!
if (flags4 & RF4_SHRIEK) { vp[vn] = _("ÈáÌĤǽõ¤±¤òµá¤á¤ë", "shriek for help"); color[vn++] = TERM_L_WHITE; }
if (flags4 & RF4_ROCKET)
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_ROCKET), _("¥í¥±¥Ã¥È(%d)¤òȯ¼Í¤¹¤ë", "shoot a rocket(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_ROCKET), _("¥í¥±¥Ã¥È(%s)¤òȯ¼Í¤¹¤ë", "shoot a rocket(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_UMBER;
}
vn = 0;
if (flags4 & (RF4_BR_ACID))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_ACID), _("»À(%d)", "acid(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_ACID), _("»À(%s)", "acid(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_GREEN;
}
if (flags4 & (RF4_BR_ELEC))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_ELEC), _("°ðºÊ(%d)", "lightning(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_ELEC), _("°ðºÊ(%s)", "lightning(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_BLUE;
}
if (flags4 & (RF4_BR_FIRE))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_FIRE), _("²Ð±ê(%d)", "fire(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_FIRE), _("²Ð±ê(%s)", "fire(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_RED;
}
- if (flags4 & (RF4_BR_FIRE))
+ if (flags4 & (RF4_BR_COLD))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_COLD), _("Î䵤(%d)", "frost(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_COLD), _("Î䵤(%s)", "frost(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags4 & (RF4_BR_POIS))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_POIS), _("ÆÇ(%d)", "poison(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_POIS), _("ÆÇ(%s)", "poison(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_GREEN;
}
if (flags4 & (RF4_BR_NETH))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_NETH), _("ÃϹö(%d)", "nether(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_NETHER), _("ÃϹö(%s)", "nether(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_DARK;
}
if (flags4 & (RF4_BR_LITE))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_LITE), _("Á®¸÷(%d)", "light(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_LITE), _("Á®¸÷(%s)", "light(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_YELLOW;
}
if (flags4 & (RF4_BR_DARK))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_DARK), _("°Å¹õ(%d)", "darkness(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_DARK), _("°Å¹õ(%s)", "darkness(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_DARK;
}
if (flags4 & (RF4_BR_CONF))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_CONF), _("º®Íð(%d)", "confusion(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_CONF), _("º®Íð(%s)", "confusion(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_UMBER;
}
if (flags4 & (RF4_BR_SOUN))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_SOUN), _("¹ì²»(%d)", "sound(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_SOUND), _("¹ì²»(%s)", "sound(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_ORANGE;
}
if (flags4 & (RF4_BR_CHAO))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_CHAO), _("¥«¥ª¥¹(%d)", "chaos(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_CHAOS), _("¥«¥ª¥¹(%s)", "chaos(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_VIOLET;
}
if (flags4 & (RF4_BR_DISE))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_DISE), _("Îô²½(%d)", "disenchantment(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_DISEN), _("Îô²½(%s)", "disenchantment(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_VIOLET;
}
if (flags4 & (RF4_BR_NEXU))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_NEXU), _("°ø²Ìº®Íð(%d)", "nexus(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_NEXUS), _("°ø²Ìº®Íð(%s)", "nexus(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_VIOLET;
}
if (flags4 & (RF4_BR_TIME))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_TIME), _("»þ´ÖµÕž(%d)", "time(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_TIME), _("»þ´ÖµÕž(%s)", "time(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_BLUE;
}
if (flags4 & (RF4_BR_INER))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_INER), _("ÃÙÆß(%d)", "inertia(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_INERTIA), _("ÃÙÆß(%s)", "inertia(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_SLATE;
}
if (flags4 & (RF4_BR_GRAV))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_GRAV), _("½ÅÎÏ(%d)", "gravity(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_GRAVITY), _("½ÅÎÏ(%s)", "gravity(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_SLATE;
}
if (flags4 & (RF4_BR_SHAR))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_SHAR), _("ÇËÊÒ(%d)", "shards(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_SHARDS), _("ÇËÊÒ(%s)", "shards(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_UMBER;
}
if (flags4 & (RF4_BR_PLAS))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_PLAS), _("¥×¥é¥º¥Þ(%d)", "plasma(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_PLASMA), _("¥×¥é¥º¥Þ(%s)", "plasma(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_RED;
}
if (flags4 & (RF4_BR_WALL))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_WALL), _("¥Õ¥©¡¼¥¹(%d)", "force(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_FORCE), _("¥Õ¥©¡¼¥¹(%s)", "force(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_UMBER;
}
if (flags4 & (RF4_BR_MANA))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_MANA), _("ËâÎÏ(%d)", "mana(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_MANA), _("ËâÎÏ(%s)", "mana(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_BLUE;
}
if (flags4 & (RF4_BR_NUKE))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_NUKE), _("Êü¼ÍÀÇÑ´þʪ(%d)", "toxic waste(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_NUKE), _("Êü¼ÍÀÇÑ´þʪ(%s)", "toxic waste(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_GREEN;
}
if (flags4 & (RF4_BR_DISI))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BR_DISI), _("ʬ²ò(%d)", "disintegration(%d)"), tmp_msg[vn], FALSE);
+ set_damage(r_idx, (MS_BR_DISI), _("ʬ²ò(%s)", "disintegration(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_SLATE;
}
vn = 0;
if (flags5 & (RF5_BA_ACID))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_ACID), _("¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë(%d-%d)", "produce acid balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_ACID), _("¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë(%s)", "produce acid balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_GREEN;
}
if (flags5 & (RF5_BA_ELEC))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_ELEC), _("¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë(%d-%d)", "produce lightning balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_ELEC), _("¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë(%s)", "produce lightning balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_BLUE;
}
if (flags5 & (RF5_BA_FIRE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_FIRE), _("¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(%d-%d)", "produce fire balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_FIRE), _("¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë(%s)", "produce fire balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_RED;
}
if (flags5 & (RF5_BA_COLD))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_COLD), _("¥¢¥¤¥¹¡¦¥Ü¡¼¥ë(%d-%d)", "produce frost balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_COLD), _("¥¢¥¤¥¹¡¦¥Ü¡¼¥ë(%s)", "produce frost balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags5 & (RF5_BA_POIS))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_POIS), _("°½±À(%d-%d)", "produce poison balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_POIS), _("°½±À(%s)", "produce poison balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_GREEN;
}
if (flags5 & (RF5_BA_NETH))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_NETH), _("ÃϹöµå(%d-%d)", "produce nether balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_NETHER), _("ÃϹöµå(%s)", "produce nether balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_DARK;
}
if (flags5 & (RF5_BA_WATE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_WATE), _("¥¦¥©¡¼¥¿¡¼¡¦¥Ü¡¼¥ë(%d-%d)", "produce water balls(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_WATER), _("¥¦¥©¡¼¥¿¡¼¡¦¥Ü¡¼¥ë(%s)", "produce water balls(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_BLUE;
}
if (flags4 & (RF4_BA_NUKE))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BA_NUKE), _("Êü¼Íǽµå(%d-%d)", "produce balls of radiation(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_NUKE), _("Êü¼Íǽµå(%s)", "produce balls of radiation(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_GREEN;
}
if (flags5 & (RF5_BA_MANA))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_MANA), _("ËâÎϤÎÍò(%d-%d)", "invoke mana storms(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_MANA), _("ËâÎϤÎÍò(%s)", "invoke mana storms(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_BLUE;
}
if (flags5 & (RF5_BA_DARK))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_DARK), _("°Å¹õ¤ÎÍò(%d-%d)", "invoke darkness storms(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_DARK), _("°Å¹õ¤ÎÍò(%s)", "invoke darkness storms(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_DARK;
}
if (flags5 & (RF5_BA_LITE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BA_LITE), _("¥¹¥¿¡¼¥Ð¡¼¥¹¥È(%d-%d)", "invoke starburst(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_STARBURST), _("¥¹¥¿¡¼¥Ð¡¼¥¹¥È(%s)", "invoke starburst(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_YELLOW;
}
if (flags4 & (RF4_BA_CHAO))
{
- set_damage(r_idx, monspell_num(RF4_SPELL_START, RF4_BA_CHAO), _("½ã¥í¥°¥ë¥¹(%d-%d)", "invoke raw Logrus(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BALL_CHAOS), _("½ã¥í¥°¥ë¥¹(%s)", "invoke raw Logrus(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_VIOLET;
}
if (flags6 & (RF6_HAND_DOOM)){ vp[vn] = _("ÇËÌǤμê(40%-60%)", "invoke the Hand of Doom(40%-60%)"); color[vn++] = TERM_VIOLET; }
if (flags6 & (RF6_PSY_SPEAR))
{
- set_damage(r_idx, monspell_num(RF6_SPELL_START, RF6_PSY_SPEAR), _("¸÷¤Î·õ(%d-%d)", "psycho-spear(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_PSY_SPEAR), _("¸÷¤Î·õ(%s)", "psycho-spear(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_YELLOW;
}
if (flags5 & (RF5_DRAIN_MANA))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_DRAIN_MANA), _("ËâÎϵۼý(%d-%d)", "drain mana(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_DRAIN_MANA), _("ËâÎϵۼý(%s)", "drain mana(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_SLATE;
}
if (flags5 & (RF5_MIND_BLAST))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_MIND_BLAST), _("Àº¿À¹¶·â(%d-%d)", "cause mind blasting(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_MIND_BLAST), _("Àº¿À¹¶·â(%s)", "cause mind blasting(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_RED;
}
if (flags5 & (RF5_BRAIN_SMASH))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BRAIN_SMASH), _("Ǿ¹¶·â(%d-%d)", "cause brain smashing(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BRAIN_SMASH), _("Ǿ¹¶·â(%s)", "cause brain smashing(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_RED;
}
if (flags5 & (RF5_CAUSE_1))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_CAUSE_1),
- _("·Ú½ý¡Ü¼ö¤¤(%d-%d)", "cause light wounds and cursing(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_CAUSE_1),
+ _("·Ú½ý¡Ü¼ö¤¤(%s)", "cause light wounds and cursing(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags5 & (RF5_CAUSE_2))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_CAUSE_2),
- _("½Å½ý¡Ü¼ö¤¤(%d-%d)", "cause serious wounds and cursing(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_CAUSE_2),
+ _("½Å½ý¡Ü¼ö¤¤(%s)", "cause serious wounds and cursing(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags5 & (RF5_CAUSE_3))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_CAUSE_3),
- _("Ã×Ì¿½ý¡Ü¼ö¤¤(%d-%d)", "cause critical wounds and cursing(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_CAUSE_3),
+ _("Ã×Ì¿½ý¡Ü¼ö¤¤(%s)", "cause critical wounds and cursing(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags5 & (RF5_CAUSE_4))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_CAUSE_4),
- _("È빦¤òÆͤ¯(%d-%d)", "cause mortal wounds(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_CAUSE_4),
+ _("È빦¤òÆͤ¯(%s)", "cause mortal wounds(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags5 & (RF5_BO_ACID))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_ACID), _("¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È(%d-%d)", "produce acid bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_ACID), _("¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È(%s)", "produce acid bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_GREEN;
}
if (flags5 & (RF5_BO_ELEC))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_ELEC), _("¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È(%d-%d)", "produce lightning bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_ELEC), _("¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È(%s)", "produce lightning bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_BLUE;
}
if (flags5 & (RF5_BO_FIRE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_FIRE), _("¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È(%d-%d)", "produce fire bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_FIRE), _("¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È(%s)", "produce fire bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_RED;
}
if (flags5 & (RF5_BO_COLD))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_COLD), _("¥¢¥¤¥¹¡¦¥Ü¥ë¥È(%d-%d)", "produce frost bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_COLD), _("¥¢¥¤¥¹¡¦¥Ü¥ë¥È(%s)", "produce frost bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_WHITE;
}
if (flags5 & (RF5_BO_NETH))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_NETH), _("ÃϹö¤ÎÌð(%d-%d)", "produce nether bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_NETHER), _("ÃϹö¤ÎÌð(%s)", "produce nether bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_DARK;
}
if (flags5 & (RF5_BO_WATE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_WATE), _("¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È(%d-%d)", "produce water bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_WATER), _("¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È(%s)", "produce water bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_BLUE;
}
if (flags5 & (RF5_BO_MANA))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_MANA), _("ËâÎϤÎÌð(%d-%d)", "produce mana bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_MANA), _("ËâÎϤÎÌð(%s)", "produce mana bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_BLUE;
}
if (flags5 & (RF5_BO_PLAS))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_PLAS), _("¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È(%d-%d)", "produce plasma bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_PLASMA), _("¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È(%s)", "produce plasma bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_L_RED;
}
if (flags5 & (RF5_BO_ICEE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_BO_ICEE), _("¶Ë´¨¤ÎÌð(%d-%d)", "produce ice bolts(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_BOLT_ICE), _("¶Ë´¨¤ÎÌð(%s)", "produce ice bolts(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_WHITE;
}
if (flags5 & (RF5_MISSILE))
{
- set_damage(r_idx, monspell_num(RF5_SPELL_START, RF5_MISSILE), _("¥Þ¥¸¥Ã¥¯¥ß¥µ¥¤¥ë(%d-%d)", "produce magic missiles(%d-%d)"), tmp_msg[vn], TRUE);
+ set_damage(r_idx, (MS_MAGIC_MISSILE), _("¥Þ¥¸¥Ã¥¯¥ß¥µ¥¤¥ë(%s)", "produce magic missiles(%s)"), tmp_msg[vn]);
vp[vn] = tmp_msg[vn];
color[vn++] = TERM_SLATE;
}
#define pseudo_plev() (((p_ptr->lev + 40) * (p_ptr->lev + 40) - 1550) / 130) /*!< ¥â¥ó¥¹¥¿¡¼ËâË¡¤ò¥×¥ì¥¤¥ä¡¼¤¬»ÈÍѤ¹¤ë¾ì¹ç¤Î´¹»»¥ì¥Ù¥ë */
+
+/*!
+* @brief ʸ»úÎó¤ËÀÄËâƳ»Õ¤Î¼öʸ¤Î¹¶·âÎϤò²Ã¤¨¤ë
+* @param r_idx ¥â¥ó¥¹¥¿¡¼¤Î¼ï²ID
+* @param SPELL_NUM ¼öʸÈÖ¹æ
+* @param msg ɽ¼¨¤¹¤ëʸ»úÎó
+* @param tmp ÊÖ¤¹¥á¥Ã¥»¡¼¥¸¤ò³ÊǼ¤¹¤ëÇÛÎó
+* @return ¤Ê¤·
+*/
+void set_bluemage_damage(int SPELL_NUM, int plev, cptr msg, char* tmp)
+{
+ int base_damage = monspell_bluemage_damage(SPELL_NUM, plev, BASE_DAM);
+ int dice_num = monspell_bluemage_damage(SPELL_NUM, plev, DICE_NUM);
+ int dice_side = monspell_bluemage_damage(SPELL_NUM, plev, DICE_SIDE);
+ int dice_mult = monspell_bluemage_damage(SPELL_NUM, plev, DICE_MULT);
+ int dice_div = monspell_bluemage_damage(SPELL_NUM, plev, DICE_DIV);
+ char dmg_str[80];
+ dice_to_string(base_damage, dice_num, dice_side, dice_mult, dice_div, dmg_str);
+ sprintf(tmp, msg, dmg_str);
+}
+
/*!
* @brief ¼õ¤±¼è¤Ã¤¿¥â¥ó¥¹¥¿¡¼ËâË¡¤ÎID¤Ë±þ¤¸¤ÆÀÄËâË¡¤Î¸ú²Ì¾ðÊó¤ò¤Þ¤È¤á¤¿¥Õ¥©¡¼¥Þ¥Ã¥È¤òÊÖ¤¹
* @param p ¾ðÊó¤òÊÖ¤¹Ê¸»úÎ󻲾ȥݥ¤¥ó¥¿
int hp = p_ptr->chp;
#ifdef JP
- cptr s_dam = "»½ý:";
+ cptr s_dam = " »½ý:%s";
cptr s_dur = "´ü´Ö:";
cptr s_range = "ÈÏ°Ï:";
- cptr s_heal = "²óÉü:";
+ cptr s_heal = " ²óÉü:%s";
#else
- cptr s_dam = "dam ";
+ cptr s_dam = " dam %s";
cptr s_dur = "dur ";
cptr s_range = "range ";
- cptr s_heal = "heal ";
+ cptr s_heal = " heal %s";
#endif
strcpy(p, "");
case MS_S_AMBERITE:
case MS_S_UNIQUE:
break;
- case MS_BALL_MANA:
- case MS_BALL_DARK:
- case MS_STARBURST:
- sprintf(p, " %s%d+10d10", s_dam, plev * 8 + 50);
- break;
+ case MS_BALL_MANA:
+ case MS_BALL_DARK:
+ case MS_STARBURST:
+ set_bluemage_damage((power), plev, s_dam, p); break;
case MS_DISPEL:
break;
- case MS_ROCKET:
- sprintf(p, " %s%d", s_dam, hp/4);
- break;
- case MS_SHOOT:
- {
- object_type *o_ptr = NULL;
- if (buki_motteruka(INVEN_RARM)) o_ptr = &inventory[INVEN_RARM];
- else if (buki_motteruka(INVEN_LARM)) o_ptr = &inventory[INVEN_LARM];
- else
- sprintf(p, " %s1", s_dam);
- if (o_ptr)
- sprintf(p, " %s%dd%d+%d", s_dam, o_ptr->dd, o_ptr->ds, o_ptr->to_d);
- break;
- }
- case MS_BR_ACID:
- case MS_BR_ELEC:
- case MS_BR_FIRE:
- case MS_BR_COLD:
- case MS_BR_POIS:
- case MS_BR_NUKE:
- sprintf(p, " %s%d", s_dam, hp/3);
- break;
- case MS_BR_NEXUS:
- sprintf(p, " %s%d", s_dam, MIN(hp/3, 250));
- break;
- case MS_BR_TIME:
- sprintf(p, " %s%d", s_dam, MIN(hp/3, 150));
- break;
- case MS_BR_GRAVITY:
- sprintf(p, " %s%d", s_dam, MIN(hp/3, 200));
- break;
- case MS_BR_MANA:
- sprintf(p, " %s%d", s_dam, MIN(hp/3, 250));
- break;
- case MS_BR_NETHER:
- case MS_BR_LITE:
- case MS_BR_DARK:
- case MS_BR_CONF:
- case MS_BR_SOUND:
- case MS_BR_CHAOS:
- case MS_BR_DISEN:
- case MS_BR_SHARDS:
- case MS_BR_PLASMA:
- sprintf(p, " %s%d", s_dam, hp/6);
- break;
- case MS_BR_INERTIA:
- case MS_BR_FORCE:
- sprintf(p, " %s%d", s_dam, MIN(hp/6, 200));
- break;
- case MS_BR_DISI:
- sprintf(p, " %s%d", s_dam, MIN(hp/6, 150));
- break;
- case MS_BALL_NUKE:
- sprintf(p, " %s%d+10d6", s_dam, plev * 2);
- break;
- case MS_BALL_CHAOS:
- sprintf(p, " %s%d+10d10", s_dam, plev * 4);
- break;
- case MS_BALL_ACID:
- sprintf(p, " %s15+d%d", s_dam, plev * 6);
- break;
- case MS_BALL_ELEC:
- sprintf(p, " %s8+d%d", s_dam, plev * 3);
- break;
- case MS_BALL_FIRE:
- sprintf(p, " %s10+d%d", s_dam, plev * 7);
- break;
- case MS_BALL_COLD:
- sprintf(p, " %s10+d%d", s_dam, plev * 3);
- break;
- case MS_BALL_POIS:
- sprintf(p, " %s12d2", s_dam);
- break;
- case MS_BALL_NETHER:
- sprintf(p, " %s%d+10d10", s_dam, plev * 2 + 50);
- break;
- case MS_BALL_WATER:
- sprintf(p, " %s50+d%d", s_dam, plev * 4);
- break;
- case MS_DRAIN_MANA:
- sprintf(p, " %sd%d+%d", s_heal, plev, plev);
- break;
- case MS_MIND_BLAST:
- sprintf(p, " %s8d8", s_dam);
- break;
- case MS_BRAIN_SMASH:
- sprintf(p, " %s12d15", s_dam);
- break;
- case MS_CAUSE_1:
- sprintf(p, " %s3d8", s_dam);
- break;
- case MS_CAUSE_2:
- sprintf(p, " %s8d8", s_dam);
- break;
- case MS_CAUSE_3:
- sprintf(p, " %s10d15", s_dam);
- break;
- case MS_CAUSE_4:
- sprintf(p, " %s15d15", s_dam);
- break;
- case MS_BOLT_ACID:
- sprintf(p, " %s%d+7d8", s_dam, plev * 2 / 3);
- break;
- case MS_BOLT_ELEC:
- sprintf(p, " %s%d+4d8", s_dam, plev * 2 / 3);
- break;
- case MS_BOLT_FIRE:
- sprintf(p, " %s%d+9d8", s_dam, plev * 2 / 3);
- break;
- case MS_BOLT_COLD:
- sprintf(p, " %s%d+6d8", s_dam, plev * 2 / 3);
- break;
- case MS_BOLT_NETHER:
- sprintf(p, " %s%d+5d5", s_dam, 30 + plev * 8 / 3);
- break;
- case MS_BOLT_WATER:
- sprintf(p, " %s%d+10d10", s_dam, plev * 2);
- break;
- case MS_BOLT_MANA:
- sprintf(p, " %s50+d%d", s_dam, plev * 7);
- break;
- case MS_BOLT_PLASMA:
- sprintf(p, " %s%d+8d7", s_dam, plev * 2 + 10);
- break;
- case MS_BOLT_ICE:
- sprintf(p, " %s%d+6d6", s_dam, plev * 2);
- break;
- case MS_MAGIC_MISSILE:
- sprintf(p, " %s%d+2d6", s_dam, plev * 2 / 3);
- break;
+ case MS_ROCKET:
+ case MS_SHOOT:
+ case MS_BR_ACID:
+ case MS_BR_ELEC:
+ case MS_BR_FIRE:
+ case MS_BR_COLD:
+ case MS_BR_POIS:
+ case MS_BR_NUKE:
+ case MS_BR_NEXUS:
+ case MS_BR_TIME:
+ case MS_BR_GRAVITY:
+ case MS_BR_MANA:
+ case MS_BR_NETHER:
+ case MS_BR_LITE:
+ case MS_BR_DARK:
+ case MS_BR_CONF:
+ case MS_BR_SOUND:
+ case MS_BR_CHAOS:
+ case MS_BR_DISEN:
+ case MS_BR_SHARDS:
+ case MS_BR_PLASMA:
+ case MS_BR_INERTIA:
+ case MS_BR_FORCE:
+ case MS_BR_DISI:
+ case MS_BALL_NUKE:
+ case MS_BALL_CHAOS:
+ case MS_BALL_ACID:
+ case MS_BALL_ELEC:
+ case MS_BALL_FIRE:
+ case MS_BALL_COLD:
+ case MS_BALL_POIS:
+ case MS_BALL_NETHER:
+ case MS_BALL_WATER:
+ set_bluemage_damage((power), plev, s_dam, p); break;
+ case MS_DRAIN_MANA:
+ set_bluemage_damage((power), plev, s_heal, p); break;
+ case MS_MIND_BLAST:
+ case MS_BRAIN_SMASH:
+ case MS_CAUSE_1:
+ case MS_CAUSE_2:
+ case MS_CAUSE_3:
+ case MS_CAUSE_4:
+ case MS_BOLT_ACID:
+ case MS_BOLT_ELEC:
+ case MS_BOLT_FIRE:
+ case MS_BOLT_COLD:
+ case MS_BOLT_NETHER:
+ case MS_BOLT_WATER:
+ case MS_BOLT_MANA:
+ case MS_BOLT_PLASMA:
+ case MS_BOLT_ICE:
+ case MS_MAGIC_MISSILE:
+ set_bluemage_damage((power), plev, s_dam, p); break;
case MS_SPEED:
sprintf(p, " %sd%d+%d", s_dur, 20+plev, plev);
break;
- case MS_HEAL:
- sprintf(p, " %s%d", s_heal, plev*4);
- break;
+ case MS_HEAL:
+ set_bluemage_damage((power), plev, s_heal, p); break;
case MS_INVULNER:
sprintf(p, " %sd7+7", s_dur);
break;
case MS_TELEPORT:
sprintf(p, " %s%d", s_range, plev * 5);
break;
- case MS_PSY_SPEAR:
- sprintf(p, " %s100+d%d", s_dam, plev * 3);
+ case MS_PSY_SPEAR:
+ set_bluemage_damage((power), plev, s_dam, p); break;
break;
case MS_RAISE_DEAD:
sprintf(p, " %s5", s_range);
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "You fire a rocket."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_ROCKET), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_ROCKET), plev, DAM_ROLL);
fire_rocket(GF_ROCKET, dir, damage, 2);
break;
case MS_SHOOT:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("Ìð¤òÊü¤Ã¤¿¡£", "You fire an arrow."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_SHOOT), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_SHOOT), plev, DAM_ROLL);
fire_bolt(GF_ARROW, dir, damage);
break;
}
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("»À¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe acid."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_ACID), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_ACID), plev, DAM_ROLL);
fire_ball(GF_ACID, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_ELEC:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("°ðºÊ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe lightning."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_ELEC), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_ELEC), plev, DAM_ROLL);
fire_ball(GF_ELEC, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_FIRE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("²Ð±ê¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe fire."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_FIRE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_FIRE), plev, DAM_ROLL);
fire_ball(GF_FIRE, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_COLD:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("Î䵤¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe frost."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_COLD), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_COLD), plev, DAM_ROLL);
fire_ball(GF_COLD, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_POIS:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¬¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe gas."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_POIS), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_POIS), plev, DAM_ROLL);
fire_ball(GF_POIS, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_NETHER:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ÃϹö¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe nether."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_NETH), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_NETHER), plev, DAM_ROLL);
fire_ball(GF_NETHER, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_LITE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("Á®¸÷¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe light."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_LITE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_LITE), plev, DAM_ROLL);
fire_ball(GF_LITE, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_DARK:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("°Å¹õ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe darkness."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_DARK), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_DARK), plev, DAM_ROLL);
fire_ball(GF_DARK, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_CONF:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("º®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe confusion."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_CONF), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_CONF), plev, DAM_ROLL);
fire_ball(GF_CONFUSION, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_SOUND:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¹ì²»¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe sound."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_SOUN), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_SOUND), plev, DAM_ROLL);
fire_ball(GF_SOUND, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_CHAOS:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥«¥ª¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe chaos."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_CHAO), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_CHAOS), plev, DAM_ROLL);
fire_ball(GF_CHAOS, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_DISEN:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("Îô²½¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe disenchantment."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_DISEN), plev, DAM_ROLL);
fire_ball(GF_DISENCHANT, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_NEXUS:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("°ø²Ìº®Íð¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe nexus."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_NEXU), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_NEXUS), plev, DAM_ROLL);
fire_ball(GF_NEXUS, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_TIME:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("»þ´ÖµÕž¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe time."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_TIME), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_TIME), plev, DAM_ROLL);
fire_ball(GF_TIME, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_INERTIA:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ÃÙÆߤΥ֥쥹¤òÅǤ¤¤¿¡£", "You breathe inertia."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_INER), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_INERTIA), plev, DAM_ROLL);
fire_ball(GF_INERTIA, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_GRAVITY:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("½ÅÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", "You breathe gravity."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_GRAV), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_GRAVITY), plev, DAM_ROLL);
fire_ball(GF_GRAVITY, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_SHARDS:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ÇËÊҤΥ֥쥹¤òÅǤ¤¤¿¡£", "You breathe shards."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_SHAR), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_SHARDS), plev, DAM_ROLL);
fire_ball(GF_SHARDS, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_PLASMA:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥×¥é¥º¥Þ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe plasma."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_PLAS), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_PLASMA), plev, DAM_ROLL);
fire_ball(GF_PLASMA, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_FORCE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥Õ¥©¡¼¥¹¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe force."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_WALL), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_FORCE), plev, DAM_ROLL);
fire_ball(GF_FORCE, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BR_MANA:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ËâÎϤΥ֥쥹¤òÅǤ¤¤¿¡£", "You breathe mana."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_MANA), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_MANA), plev, DAM_ROLL);
fire_ball(GF_MANA, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BALL_NUKE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("Êü¼Íǽµå¤òÊü¤Ã¤¿¡£", "You cast a ball of radiation."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BA_NUKE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_NUKE), plev, DAM_ROLL);
fire_ball(GF_NUKE, dir, damage, 2);
break;
case MS_BR_NUKE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("Êü¼ÍÀÇÑ´þʪ¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe toxic waste."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_NUKE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_NUKE), plev, DAM_ROLL);
fire_ball(GF_NUKE, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BALL_CHAOS:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "You invoke a raw Logrus."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BA_CHAO), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_CHAOS), plev, DAM_ROLL);
fire_ball(GF_CHAOS, dir, damage, 4);
break;
case MS_BR_DISI:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ʬ²ò¤Î¥Ö¥ì¥¹¤òÅǤ¤¤¿¡£", "You breathe disintegration."));
- damage = monspell_bluemage_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISI), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BR_DISI), plev, DAM_ROLL);
fire_ball(GF_DISINTEGRATE, dir, damage, (plev > 40 ? -3 : -2));
break;
case MS_BALL_ACID:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¢¥·¥Ã¥É¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast an acid ball."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_ACID), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_ACID), plev, DAM_ROLL);
fire_ball(GF_ACID, dir, damage, 2);
break;
case MS_BALL_ELEC:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥µ¥ó¥À¡¼¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a lightning ball."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_ELEC), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_ELEC), plev, DAM_ROLL);
fire_ball(GF_ELEC, dir, damage, 2);
break;
case MS_BALL_FIRE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥Õ¥¡¥¤¥¢¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a fire ball."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_FIRE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_FIRE), plev, DAM_ROLL);
fire_ball(GF_FIRE, dir, damage, 2);
break;
case MS_BALL_COLD:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¢¥¤¥¹¡¦¥Ü¡¼¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a frost ball."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_COLD), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_COLD), plev, DAM_ROLL);
fire_ball(GF_COLD, dir, damage, 2);
break;
case MS_BALL_POIS:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a stinking cloud."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_POIS), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_POIS), plev, DAM_ROLL);
fire_ball(GF_POIS, dir, damage, 2);
break;
case MS_BALL_NETHER:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a nether ball."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_NETH), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_NETHER), plev, DAM_ROLL);
fire_ball(GF_NETHER, dir, damage, 2);
break;
case MS_BALL_WATER:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ή¤ì¤ë¤è¤¦¤Ê¿È¿¶¤ê¤ò¤·¤¿¡£", "You gesture fluidly."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_WATE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_WATER), plev, DAM_ROLL);
fire_ball(GF_WATER, dir, damage, 4);
break;
case MS_BALL_MANA:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "You invoke a mana storm."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_MANA), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_MANA), plev, DAM_ROLL);
fire_ball(GF_MANA, dir, damage, 4);
break;
case MS_BALL_DARK:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "You invoke a darkness storm."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_DARK), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BALL_DARK), plev, DAM_ROLL);
fire_ball(GF_DARK, dir, damage, 4);
break;
case MS_DRAIN_MANA:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_DRAIN_MANA), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_DRAIN_MANA), plev, DAM_ROLL);
fire_ball_hide(GF_DRAIN_MANA, dir, damage, 0);
break;
case MS_MIND_BLAST:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_MIND_BLAST), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_MIND_BLAST), plev, DAM_ROLL);
fire_ball_hide(GF_MIND_BLAST, dir, damage, 0);
break;
case MS_BRAIN_SMASH:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BRAIN_SMASH), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BRAIN_SMASH), plev, DAM_ROLL);
fire_ball_hide(GF_BRAIN_SMASH, dir, damage, 0);
break;
case MS_CAUSE_1:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_1), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_CAUSE_1), plev, DAM_ROLL);
fire_ball_hide(GF_CAUSE_1, dir, damage, 0);
break;
case MS_CAUSE_2:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_2), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_CAUSE_2), plev, DAM_ROLL);
fire_ball_hide(GF_CAUSE_2, dir, damage, 0);
break;
case MS_CAUSE_3:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_3), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_CAUSE_3), plev, DAM_ROLL);
fire_ball_hide(GF_CAUSE_3, dir, damage, 0);
break;
case MS_CAUSE_4:
if (!get_aim_dir(&dir)) return FALSE;
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_4), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_CAUSE_4), plev, DAM_ROLL);
fire_ball_hide(GF_CAUSE_4, dir, damage, 0);
break;
case MS_BOLT_ACID:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast an acid bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_ACID), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_ACID), plev, DAM_ROLL);
fire_bolt(GF_ACID, dir, damage);
break;
case MS_BOLT_ELEC:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a lightning bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_ELEC), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_ELEC), plev, DAM_ROLL);
fire_bolt(GF_ELEC, dir, damage);
break;
case MS_BOLT_FIRE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a fire bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_FIRE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_FIRE), plev, DAM_ROLL);
fire_bolt(GF_FIRE, dir, damage);
break;
case MS_BOLT_COLD:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a frost bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_COLD), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_COLD), plev, DAM_ROLL);
fire_bolt(GF_COLD, dir, damage);
break;
case MS_STARBURST:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "You invoke a starburst."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BA_LITE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_STARBURST), plev, DAM_ROLL);
fire_ball(GF_LITE, dir, damage, 4);
break;
case MS_BOLT_NETHER:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a nether bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_NETH), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_NETHER), plev, DAM_ROLL);
fire_bolt(GF_NETHER, dir, damage);
break;
case MS_BOLT_WATER:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a water bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_WATE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_WATER), plev, DAM_ROLL);
fire_bolt(GF_WATER, dir, damage);
break;
case MS_BOLT_MANA:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("ËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a mana bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_MANA), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_MANA), plev, DAM_ROLL);
fire_bolt(GF_MANA, dir, damage);
break;
case MS_BOLT_PLASMA:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a plasma bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_PLAS), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_PLASMA), plev, DAM_ROLL);
fire_bolt(GF_PLASMA, dir, damage);
break;
case MS_BOLT_ICE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a ice bolt."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_BO_ICEE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_BOLT_ICE), plev, DAM_ROLL);
fire_bolt(GF_ICE, dir, damage);
break;
case MS_MAGIC_MISSILE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "You cast a magic missile."));
- damage = monspell_bluemage_damage(monspell_num(RF5_SPELL_START, RF5_MISSILE), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_MAGIC_MISSILE), plev, DAM_ROLL);
fire_bolt(GF_MISSILE, dir, damage);
break;
case MS_SCARE:
if (!get_aim_dir(&dir)) return FALSE;
msg_print(_("¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "You throw a psycho-spear."));
- damage = monspell_bluemage_damage(monspell_num(RF6_SPELL_START, RF6_PSY_SPEAR), plev, DAM_ROLL);
+ damage = monspell_bluemage_damage((MS_PSY_SPEAR), plev, DAM_ROLL);
(void)fire_beam(GF_PSY_SPEAR, dir, damage);
break;
case MS_DARKNESS:
#include "angband.h"
/*!
-* @brief ¥â¥ó¥¹¥¿¡¼¤Î¼öʸ¤ÎÄ̤·ÈÖ¹æ¤ò¼èÆÀ¤¹¤ë /
-* @param SPELL_NUM_BASE RF4¤Ê¤éRF4_SPELL_START¤Î¤è¤¦¤Ë32¶èÀÚ¤ê¤Î¥Ù¡¼¥¹¤È¤Ê¤ë¿ôÃÍ
-* @param SPELL_FLAG RF4_SHRIEK¤Ê¤É¤Î¥¹¥Ú¥ë¥Õ¥é¥°
-* @return ¼öʸ¤ÎÄ̤·Èֹ档
-*/
-int monspell_num(int SPELL_NUM_BASE, u32b SPELL_FLAG)
-{
- int k;
- for (k = 0; k < 32; k++)
- {
- if (SPELL_FLAG & (1L << k)) return k + SPELL_NUM_BASE;
- }
- return 0;
-}
-
-
-/*!
* @brief ¥â¥ó¥¹¥¿¡¼ID¤ò¼è¤ê¡¢¥â¥ó¥¹¥¿¡¼Ì¾¤òm_name¤ËÂåÆþ¤¹¤ë /
* @param m_idx ¥â¥ó¥¹¥¿¡¼ID
* @param m_name ¥â¥ó¥¹¥¿¡¼Ì¾¤òÆþÎϤ¹¤ëÇÛÎó
{
monster_type *m_ptr = &m_list[m_idx];
monster_race *r_ptr = &r_info[m_ptr->r_idx];
- return (r_ptr->flags2 & RF2_POWERFUL);
+ bool powerful = r_ptr->flags2 & RF2_POWERFUL ? TRUE : FALSE;
+ return powerful;
}
/*!
_("%^s¤¬%s¤Ë¥í¥±¥Ã¥È¤òȯ¼Í¤·¤¿¡£", "%^s fires a rocket at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_ROCKET), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_ROCKET), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_ROCKET, dam, 2, FALSE, MS_ROCKET, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_SHARD);
_("%^s¤¬%s¤ËÌð¤òÊü¤Ã¤¿¡£", "%^s fires an arrow at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_SHOOT), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_SHOOT), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_ARROW, dam, MS_SHOOT, TARGET_TYPE);
sound(SOUND_SHOOT);
switch (GF_TYPE)
{
case GF_ACID:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_ACID), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_ACID), m_idx, DAM_ROLL);
type_s = _("»À", "acid");
ms_type = MS_BR_ACID;
drs_type = DRS_ACID;
break;
case GF_ELEC:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_ELEC), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_ELEC), m_idx, DAM_ROLL);
type_s = _("°ðºÊ", "lightning");
ms_type = MS_BR_ELEC;
drs_type = DRS_ELEC;
break;
case GF_FIRE:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_FIRE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_FIRE), m_idx, DAM_ROLL);
type_s = _("²Ð±ê", "fire");
ms_type = MS_BR_FIRE;
drs_type = DRS_FIRE;
break;
case GF_COLD:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_COLD), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_COLD), m_idx, DAM_ROLL);
type_s = _("Î䵤", "frost");
ms_type = MS_BR_COLD;
drs_type = DRS_COLD;
break;
case GF_POIS:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_POIS), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_POIS), m_idx, DAM_ROLL);
type_s = _("¥¬¥¹", "gas");
ms_type = MS_BR_POIS;
drs_type = DRS_POIS;
break;
case GF_NETHER:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_NETH), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_NETHER), m_idx, DAM_ROLL);
type_s = _("ÃϹö", "nether");
ms_type = MS_BR_NETHER;
drs_type = DRS_NETH;
break;
case GF_LITE:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_LITE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_LITE), m_idx, DAM_ROLL);
type_s = _("Á®¸÷", "light");
ms_type = MS_BR_LITE;
drs_type = DRS_LITE;
break;
case GF_DARK:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_DARK), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_DARK), m_idx, DAM_ROLL);
type_s = _("°Å¹õ", "darkness");
ms_type = MS_BR_DARK;
drs_type = DRS_DARK;
break;
case GF_CONFUSION:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_CONF), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_CONF), m_idx, DAM_ROLL);
type_s = _("º®Íð", "confusion");
ms_type = MS_BR_CONF;
drs_type = DRS_CONF;
break;
case GF_SOUND:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_SOUN), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_SOUND), m_idx, DAM_ROLL);
type_s = _("¹ì²»", "sound");
ms_type = MS_BR_SOUND;
drs_type = DRS_SOUND;
break;
case GF_CHAOS:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_CHAO), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_CHAOS), m_idx, DAM_ROLL);
type_s = _("¥«¥ª¥¹", "chaos");
ms_type = MS_BR_CHAOS;
drs_type = DRS_CHAOS;
break;
case GF_DISENCHANT:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_DISEN), m_idx, DAM_ROLL);
type_s = _("Îô²½", "disenchantment");
ms_type = MS_BR_DISEN;
drs_type = DRS_DISEN;
break;
case GF_NEXUS:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_NEXU), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_NEXUS), m_idx, DAM_ROLL);
type_s = _("°ø²Ìº®Íð", "nexus");
ms_type = MS_BR_NEXUS;
drs_type = DRS_NEXUS;
break;
case GF_TIME:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_TIME), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_TIME), m_idx, DAM_ROLL);
type_s = _("»þ´ÖµÕž", "time");
ms_type = MS_BR_TIME;
smart_learn = FALSE;
break;
case GF_INERTIA:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_INER), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_INERTIA), m_idx, DAM_ROLL);
type_s = _("ÃÙÆß", "inertia");
ms_type = MS_BR_INERTIA;
smart_learn = FALSE;
break;
case GF_GRAVITY:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_GRAV), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_GRAVITY), m_idx, DAM_ROLL);
type_s = _("½ÅÎÏ", "gravity");
ms_type = MS_BR_GRAVITY;
smart_learn = FALSE;
break;
case GF_SHARDS:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_SHAR), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_SHARDS), m_idx, DAM_ROLL);
type_s = _("ÇËÊÒ", "shards");
ms_type = MS_BR_SHARDS;
drs_type = DRS_SHARD;
break;
case GF_PLASMA:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_PLAS), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_PLASMA), m_idx, DAM_ROLL);
type_s = _("¥×¥é¥º¥Þ", "plasma");
ms_type = MS_BR_PLASMA;
smart_learn = FALSE;
break;
case GF_FORCE:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_WALL), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_FORCE), m_idx, DAM_ROLL);
type_s = _("¥Õ¥©¡¼¥¹", "force");
ms_type = MS_BR_FORCE;
smart_learn = FALSE;
break;
case GF_MANA:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_MANA), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_MANA), m_idx, DAM_ROLL);
type_s = _("ËâÎÏ", "mana");
ms_type = MS_BR_MANA;
smart_learn = FALSE;
break;
case GF_NUKE:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_NUKE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_NUKE), m_idx, DAM_ROLL);
type_s = _("Êü¼ÍÀÇÑ´þʪ", "toxic waste");
ms_type = MS_BR_NUKE;
drs_type = DRS_POIS;
break;
case GF_DISINTEGRATE:
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BR_DISI), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BR_DISI), m_idx, DAM_ROLL);
type_s = _("ʬ²ò", "disintegration");
ms_type = MS_BR_DISI;
smart_learn = FALSE;
_("%^s¤¬%s¤ËÊü¼Íǽµå¤òÊü¤Ã¤¿¡£", "%^s casts a ball of radiation at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BA_NUKE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_NUKE), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_NUKE, dam, 2, FALSE, MS_BALL_NUKE, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_POIS);
_("%^s¤¬%s¤Ë½ã¥í¥°¥ë¥¹¤òÊü¤Ã¤¿¡£", "%^s invokes raw Logrus upon %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF4_SPELL_START, RF4_BA_CHAO), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_CHAOS), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_CHAOS, dam, 4, FALSE, MS_BALL_CHAOS, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_CHAOS);
TARGET_TYPE);
rad = monster_is_powerful(m_idx) ? 4 : 2;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_ACID), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_ACID), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_ACID, dam, rad, FALSE, MS_BALL_ACID, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_ACID);
TARGET_TYPE);
rad = monster_is_powerful(m_idx) ? 4 : 2;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_ELEC), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_ELEC), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_ELEC, dam, rad, FALSE, MS_BALL_ELEC, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_ELEC);
TARGET_TYPE);
}
rad = monster_is_powerful(m_idx) ? 4 : 2;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_FIRE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_FIRE), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_FIRE, dam, rad, FALSE, MS_BALL_FIRE, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_FIRE);
TARGET_TYPE);
rad = monster_is_powerful(m_idx) ? 4 : 2;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_COLD), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_COLD), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_COLD, dam, rad, FALSE, MS_BALL_COLD, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_COLD);
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ°½±À¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a stinking cloud at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_POIS), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_POIS), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_POIS, dam, 2, FALSE, MS_BALL_POIS, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_POIS);
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹöµå¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether ball at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_NETH), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_NETHER), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_NETHER, dam, 2, FALSE, MS_BALL_NETHER, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_NETH);
msg_format(_("%^s¤Ï±²´¬¤Ë°û¤ß¹þ¤Þ¤ì¤¿¡£", "%^s is engulfed in a whirlpool."), t_name);
}
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_WATE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_WATER), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_WATER, dam, 4, FALSE, MS_BALL_WATER, TARGET_TYPE);
return dam;
}
_("%^s¤¬%s¤ËÂФ·¤ÆËâÎϤÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a mana storm upon %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_MANA), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_MANA), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_MANA, dam, 4, FALSE, MS_BALL_MANA, TARGET_TYPE);
return dam;
}
_("%^s¤¬%s¤ËÂФ·¤Æ°Å¹õ¤ÎÍò¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a darkness storm upon %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_DARK), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BALL_DARK), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_DARK, dam, 4, FALSE, MS_BALL_DARK, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_DARK);
msg_format(_("%^s¤ÏÀº¿À¥¨¥Í¥ë¥®¡¼¤ò%s¤«¤éµÛ¤¤¤È¤Ã¤¿¡£", "%^s draws psychic energy from %s."), m_name, t_name);
}
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_DRAIN_MANA), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_DRAIN_MANA), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_DRAIN_MANA, dam, 0, FALSE, MS_DRAIN_MANA, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_MANA);
msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name);
}
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_MIND_BLAST), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_MIND_BLAST), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_MIND_BLAST, dam, 0, FALSE, MS_MIND_BLAST, TARGET_TYPE);
return dam;
}
msg_format(_("%^s¤Ï%s¤ò¤¸¤Ã¤Èâˤó¤À¡£", "%^s gazes intently at %s."), m_name, t_name);
}
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BRAIN_SMASH), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BRAIN_SMASH), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_BRAIN_SMASH, dam, 0, FALSE, MS_BRAIN_SMASH, TARGET_TYPE);
return dam;
}
{
cptr msg1, msg2, msg3;
int dam;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_1), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_CAUSE_1), m_idx, DAM_ROLL);
msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles.");
msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¼ö¤Ã¤¿¡£", "%^s points at you and curses.");
{
cptr msg1, msg2, msg3;
int dam;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_2), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_CAUSE_2), m_idx, DAM_ROLL);
msg1 = _("%^s¤¬²¿¤«¤ò¤Ä¤Ö¤ä¤¤¤¿¡£", "%^s mumbles.");
msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼ö¤Ã¤¿¡£", "%^s points at you and curses horribly.");
{
cptr msg1, msg2, msg3;
int dam;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_3), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_CAUSE_3), m_idx, DAM_ROLL);
msg1 = _("%^s¤¬²¿¤«¤òÂçÀ¼¤Ç¶«¤ó¤À¡£", "%^s mumbles loudly.");
msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ò»Ø¤µ¤·¤Æ¶²¤í¤·¤²¤Ë¼öʸ¤ò¾§¤¨¤¿¡ª", "%^s points at you, incanting terribly!");
{
cptr msg1, msg2, msg3;
int dam;
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_CAUSE_4), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_CAUSE_4), m_idx, DAM_ROLL);
msg1 = _("%^s¤¬¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s screams the word 'DIE!'");
msg2 = _("%^s¤¬¤¢¤Ê¤¿¤ÎÈ빦¤òÆͤ¤¤Æ¡Ö¤ªÁ°¤Ï´û¤Ë»à¤ó¤Ç¤¤¤ë¡×¤È¶«¤ó¤À¡£", "%^s points at you, screaming the word DIE!");
_("%s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥·¥Ã¥É¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an acid bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_ACID), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_ACID), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_ACID, dam, MS_BOLT_ACID, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥µ¥ó¥À¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a lightning bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_ELEC), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_ELEC), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_ELEC, dam, MS_BOLT_ELEC, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Õ¥¡¥¤¥¢¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a fire bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_FIRE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_FIRE), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_FIRE, dam, MS_BOLT_FIRE, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¢¥¤¥¹¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a frost bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_COLD), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_COLD), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_COLD, dam, MS_BOLT_COLD, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤ËÂФ·¤Æ¥¹¥¿¡¼¥Ð¡¼¥¹¥È¤Î¼öʸ¤òÇ°¤¸¤¿¡£", "%^s invokes a starburst upon %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BA_LITE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_STARBURST), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_LITE, dam, 4, FALSE, MS_STARBURST, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
update_smart_learn(m_idx, DRS_LITE);
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆÃϹö¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a nether bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_NETH), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_NETHER), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_NETHER, dam, MS_BOLT_NETHER, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥¦¥©¡¼¥¿¡¼¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a water bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_WATE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_WATER), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_WATER, dam, MS_BOLT_WATER, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤ÆËâÎϤÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a mana bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_MANA), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_MANA), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_MANA, dam, MS_BOLT_MANA, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥×¥é¥º¥Þ¡¦¥Ü¥ë¥È¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a plasma bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_PLAS), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_PLASMA), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_PLASMA, dam, MS_BOLT_PLASMA, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¶Ë´¨¤ÎÌð¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts an ice bolt at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_BO_ICEE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_BOLT_ICE), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_ICE, dam, MS_BOLT_ICE, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¥Þ¥¸¥Ã¥¯¡¦¥ß¥µ¥¤¥ë¤Î¼öʸ¤ò¾§¤¨¤¿¡£", "%^s casts a magic missile at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF5_SPELL_START, RF5_MISSILE), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_MAGIC_MISSILE), m_idx, DAM_ROLL);
bolt(m_idx, y, x, GF_MISSILE, dam, MS_MAGIC_MISSILE, TARGET_TYPE);
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
if (TARGET_TYPE == MONSTER_TO_PLAYER)
{
- dam = monspell_damage(monspell_num(RF6_SPELL_START, RF6_HAND_DOOM), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_HAND_DOOM), m_idx, DAM_ROLL);
breath(y, x, m_idx, GF_HAND_DOOM, dam, 0, FALSE, MS_HAND_DOOM, MONSTER_TO_PLAYER);
}
else if (TARGET_TYPE == MONSTER_TO_MONSTER)
_("%^s¤¬%s¤Ë¸þ¤«¤Ã¤Æ¸÷¤Î·õ¤òÊü¤Ã¤¿¡£", "%^s throw a Psycho-spear at %s."),
TARGET_TYPE);
- dam = monspell_damage(monspell_num(RF6_SPELL_START, RF6_PSY_SPEAR), m_idx, DAM_ROLL);
+ dam = monspell_damage((MS_PSY_SPEAR), m_idx, DAM_ROLL);
beam(m_idx, y, x, GF_PSY_SPEAR, dam, MS_PSY_SPEAR, MONSTER_TO_PLAYER);
return dam;
}
}
/*!
+* @brief ¥â¥ó¥¹¥¿¡¼¤Î»È¤¦¼öʸ¤Î°ÒÎϤò·èÄꤹ¤ë /
+* @param dam Äê¿ôÃÍ
+* @param dice_num ¥À¥¤¥¹¿ô
+* @param dice_side ¥À¥¤¥¹ÌÌ
+* @param mult ¥À¥¤¥¹ÇÜΨ
+* @param div ¥À¥¤¥¹ÇÜΨ
+* @param TYPE DAM_MAX¤ÇºÇÂçÃͤòÊÖ¤·¡¢DAM_MIN¤ÇºÇ¾®ÃͤòÊÖ¤¹¡£DAM_ROLL¤Ï¥À¥¤¥¹¤ò¿¶¤Ã¤ÆÃͤò·èÄꤹ¤ë¡£
+* @return ¹¶·â¼öʸ¤Î¥À¥á¡¼¥¸¤òÊÖ¤¹¡£¹¶·â¼öʸ°Ê³°¤Ï-1¤òÊÖ¤¹¡£
+*/
+int monspell_damage_roll(int dam, int dice_num, int dice_side, int mult, int div, int TYPE)
+{
+ switch (TYPE)
+ {
+ case DAM_MAX: dam += maxroll(dice_num, dice_side) * mult / div; break;
+ case DAM_MIN: dam += dice_num * 1 * mult / div; break;
+ case DAM_ROLL: dam += damroll(dice_num, dice_side) * mult / div; break;
+ case DICE_NUM: return dice_num;
+ case DICE_SIDE: return dice_side;
+ case DICE_MULT: return mult;
+ case DICE_DIV: return div;
+ case BASE_DAM: return dam;
+ }
+ if (dam < 1) dam = 1;
+ return dam;
+}
+
+/*!
* @brief ¥â¥ó¥¹¥¿¡¼¤Î»È¤¦¼öʸ¤Î°ÒÎϤòÊÖ¤¹ /
* @param SPELL_NUM ¼öʸÈÖ¹æ
* @param hp ¼öʸ¤ò¾§¤¨¤ë¥â¥ó¥¹¥¿¡¼¤ÎÂÎÎÏ
switch (SPELL_NUM)
{
- case RF4_SPELL_START + 0: return -1; /* RF4_SHRIEK */
- case RF4_SPELL_START + 1: return -1; /* RF4_XXX1 */
- case RF4_SPELL_START + 2: return -1; /* RF4_DISPEL */
+ case MS_SHRIEK: return -1; /* RF4_SHRIEK */
+ case MS_XXX1: return -1; /* RF4_XXX1 */
+ case MS_DISPEL: return -1; /* RF4_DISPEL */
/* RF4_ROCKET */
- case RF4_SPELL_START + 3:
+ case MS_ROCKET:
dam = (hp / 4) > 800 ? 800 : (hp / 4);
break;
/* RF4_SHOOT */
- case RF4_SPELL_START + 4:
+ case MS_SHOOT:
dice_num = shoot_dd;
dice_side = shoot_ds;
dam = shoot_base;
break;
- case RF4_SPELL_START + 5: return -1; /* RF4_XXX2 */
- case RF4_SPELL_START + 6: return -1; /* RF4_XXX3 */
- case RF4_SPELL_START + 7: return -1; /* RF4_XXX4 */
+ case MS_XXX2: return -1; /* RF4_XXX2 */
+ case MS_XXX3: return -1; /* RF4_XXX3 */
+ case MS_XXX4: return -1; /* RF4_XXX4 */
/* RF4_BR_ACID */
/* RF4_BR_ELEC */
/* RF4_BR_FIRE */
/* RF4_BR_COLD */
- case RF4_SPELL_START + 8:
- case RF4_SPELL_START + 9:
- case RF4_SPELL_START + 10:
- case RF4_SPELL_START + 11:
+ case MS_BR_ACID:
+ case MS_BR_ELEC:
+ case MS_BR_FIRE:
+ case MS_BR_COLD:
dam = ((hp / 3) > 1600 ? 1600 : (hp / 3));
break;
/* RF4_BR_POIS */
- case RF4_SPELL_START + 12:
+ case MS_BR_POIS:
dam = ((hp / 3) > 800 ? 800 : (hp / 3));
break;
/* RF4_BR_NETH */
- case RF4_SPELL_START + 13:
+ case MS_BR_NETHER:
dam = ((hp / 6) > 550 ? 550 : (hp / 6));
break;
/* RF4_BR_LITE */
/* RF4_BR_DARK */
- case RF4_SPELL_START + 14:
- case RF4_SPELL_START + 15:
+ case MS_BR_LITE:
+ case MS_BR_DARK:
dam = ((hp / 6) > 400 ? 400 : (hp / 6));
break;
/* RF4_BR_CONF */
/* RF4_BR_SOUN */
- case RF4_SPELL_START + 16:
- case RF4_SPELL_START + 17:
+ case MS_BR_CONF:
+ case MS_BR_SOUND:
dam = ((hp / 6) > 450 ? 450 : (hp / 6));
break;
/* RF4_BR_CHAO */
- case RF4_SPELL_START + 18:
+ case MS_BR_CHAOS:
dam = ((hp / 6) > 600 ? 600 : (hp / 6));
break;
/* RF4_BR_DISE */
- case RF4_SPELL_START + 19:
+ case MS_BR_DISEN:
dam = ((hp / 6) > 500 ? 500 : (hp / 6));
break;
/* RF4_BR_NEXU */
- case RF4_SPELL_START + 20:
+ case MS_BR_NEXUS:
dam = ((hp / 3) > 250 ? 250 : (hp / 3));
break;
/* RF4_BR_TIME */
- case RF4_SPELL_START + 21:
+ case MS_BR_TIME:
dam = ((hp / 3) > 150 ? 150 : (hp / 3));
break;
/* RF4_BR_INER */
/* RF4_BR_GRAV */
- case RF4_SPELL_START + 22:
- case RF4_SPELL_START + 23:
+ case MS_BR_INERTIA:
+ case MS_BR_GRAVITY:
dam = ((hp / 6) > 200 ? 200 : (hp / 6));
break;
/* RF4_BR_SHAR */
- case RF4_SPELL_START + 24:
+ case MS_BR_SHARDS:
dam = ((hp / 6) > 500 ? 500 : (hp / 6));
break;
/* RF4_BR_PLAS */
- case RF4_SPELL_START + 25:
+ case MS_BR_PLASMA:
dam = ((hp / 6) > 150 ? 150 : (hp / 6));
break;
/* RF4_BR_WALL */
- case RF4_SPELL_START + 26:
+ case MS_BR_FORCE:
dam = ((hp / 6) > 200 ? 200 : (hp / 6));
break;
/* RF4_BR_MANA */
- case RF4_SPELL_START + 27:
+ case MS_BR_MANA:
dam = ((hp / 3) > 250 ? 250 : (hp / 3));
break;
/* RF4_BA_NUKE */
- case RF4_SPELL_START + 28:
+ case MS_BALL_NUKE:
mult = powerful ? 2 : 1;
dam = rlev * (mult / div);
dice_num = 10;
break;
/* RF4_BR_NUKE */
- case RF4_SPELL_START + 29:
+ case MS_BR_NUKE:
dam = ((hp / 3) > 800 ? 800 : (hp / 3));
break;
/* RF4_BA_CHAO */
- case RF4_SPELL_START + 30:
+ case MS_BALL_CHAOS:
dam = (powerful ? (rlev * 3) : (rlev * 2));
dice_num = 10;
dice_side = 10;
break;
/* RF4_BR_DISI */
- case RF4_SPELL_START + 31:
+ case MS_BR_DISI:
dam = ((hp / 6) > 150 ? 150 : (hp / 6));
break;
/* RF5_BA_ACID */
- case RF5_SPELL_START + 0:
+ case MS_BALL_ACID:
if (powerful)
{
dam = (rlev * 4) + 50;
break;
/* RF5_BA_ELEC */
- case RF5_SPELL_START + 1:
+ case MS_BALL_ELEC:
if (powerful)
{
dam = (rlev * 4) + 50;
break;
/* RF5_BA_FIRE */
- case RF5_SPELL_START + 2:
+ case MS_BALL_FIRE:
if (powerful)
{
dam = (rlev * 4) + 50;
break;
/* RF5_BA_COLD */
- case RF5_SPELL_START + 3:
+ case MS_BALL_COLD:
if (powerful)
{
dam = (rlev * 4) + 50;
break;
/* RF5_BA_POIS */
- case RF5_SPELL_START + 4:
+ case MS_BALL_POIS:
mult = powerful ? 2 : 1;
dice_num = 12;
dice_side = 2;
break;
/* RF5_BA_NETH */
- case RF5_SPELL_START + 5:
- dam = 50 + (rlev * powerful ? 2 : 1);
+ case MS_BALL_NETHER:
+ dam = 50 + rlev * (powerful ? 2 : 1);
dice_num = 10;
dice_side = 10;
break;
/* RF5_BA_WATE */
- case RF5_SPELL_START + 6:
+ case MS_BALL_WATER:
dam = 50;
dice_num = 1;
dice_side = powerful ? (rlev * 3) : (rlev * 2);
/* RF5_BA_MANA */
/* RF5_BA_DARK */
- case RF5_SPELL_START + 7:
- case RF5_SPELL_START + 8:
+ case MS_BALL_MANA:
+ case MS_BALL_DARK:
dam = (rlev * 4) + 50;
dice_num = 10;
dice_side = 10;
break;
/* RF5_DRAIN_MANA */
- case RF5_SPELL_START + 9:
- dam = 1;
- div = 2;
+ case MS_DRAIN_MANA:
+ dam = rlev;
+ div = 1;
dice_num = 1;
dice_side = rlev;
break;
/* RF5_MIND_BLAST */
- case RF5_SPELL_START + 10:
+ case MS_MIND_BLAST:
dice_num = 7;
dice_side = 7;
break;
/* RF5_BRAIN_SMASH */
- case RF5_SPELL_START + 11:
+ case MS_BRAIN_SMASH:
dice_num = 12;
dice_side = 12;
break;
/* RF5_CAUSE_1 */
- case RF5_SPELL_START + 12:
+ case MS_CAUSE_1:
dice_num = 3;
dice_side = 8;
break;
/* RF5_CAUSE_2 */
- case RF5_SPELL_START + 13:
+ case MS_CAUSE_2:
dice_num = 8;
dice_side = 8;
break;
/* RF5_CAUSE_3 */
- case RF5_SPELL_START + 14:
+ case MS_CAUSE_3:
dice_num = 10;
dice_side = 15;
break;
/* RF5_CAUSE_4 */
- case RF5_SPELL_START + 15:
+ case MS_CAUSE_4:
dice_num = 15;
dice_side = 15;
break;
/* RF5_BO_ACID */
- case RF5_SPELL_START + 16:
+ case MS_BOLT_ACID:
mult = powerful ? 2 : 1;
dam = rlev / 3 * (mult / div);
dice_num = 7;
break;
/* RF5_BO_ELEC */
- case RF5_SPELL_START + 17:
+ case MS_BOLT_ELEC:
mult = powerful ? 2 : 1;
dam = rlev / 3 * (mult / div);
dice_num = 4;
break;
/* RF5_BO_FIRE */
- case RF5_SPELL_START + 18:
+ case MS_BOLT_FIRE:
mult = powerful ? 2 : 1;
dam = rlev / 3 * (mult / div);
dice_num = 9;
break;
/* RF5_BO_COLD */
- case RF5_SPELL_START + 19:
+ case MS_BOLT_COLD:
mult = powerful ? 2 : 1;
dam = rlev / 3 * (mult / div);
dice_num = 6;
break;
/* RF5_BA_LITE */
- case RF5_SPELL_START + 20:
+ case MS_STARBURST:
dam = (rlev * 4) + 50;
dice_num = 10;
dice_side = 10;
break;
/* RF5_BO_NETH */
- case RF5_SPELL_START + 21:
+ case MS_BOLT_NETHER:
dam = 30 + (rlev * 4) / (powerful ? 2 : 3);
dice_num = 5;
dice_side = 5;
break;
/* RF5_BO_WATE */
- case RF5_SPELL_START + 22:
+ case MS_BOLT_WATER:
dam = (rlev * 3 / (powerful ? 2 : 3));
dice_num = 10;
dice_side = 10;
break;
/* RF5_BO_MANA */
- case RF5_SPELL_START + 23:
+ case MS_BOLT_MANA:
dam = 50;
dice_num = 1;
dice_side = rlev * 7 / 2;
break;
/* RF5_BO_PLAS */
- case RF5_SPELL_START + 24:
+ case MS_BOLT_PLASMA:
dam = 10 + (rlev * 3 / (powerful ? 2 : 3));
dice_num = 8;
dice_side = 7;
break;
/* RF5_BO_ICEE */
- case RF5_SPELL_START + 25:
+ case MS_BOLT_ICE:
dam = (rlev * 3 / (powerful ? 2 : 3));
dice_num = 6;
dice_side = 6;
break;
/* RF5_MISSILE */
- case RF5_SPELL_START + 26:
+ case MS_MAGIC_MISSILE:
dam = (rlev / 3);
dice_num = 2;
dice_side = 6;
break;
- case RF5_SPELL_START + 27: return -1; /* RF5_SCARE */
- case RF5_SPELL_START + 28: return -1; /* RF5_BLIND */
- case RF5_SPELL_START + 29: return -1; /* RF5_CONF */
- case RF5_SPELL_START + 30: return -1; /* RF5_SLOW */
- case RF5_SPELL_START + 31: return -1; /* RF5_HOLD */
- case RF6_SPELL_START + 0: return -1; /* RF6_HASTE */
+ case MS_SCARE: return -1; /* RF5_SCARE */
+ case MS_BLIND: return -1; /* RF5_BLIND */
+ case MS_CONF: return -1; /* RF5_CONF */
+ case MS_SLOW: return -1; /* RF5_SLOW */
+ case MS_SLEEP: return -1; /* RF5_HOLD */
+ case MS_SPEED: return -1; /* RF6_HASTE */
/* RF6_HAND_DOOM */
- case RF6_SPELL_START + 1:
+ case MS_HAND_DOOM:
mult = p_ptr->chp;
div = 100;
dam = 40 * (mult / div);
dice_side = 20;
break;
- case RF6_SPELL_START + 2: return -1; /* RF6_HEAL */
- case RF6_SPELL_START + 3: return -1; /* RF6_INVULNER */
- case RF6_SPELL_START + 4: return -1; /* RF6_BLINK */
- case RF6_SPELL_START + 5: return -1; /* RF6_TPORT */
- case RF6_SPELL_START + 6: return -1; /* RF6_WORLD */
- case RF6_SPELL_START + 7: return -1; /* RF6_SPECIAL */
- case RF6_SPELL_START + 8: return -1; /* RF6_TELE_TO */
- case RF6_SPELL_START + 9: return -1; /* RF6_TELE_AWAY */
- case RF6_SPELL_START + 10: return -1; /* RF6_TELE_LEVEL */
+ case MS_HEAL: return -1; /* RF6_HEAL */
+ case MS_INVULNER: return -1; /* RF6_INVULNER */
+ case MS_BLINK: return -1; /* RF6_BLINK */
+ case MS_TELEPORT: return -1; /* RF6_TPORT */
+ case MS_WORLD: return -1; /* RF6_WORLD */
+ case MS_SPECIAL: return -1; /* RF6_SPECIAL */
+ case MS_TELE_TO: return -1; /* RF6_TELE_TO */
+ case MS_TELE_AWAY: return -1; /* RF6_TELE_AWAY */
+ case MS_TELE_LEVEL: return -1; /* RF6_TELE_LEVEL */
/* RF6_PSY_SPEAR */
- case RF6_SPELL_START + 11:
+ case MS_PSY_SPEAR:
dam = powerful ? 150 : 100;
dice_num = 1;
dice_side = powerful ? (rlev * 2) : (rlev * 3 / 2);
break;
- case RF6_SPELL_START + 12: return -1; /* RF6_DARKNESS */
- case RF6_SPELL_START + 13: return -1; /* RF6_TRAPS */
- case RF6_SPELL_START + 14: return -1; /* RF6_FORGET */
- case RF6_SPELL_START + 15: return -1; /* RF6_RAISE_DEAD */
- case RF6_SPELL_START + 16: return -1; /* RF6_S_KIN */
- case RF6_SPELL_START + 17: return -1; /* RF6_S_CYBER */
- case RF6_SPELL_START + 18: return -1; /* RF6_S_MONSTER */
- case RF6_SPELL_START + 19: return -1; /* RF6_S_MONSTER */
- case RF6_SPELL_START + 20: return -1; /* RF6_S_ANT */
- case RF6_SPELL_START + 21: return -1; /* RF6_S_SPIDER */
- case RF6_SPELL_START + 22: return -1; /* RF6_S_HOUND */
- case RF6_SPELL_START + 23: return -1; /* RF6_S_HYDRA */
- case RF6_SPELL_START + 24: return -1; /* RF6_S_ANGEL */
- case RF6_SPELL_START + 25: return -1; /* RF6_S_DEMON */
- case RF6_SPELL_START + 26: return -1; /* RF6_S_UNDEAD */
- case RF6_SPELL_START + 27: return -1; /* RF6_S_DRAGON */
- case RF6_SPELL_START + 28: return -1; /* RF6_S_HI_UNDEAD */
- case RF6_SPELL_START + 29: return -1; /* RF6_S_HI_DRAGON */
- case RF6_SPELL_START + 30: return -1; /* RF6_S_AMBERITES */
- case RF6_SPELL_START + 31: return -1; /* RF6_S_UNIQUE */
+ case MS_DARKNESS: return -1; /* RF6_DARKNESS */
+ case MS_MAKE_TRAP: return -1; /* RF6_TRAPS */
+ case MS_FORGET: return -1; /* RF6_FORGET */
+ case MS_RAISE_DEAD: return -1; /* RF6_RAISE_DEAD */
+ case MS_S_KIN: return -1; /* RF6_S_KIN */
+ case MS_S_CYBER: return -1; /* RF6_S_CYBER */
+ case MS_S_MONSTER: return -1; /* RF6_S_MONSTER */
+ case MS_S_MONSTERS: return -1; /* RF6_S_MONSTER */
+ case MS_S_ANT: return -1; /* RF6_S_ANT */
+ case MS_S_SPIDER: return -1; /* RF6_S_SPIDER */
+ case MS_S_HOUND: return -1; /* RF6_S_HOUND */
+ case MS_S_HYDRA: return -1; /* RF6_S_HYDRA */
+ case MS_S_ANGEL: return -1; /* RF6_S_ANGEL */
+ case MS_S_DEMON: return -1; /* RF6_S_DEMON */
+ case MS_S_UNDEAD: return -1; /* RF6_S_UNDEAD */
+ case MS_S_DRAGON: return -1; /* RF6_S_DRAGON */
+ case MS_S_HI_UNDEAD: return -1; /* RF6_S_HI_UNDEAD */
+ case MS_S_HI_DRAGON: return -1; /* RF6_S_HI_DRAGON */
+ case MS_S_AMBERITE: return -1; /* RF6_S_AMBERITES */
+ case MS_S_UNIQUE: return -1; /* RF6_S_UNIQUE */
}
- switch (TYPE)
- {
- case DAM_MAX: dam += maxroll(dice_num, dice_side) * mult / div ; break;
- case DAM_MIN: dam += dice_num * 1 * mult / div; break;
- case DAM_ROLL: dam += damroll(dice_num, dice_side) * mult / div; break;
- }
- if (dam < 1) dam = 1;
- return dam;
+ return monspell_damage_roll(dam, dice_num, dice_side, mult, div, TYPE);
}
int shoot_dd = r_ptr->blow[0].d_dice;
int shoot_ds = r_ptr->blow[0].d_side;
- if (TYPE == DAM_MAX)
- {
- hp = m_ptr->max_maxhp;
- }
- else if (TYPE == DAM_ROLL)
+ if (TYPE == DAM_ROLL)
{
hp = m_ptr->hp;
}
+ else
+ {
+ hp = m_ptr->max_maxhp;
+ }
return monspell_damage_base(SPELL_NUM, hp, rlev, monster_is_powerful(m_idx), shoot_dd, shoot_ds, 0, TYPE);
}
{
monster_race *r_ptr = &r_info[r_idx];
int rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
- bool powerful = r_ptr->flags2 & RF2_POWERFUL;
+ bool powerful = r_ptr->flags2 & RF2_POWERFUL ? TRUE : FALSE;
u32b hp = r_ptr->hdice * (ironman_nightmare ? 2 : 1) * r_ptr->hside;
int shoot_dd = r_ptr->blow[0].d_dice;
int shoot_ds = r_ptr->blow[0].d_side;
* @param max »»½Ð¤·¤¿ºÇÂç¥À¥á¡¼¥¸¤òÊÖ¤¹¥Ý¥¤¥ó¥¿
* @return ¤Ê¤·
*/
-void spell_damcalc_by_spellnum(int spell_num, int spell_flag, int typ, int m_idx, int *max)
+void spell_damcalc_by_spellnum(int spell_num, int typ, int m_idx, int *max)
{
monster_type *m_ptr = &m_list[m_idx];
- int dam = monspell_damage(monspell_num(spell_num, spell_flag), m_idx, DAM_MAX);
+ int dam = monspell_damage((spell_num), m_idx, DAM_MAX);
spell_damcalc(m_ptr, typ, dam, max);
}
if (!(d_info[dungeon_type].flags1 & DF1_NO_MAGIC))
{
- if (f4 & RF4_BA_CHAO) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BA_CHAO, GF_CHAOS, c_ptr->m_idx, &dam_max0);
- if (f5 & RF5_BA_MANA) spell_damcalc_by_spellnum(RF5_SPELL_START, RF5_BA_MANA, GF_MANA, c_ptr->m_idx, &dam_max0);
- if (f5 & RF5_BA_DARK) spell_damcalc_by_spellnum(RF5_SPELL_START, RF5_BA_DARK, GF_DARK, c_ptr->m_idx, &dam_max0);
- if (f5 & RF5_BA_LITE) spell_damcalc_by_spellnum(RF5_SPELL_START, RF5_BA_LITE, GF_LITE, c_ptr->m_idx, &dam_max0);
- if (f6 & RF6_HAND_DOOM) spell_damcalc_by_spellnum(RF6_SPELL_START, RF6_HAND_DOOM, GF_HAND_DOOM, c_ptr->m_idx, &dam_max0);
- if (f6 & RF6_PSY_SPEAR) spell_damcalc_by_spellnum(RF6_SPELL_START, RF6_PSY_SPEAR, GF_PSY_SPEAR, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BA_CHAO) spell_damcalc_by_spellnum(MS_BALL_CHAOS, GF_CHAOS, c_ptr->m_idx, &dam_max0);
+ if (f5 & RF5_BA_MANA) spell_damcalc_by_spellnum(MS_BALL_MANA, GF_MANA, c_ptr->m_idx, &dam_max0);
+ if (f5 & RF5_BA_DARK) spell_damcalc_by_spellnum(MS_BALL_DARK, GF_DARK, c_ptr->m_idx, &dam_max0);
+ if (f5 & RF5_BA_LITE) spell_damcalc_by_spellnum(MS_STARBURST, GF_LITE, c_ptr->m_idx, &dam_max0);
+ if (f6 & RF6_HAND_DOOM) spell_damcalc_by_spellnum(MS_HAND_DOOM, GF_HAND_DOOM, c_ptr->m_idx, &dam_max0);
+ if (f6 & RF6_PSY_SPEAR) spell_damcalc_by_spellnum(MS_PSY_SPEAR, GF_PSY_SPEAR, c_ptr->m_idx, &dam_max0);
}
- if (f4 & RF4_ROCKET) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_ROCKET, GF_ROCKET, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_ACID) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_ACID, GF_ACID, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_ELEC) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_ELEC, GF_ELEC, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_FIRE) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_FIRE, GF_FIRE, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_COLD) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_COLD, GF_COLD, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_POIS) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_POIS, GF_POIS, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_NETH) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_NETH, GF_NETHER, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_LITE) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_LITE, GF_LITE, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_DARK) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_DARK, GF_DARK, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_CONF) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_CONF, GF_CONFUSION, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_SOUN) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_SOUN, GF_SOUND, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_CHAO) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_CHAO, GF_CHAOS, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_DISE) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_DISE, GF_DISENCHANT, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_NEXU) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_NEXU, GF_NEXUS, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_TIME) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_TIME, GF_TIME, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_INER) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_INER, GF_INERTIA, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_GRAV) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_GRAV, GF_GRAVITY, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_SHAR) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_SHAR, GF_SHARDS, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_PLAS) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_PLAS, GF_PLASMA, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_WALL) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_WALL, GF_FORCE, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_MANA) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_MANA, GF_MANA, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_NUKE) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_NUKE, GF_NUKE, c_ptr->m_idx, &dam_max0);
- if (f4 & RF4_BR_DISI) spell_damcalc_by_spellnum(RF4_SPELL_START, RF4_BR_DISI, GF_DISINTEGRATE, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_ROCKET) spell_damcalc_by_spellnum(MS_ROCKET, GF_ROCKET, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_ACID) spell_damcalc_by_spellnum(MS_BR_ACID, GF_ACID, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_ELEC) spell_damcalc_by_spellnum(MS_BR_ELEC, GF_ELEC, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_FIRE) spell_damcalc_by_spellnum(MS_BR_FIRE, GF_FIRE, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_COLD) spell_damcalc_by_spellnum(MS_BR_COLD, GF_COLD, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_POIS) spell_damcalc_by_spellnum(MS_BR_POIS, GF_POIS, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_NETH) spell_damcalc_by_spellnum(MS_BR_NETHER, GF_NETHER, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_LITE) spell_damcalc_by_spellnum(MS_BR_LITE, GF_LITE, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_DARK) spell_damcalc_by_spellnum(MS_BR_DARK, GF_DARK, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_CONF) spell_damcalc_by_spellnum(MS_BR_CONF, GF_CONFUSION, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_SOUN) spell_damcalc_by_spellnum(MS_BR_SOUND, GF_SOUND, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_CHAO) spell_damcalc_by_spellnum(MS_BR_CHAOS, GF_CHAOS, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_DISE) spell_damcalc_by_spellnum(MS_BR_DISEN, GF_DISENCHANT, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_NEXU) spell_damcalc_by_spellnum(MS_BR_NEXUS, GF_NEXUS, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_TIME) spell_damcalc_by_spellnum(MS_BR_TIME, GF_TIME, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_INER) spell_damcalc_by_spellnum(MS_BR_INERTIA, GF_INERTIA, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_GRAV) spell_damcalc_by_spellnum(MS_BR_GRAVITY, GF_GRAVITY, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_SHAR) spell_damcalc_by_spellnum(MS_BR_SHARDS, GF_SHARDS, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_PLAS) spell_damcalc_by_spellnum(MS_BR_PLASMA, GF_PLASMA, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_WALL) spell_damcalc_by_spellnum(MS_BR_FORCE, GF_FORCE, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_MANA) spell_damcalc_by_spellnum(MS_BR_MANA, GF_MANA, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_NUKE) spell_damcalc_by_spellnum(MS_BR_NUKE, GF_NUKE, c_ptr->m_idx, &dam_max0);
+ if (f4 & RF4_BR_DISI) spell_damcalc_by_spellnum(MS_BR_DISI, GF_DISINTEGRATE, c_ptr->m_idx, &dam_max0);
}
/* Monster melee attacks */
if (caster_ptr->hp < caster_ptr->maxhp)
{
/* Heal */
- caster_ptr->hp += 6 * dam;
+ caster_ptr->hp += dam;
if (caster_ptr->hp > caster_ptr->maxhp) caster_ptr->hp = caster_ptr->maxhp;
/* Redraw (later) if needed */
if (m_ptr->hp < m_ptr->maxhp)
{
/* Heal */
- m_ptr->hp += (6 * dam);
+ m_ptr->hp += dam;
if (m_ptr->hp > m_ptr->maxhp) m_ptr->hp = m_ptr->maxhp;
/* Redraw (later) if needed */