OSDN Git Service

毒針を装備している時は必ず攻撃回数を1にするようにした。(乱れ雪月花で増えない)
[hengband/hengband.git] / src / do-spell.c
index a04bdfd..115d3bd 100644 (file)
@@ -507,16 +507,16 @@ static void wild_magic(int spell)
        case 1:
        case 2:
        case 3:
-               teleport_player(10, TRUE);
+               teleport_player(10, TELEPORT_PASSIVE);
                break;
        case 4:
        case 5:
        case 6:
-               teleport_player(100, TRUE);
+               teleport_player(100, TELEPORT_PASSIVE);
                break;
        case 7:
        case 8:
-               teleport_player(200, TRUE);
+               teleport_player(200, TELEPORT_PASSIVE);
                break;
        case 9:
        case 10:
@@ -722,7 +722,7 @@ static void cast_shuffle(void)
                msg_print("It's a teleport trump card.");
 #endif
 
-               teleport_player(10, TRUE);
+               teleport_player(10, TELEPORT_PASSIVE);
        }
        else if (die < 42)
        {
@@ -742,7 +742,7 @@ static void cast_shuffle(void)
                msg_print("It's a teleport trump card.");
 #endif
 
-               teleport_player(100, TRUE);
+               teleport_player(100, TELEPORT_PASSIVE);
        }
        else if (die < 52)
        {
@@ -752,7 +752,7 @@ static void cast_shuffle(void)
                msg_print("It's a teleport trump card.");
 #endif
 
-               teleport_player(200, TRUE);
+               teleport_player(200, TELEPORT_PASSIVE);
        }
        else if (die < 60)
        {
@@ -931,7 +931,8 @@ static void cast_meteor(int dam, int rad)
 
                        if (d >= 9) continue;
 
-                       if (!in_bounds(y, x) || !projectable(py, px, y, x)) continue;
+                       if (!in_bounds(y, x) || !projectable(py, px, y, x)
+                           || !cave_have_flag_bold(y, x, FF_PROJECT)) continue;
 
                        /* Valid position */
                        break;
@@ -1932,7 +1933,7 @@ static cptr do_sorcery_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -2022,7 +2023,7 @@ static cptr do_sorcery_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -3597,7 +3598,7 @@ static cptr do_chaos_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -5049,7 +5050,7 @@ static cptr do_trump_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -5139,7 +5140,7 @@ static cptr do_trump_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -6055,7 +6056,7 @@ static cptr do_arcane_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -6369,7 +6370,7 @@ static cptr do_arcane_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -8288,7 +8289,7 @@ static cptr do_crusade_spell(int spell, int mode)
 
                        if (cast)
                        {
-                               teleport_player(range, FALSE);
+                               teleport_player(range, 0L);
                        }
                }
                break;
@@ -9567,7 +9568,7 @@ static cptr do_music_spell(int spell, int mode)
                if (desc) return "Êɤò·¡¤ê¿Ê¤à¡£¼«Ê¬¤Î­¸µ¤Î¥¢¥¤¥Æ¥à¤Ï¾øȯ¤¹¤ë¡£";
 #else
                if (name) return "Sound of disintegration";
-               if (desc) return "Turns all rocks in the adjacent squares to mud.";
+               if (desc) return "Makes you be able to burrow into walls. Objects under your feet evaporate.";
 #endif
 
                /* Stop singing before start another */
@@ -11057,7 +11058,11 @@ static cptr do_hissatsu_spell(int spell, int mode)
                                        /* Move the player */
                                        if (!move_player_effect(y, x, MPE_FORGET_FLOW | MPE_HANDLE_STUFF | MPE_DONT_PICKUP)) break;
                                }
-       
+                               else
+                               {
+                                       break;
+                               }
+
                                /* -more- */
                                if (i < 2) msg_print(NULL);
                        }
@@ -11176,7 +11181,7 @@ static cptr do_hissatsu_spell(int spell, int mode)
 
                        if (!tgt_pt(&x, &y)) return NULL;
 
-                       if (!cave_player_teleportable_bold(y, x, FALSE, FALSE) ||
+                       if (!cave_player_teleportable_bold(y, x, 0L) ||
                            (distance(y, x, py, px) > MAX_SIGHT / 2) ||
                            !projectable(py, px, y, x))
                        {
@@ -11198,7 +11203,7 @@ static cptr do_hissatsu_spell(int spell, int mode)
                                break;
                        }
                        project(0, 0, y, x, HISSATSU_ISSEN, GF_ATTACK, PROJECT_BEAM | PROJECT_KILL, -1);
-                       teleport_player_to(y, x, TRUE, FALSE);
+                       teleport_player_to(y, x, 0L);
                }
                break;
 
@@ -11381,11 +11386,10 @@ static cptr do_hissatsu_spell(int spell, int mode)
                        {
 #ifdef JP
                                msg_print("Éð»ÎÆ»¤È¤Ï¡¢»à¤Ì¤³¤È¤È¸«¤Ä¤±¤¿¤ê¡£");
-                               take_hit(DAMAGE_FORCE, 9999, "ÀÚÊ¢", -1);
 #else
                                msg_print("Meaning of Bushi-do is found in the death.");
-                               take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
 #endif
+                               take_hit(DAMAGE_FORCE, 9999, "Seppuku", -1);
                        }
                }
                break;