OSDN Git Service

[Refactor] #37353 自己分析処理を selfinfo.c/h に分離。 / Separate self knoledge spells to selfin...
[hengband/hengband.git] / src / mutation.c
index 19307e5..aa4ec13 100644 (file)
@@ -12,6 +12,7 @@
  */
 
 #include "angband.h"
+#include "selfinfo.h"
 
 /*!
  * @brief プレイヤーに突然変異を与える
@@ -1478,6 +1479,19 @@ bool lose_mutation(int choose_mut)
        }
 }
 
+void lose_all_mutations(void)
+{
+       if (p_ptr->muta1 || p_ptr->muta2 || p_ptr->muta3)
+       {
+               chg_virtue(V_CHANCE, -5);
+               msg_print(_("全ての突然変異が治った。", "You are cured of all mutations."));
+               p_ptr->muta1 = p_ptr->muta2 = p_ptr->muta3 = 0;
+               p_ptr->update |= PU_BONUS;
+               handle_stuff();
+               mutant_regenerate_mod = calc_mutant_regenerate_mod();
+       }
+}
+
 /*!
  * @brief ファイルポインタを通じて突然変異の一覧を出力する
  * @param OutFile 出力先ファイルポインタ
@@ -2106,7 +2120,7 @@ bool mutation_power_aux(u32b power)
                        mutation_stop_mouth();
                        msg_print(_("あなたは火炎のブレスを吐いた...", "You breathe fire..."));
 
-                       fire_ball(GF_FIRE, dir, lvl * 2, -1 - (lvl / 20));
+                       fire_breath(GF_FIRE, dir, lvl * 2, 1 + (lvl / 20));
                        break;
 
                case MUT1_HYPN_GAZE:
@@ -2167,7 +2181,7 @@ bool mutation_power_aux(u32b power)
 
                                dummy = lvl * 2;
 
-                               if (drain_life(dir, dummy))
+                               if (hypodynamic_bolt(dir, dummy))
                                {
                                        if (p_ptr->food < PY_FOOD_FULL)
                                                /* No heal if we are "full" */