OSDN Git Service

[Refactor] #40414 Moved double_attack() from spells2.c/h to monk-attack.c/h
authorHourier <hourier@users.sourceforge.jp>
Fri, 5 Jun 2020 12:55:59 +0000 (21:55 +0900)
committerHourier <hourier@users.sourceforge.jp>
Fri, 5 Jun 2020 12:55:59 +0000 (21:55 +0900)
src/mind/monk-attack.c
src/mind/monk-attack.h
src/mind/racial.c
src/spell/spells2.c
src/spell/spells2.h

index baa3eee..8f3212a 100644 (file)
@@ -5,13 +5,17 @@
  * @details 練気術師は騎乗していない時
  */
 
-#include "system/angband.h"
 #include "mind/monk-attack.h"
-#include "world/world.h"
+#include "cmd-action/cmd-attack.h"
+#include "combat/attack-criticality.h"
+#include "core/stuff-handler.h"
+#include "floor/floor.h"
+#include "io/targeting.h"
 #include "main/sound-definitions-table.h"
 #include "mind/mind-force-trainer.h"
+#include "monster/creature.h"
 #include "monster/monster-status.h"
-#include "combat/attack-criticality.h"
+#include "world/world.h"
 
 /*!
  * @brief 朦朧への抵抗値を計算する
@@ -221,3 +225,33 @@ void process_monk_attack(player_type *attacker_ptr, player_attack_type *pa_ptr)
     process_attack_vital_spot(attacker_ptr, pa_ptr, &stun_effect, &resist_stun, special_effect);
     print_stun_effect(attacker_ptr, pa_ptr, stun_effect, resist_stun);
 }
+
+bool double_attack(player_type *creature_ptr)
+{
+    DIRECTION dir;
+    if (!get_rep_dir(creature_ptr, &dir, FALSE))
+        return FALSE;
+    POSITION y = creature_ptr->y + ddy[dir];
+    POSITION x = creature_ptr->x + ddx[dir];
+    if (!creature_ptr->current_floor_ptr->grid_array[y][x].m_idx) {
+        msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
+        msg_print(NULL);
+        return TRUE;
+    }
+
+    if (one_in_(3))
+        msg_print(_("あーたたたたたたたたたたたたたたたたたたたたたた!!!", "Ahhhtatatatatatatatatatatatatatataatatatatattaaaaa!!!!"));
+    else if (one_in_(2))
+        msg_print(_("無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄!!!", "Mudamudamudamudamudamudamudamudamudamudamudamudamuda!!!!"));
+    else
+        msg_print(_("オラオラオラオラオラオラオラオラオラオラオラオラ!!!", "Oraoraoraoraoraoraoraoraoraoraoraoraoraoraoraoraora!!!!"));
+
+    do_cmd_attack(creature_ptr, y, x, 0);
+    if (creature_ptr->current_floor_ptr->grid_array[y][x].m_idx) {
+        handle_stuff(creature_ptr);
+        do_cmd_attack(creature_ptr, y, x, 0);
+    }
+
+    creature_ptr->energy_need += ENERGY_NEED();
+    return TRUE;
+}
index 1109c3a..0450744 100644 (file)
@@ -1,5 +1,7 @@
 #pragma once
 
+#include "system/angband.h"
 #include "combat/player-attack-util.h"
 
 void process_monk_attack(player_type *attacker_ptr, player_attack_type *pa_ptr);
+bool double_attack(player_type *creature_ptr);
index 38abf36..e10b2e4 100644 (file)
@@ -28,6 +28,7 @@
 #include "mind/mind-samurai.h"
 #include "mind/mind-warrior.h"
 #include "mind/mind-warrior-mage.h"
+#include "mind/monk-attack.h"
 #include "mutation/mutation.h"
 #include "object/object-hook.h"
 #include "player/player-class.h"
index 38ac974..80a7fb3 100644 (file)
@@ -257,38 +257,3 @@ void hayagake(player_type *creature_ptr)
 
        creature_ptr->energy_use = 0;
 }
-
-
-bool double_attack(player_type *creature_ptr)
-{
-       DIRECTION dir;
-       if (!get_rep_dir(creature_ptr, &dir, FALSE)) return FALSE;
-       POSITION y = creature_ptr->y + ddy[dir];
-       POSITION x = creature_ptr->x + ddx[dir];
-       if (!creature_ptr->current_floor_ptr->grid_array[y][x].m_idx)
-       {
-               msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
-               msg_print(NULL);
-               return TRUE;
-       }
-
-       if (one_in_(3))
-               msg_print(_("あーたたたたたたたたたたたたたたたたたたたたたた!!!",
-                       "Ahhhtatatatatatatatatatatatatatataatatatatattaaaaa!!!!"));
-       else if (one_in_(2))
-               msg_print(_("無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄!!!",
-                       "Mudamudamudamudamudamudamudamudamudamudamudamudamuda!!!!"));
-       else
-               msg_print(_("オラオラオラオラオラオラオラオラオラオラオラオラ!!!",
-                       "Oraoraoraoraoraoraoraoraoraoraoraoraoraoraoraoraora!!!!"));
-
-       do_cmd_attack(creature_ptr, y, x, 0);
-       if (creature_ptr->current_floor_ptr->grid_array[y][x].m_idx)
-       {
-               handle_stuff(creature_ptr);
-               do_cmd_attack(creature_ptr, y, x, 0);
-       }
-
-       creature_ptr->energy_need += ENERGY_NEED();
-       return TRUE;
-}
index f765cf4..de15def 100644 (file)
@@ -8,5 +8,4 @@ void cast_wonder(player_type* caster_ptr, DIRECTION dir);
 bool vampirism(player_type* caster_ptr);
 bool android_inside_weapon(player_type* creature_ptr);
 void hayagake(player_type* creature_ptr);
-bool double_attack(player_type* creature_ptr);
 bool vanish_dungeon(player_type* caster_ptr);