OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/hengband/hengband
[hengband/hengband.git] / src / spells2.c
index 69beaa6..20d7d46 100644 (file)
@@ -1890,7 +1890,7 @@ bool detect_traps(POSITION range, bool known)
 
        if (known) p_ptr->dtrap = TRUE;
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 0) detect = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
 
        /* Describe */
        if (detect)
@@ -1912,7 +1912,7 @@ bool detect_doors(POSITION range)
 {
        bool detect = detect_feat_flag(range, FF_DOOR, TRUE);
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 0) detect = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
 
        /* Describe */
        if (detect)
@@ -1934,7 +1934,7 @@ bool detect_stairs(POSITION range)
 {
        bool detect = detect_feat_flag(range, FF_STAIRS, TRUE);
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 0) detect = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 0) detect = FALSE;
 
        /* Describe */
        if (detect)
@@ -1956,7 +1956,7 @@ bool detect_treasure(POSITION range)
 {
        bool detect = detect_feat_flag(range, FF_HAS_GOLD, TRUE);
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 6) detect = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
 
        /* Describe */
        if (detect)
@@ -2015,7 +2015,7 @@ bool detect_objects_gold(POSITION range)
                }
        }
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 6) detect = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
 
        /* Describe */
        if (detect)
@@ -2079,7 +2079,7 @@ bool detect_objects_normal(POSITION range)
                }
        }
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 6) detect = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 6) detect = FALSE;
 
        /* Describe */
        if (detect)
@@ -2234,7 +2234,7 @@ bool detect_monsters_normal(POSITION range)
                }
        }
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 3) flag = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
 
        /* Describe */
        if (flag)
@@ -2301,7 +2301,7 @@ bool detect_monsters_invis(POSITION range)
                }
        }
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 3) flag = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
 
        /* Describe */
        if (flag)
@@ -2567,7 +2567,7 @@ bool detect_monsters_string(POSITION range, cptr Match)
                }
        }
 
-       if (music_singing(MUSIC_DETECT) && p_ptr->magic_num1[2] > 3) flag = FALSE;
+       if (music_singing(MUSIC_DETECT) && SINGING_COUNT(p_ptr) > 3) flag = FALSE;
 
        /* Describe */
        if (flag)
@@ -3219,6 +3219,7 @@ bool probing(void)
                        speed = m_ptr->mspeed - 110;
                        if (MON_FAST(m_ptr)) speed += 10;
                        if (MON_SLOW(m_ptr)) speed -= 10;
+                       if (ironman_nightmare) speed += 5;
 
                        /* Get the monster's alignment */
 #ifdef JP
@@ -4684,6 +4685,24 @@ bool fire_ball(int typ, int dir, HIT_POINT dam, int rad)
        return (project(0, rad, ty, tx, dam, typ, flg, -1));
 }
 
+/*!
+* @brief ブレス系スペルの発動 / Cast a breath spell
+* @param typ 効果属性
+* @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
+* @param dam 威力
+* @param rad 半径
+* @return 作用が実際にあった場合TRUEを返す
+* @details
+* <pre>
+* Stop if we hit a monster, act as a "ball"
+* Allow "target" mode to pass over monsters
+* Affect grids, objects, and monsters
+* </pre>
+*/
+bool fire_breath(int typ, int dir, HIT_POINT dam, int rad)
+{
+       fire_ball(typ, dir, dam, -rad);
+}
 
 
 /*!
@@ -5028,15 +5047,15 @@ bool lite_line(int dir, HIT_POINT dam)
 }
 
 /*!
- * @brief 吸血ボルト処理
+ * @brief 衰弱ボルト処理
  * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
  * @param dam 威力
  * @return 作用が実際にあった場合TRUEを返す
  */
-bool drain_life(int dir, HIT_POINT dam)
+bool hypodynamic_bolt(int dir, HIT_POINT dam)
 {
        BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL | PROJECT_REFLECTABLE;
-       return (project_hook(GF_OLD_DRAIN, dir, dam, flg));
+       return (project_hook(GF_HYPODYNAMIA, dir, dam, flg));
 }
 
 /*!