OSDN Git Service

[Refactor] #37783 (2.2.1.5) 「魅了」と「支配」処理の分化作業中。 / Differentiating "charm" and "control".
[hengband/hengband.git] / src / spells2.c
index fe2b90a..e7210fc 100644 (file)
@@ -4668,7 +4668,7 @@ bool fire_ball(int typ, int dir, HIT_POINT dam, int rad)
 
        BIT_FLAGS flg = PROJECT_STOP | PROJECT_GRID | PROJECT_ITEM | PROJECT_KILL;
 
-       if (typ == GF_CONTROL_LIVING) flg|= PROJECT_HIDE;
+       if (typ == GF_CHARM_LIVING) flg|= PROJECT_HIDE;
        /* Use the given direction */
        tx = p_ptr->x + 99 * ddx[dir];
        ty = p_ptr->y + 99 * ddy[dir];
@@ -4685,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);
+}
 
 
 /*!
@@ -5029,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));
 }
 
 /*!
@@ -5840,17 +5858,6 @@ bool charm_animal(int dir, int plev)
        return (project_hook(GF_CONTROL_ANIMAL, dir, plev, flg));
 }
 
-/*!
- * @brief 生物支配(1体)
- * @param dir 方向(5ならばグローバル変数 target_col/target_row の座標を目標にする)
- * @param plev パワー
- * @return 作用が実際にあった場合TRUEを返す
- */
-bool charm_living(int dir, int plev)
-{
-       BIT_FLAGS flg = PROJECT_STOP | PROJECT_KILL;
-       return (project_hook(GF_CONTROL_LIVING, dir, plev, flg));
-}
 
 /*!
  * @brief 変わり身処理