break;
case 60: case 61:
muta_class = &(creature_ptr->muta1);
- muta_which = MUT1_PANIC_HIT;
+ muta_which = MUT1_HIT_AND_AWAY;
muta_desc = _("突然、泥棒の気分が分かるようになった。", "You suddenly understand how thieves feel.");
break;
break;
case 60: case 61:
muta_class = &(creature_ptr->muta1);
- muta_which = MUT1_PANIC_HIT;
+ muta_which = MUT1_HIT_AND_AWAY;
muta_desc = _( "あちこちへ跳べる気分がなくなった。", "You no longer feel jumpy.");
break;
fprintf(OutFile, _(" あなたは集団的生殖不能を起こすことができる。\n", " You can cause mass impotence.\n"));
}
- if (creature_ptr->muta1 & MUT1_PANIC_HIT)
+ if (creature_ptr->muta1 & MUT1_HIT_AND_AWAY)
{
fprintf(OutFile, _(" あなたは攻撃した後身を守るため逃げることができる。\n", " You can run for your life after hitting something.\n"));
creature_ptr->current_floor_ptr->num_repro += MAX_REPRO;
break;
- case MUT1_PANIC_HIT:
- if(!panic_hit()) return FALSE;
+ case MUT1_HIT_AND_AWAY:
+ if(!hit_and_away()) return FALSE;
break;
case MUT1_DAZZLE:
#define MUT1_EAT_MAGIC 0x00400000L /*!< 突然変異: 魔力喰い */
#define MUT1_WEIGH_MAG 0x00800000L /*!< 突然変異: 魔力感知 */
#define MUT1_STERILITY 0x01000000L /*!< 突然変異: 増殖阻止 */
-#define MUT1_PANIC_HIT 0x02000000L /*!< 突然変異: ヒットアンドアウェイ */
+#define MUT1_HIT_AND_AWAY 0x02000000L /*!< 突然変異: ヒットアンドアウェイ */
#define MUT1_DAZZLE 0x04000000L /*!< 突然変異: 眩惑 */
#define MUT1_LASER_EYE 0x08000000L /*!< 突然変異: レーザー・アイ */
#define MUT1_RECALL 0x10000000L /*!< 突然変異: 帰還 */
}
case CLASS_ROGUE:
{
- if(!panic_hit()) return FALSE;
+ if(!hit_and_away(creature_ptr)) return FALSE;
break;
}
case CLASS_RANGER:
power_desc[num++].number = MUT1_STERILITY;
}
- if (creature_ptr->muta1 & MUT1_PANIC_HIT)
+ if (creature_ptr->muta1 & MUT1_HIT_AND_AWAY)
{
strcpy(power_desc[num].name, _("ヒット&アウェイ", "Panic Hit"));
power_desc[num].level = 10;
power_desc[num].cost = 12;
power_desc[num].stat = A_DEX;
power_desc[num].fail = 14;
- power_desc[num++].number = MUT1_PANIC_HIT;
+ power_desc[num++].number = MUT1_HIT_AND_AWAY;
}
if (creature_ptr->muta1 & MUT1_DAZZLE)
{
info[i++] = _("あなたは集団的生殖不能を起こすことができる。", "You can cause mass impotence.");
}
- if (creature_ptr->muta1 & MUT1_PANIC_HIT)
+ if (creature_ptr->muta1 & MUT1_HIT_AND_AWAY)
{
info[i++] = _("あなたは攻撃した後身を守るため逃げることができる。", "You can run for your life after hitting something.");
}
extern void cast_shuffle(player_type *caster_ptr);
extern void stop_mouth(player_type *caster_ptr);
extern bool_hack vampirism(player_type *caster_ptr);
-extern bool panic_hit(void);
+extern bool hit_and_away(player_type *caster_ptr);
extern bool psychometry(player_type *caster_ptr);
extern bool draconian_breath(player_type *creature_ptr);
extern bool android_inside_weapon(player_type *creature_ptr);
}
-bool panic_hit(void)
+/*!
+* ヒット&アウェイのレイシャルパワー/突然変異
+* @param caster_ptr プレーヤーへの参照ポインタ
+* @return コマンドの入力先にモンスターがいたらTRUE
+*/
+bool hit_and_away(player_type *caster_ptr)
{
DIRECTION dir;
- POSITION x, y;
-
- if (!get_direction(p_ptr, &dir, FALSE, FALSE)) return FALSE;
- y = p_ptr->y + ddy[dir];
- x = p_ptr->x + ddx[dir];
- if (p_ptr->current_floor_ptr->grid_array[y][x].m_idx)
+ if (!get_direction(caster_ptr, &dir, FALSE, FALSE)) return FALSE;
+ POSITION y = caster_ptr->y + ddy[dir];
+ POSITION x = caster_ptr->x + ddx[dir];
+ if (caster_ptr->current_floor_ptr->grid_array[y][x].m_idx)
{
- py_attack(p_ptr, y, x, 0);
- if (randint0(p_ptr->skill_dis) < 7)
+ py_attack(caster_ptr, y, x, 0);
+ if (randint0(caster_ptr->skill_dis) < 7)
msg_print(_("うまく逃げられなかった。", "You failed to run away."));
else
- teleport_player(p_ptr, 30, 0L);
+ teleport_player(caster_ptr, 30, 0L);
return TRUE;
}
- else
- {
- msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
- msg_print(NULL);
- return FALSE;
- }
+
+ msg_print(_("その方向にはモンスターはいません。", "You don't see any monster in this direction"));
+ msg_print(NULL);
+ return FALSE;
}
if (!do_cmd_riding(creature_ptr, TRUE)) return TRUE;
- m_ptr = &p_ptr->current_floor_ptr->m_list[creature_ptr->riding];
+ m_ptr = &creature_ptr->current_floor_ptr->m_list[creature_ptr->riding];
r_ptr = &r_info[m_ptr->r_idx];
monster_desc(m_name, m_ptr, 0);
msg_format(_("%sに乗った。", "You ride on %s."), m_name);
else
{
msg_format(_("%sに振り落とされた!", "You have thrown off by %s."), m_name);
- rakuba(p_ptr, 1, TRUE);
+ rakuba(creature_ptr, 1, TRUE);
/* 落馬処理に失敗してもとにかく乗馬解除 */
creature_ptr->riding = 0;
}