msg_format(_("%^sから落ちてしまった!", "You have fallen from %s."), m_steed_name);
}
-/*!
- * @brief モンスターからプレイヤーへの打撃処理 / Attack the player via physical attacks.
- * @param m_idx 打撃を行うモンスターのID
- * @return 実際に攻撃処理を行った場合TRUEを返す
- */
-bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
+static bool process_monster_blows(player_type *target_ptr, monap_type *monap_ptr)
{
- monap_type tmp_monap;
- monap_type *monap_ptr = initialize_monap_type(target_ptr, &tmp_monap, m_idx);
- check_no_blow(target_ptr, monap_ptr);
monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
- monap_ptr->rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
- monster_desc(target_ptr, monap_ptr->m_name, monap_ptr->m_ptr, 0);
- monster_desc(target_ptr, monap_ptr->ddesc, monap_ptr->m_ptr, MD_WRONGDOER_NAME);
- if (target_ptr->special_defense & KATA_IAI) {
- msg_format(_("相手が襲いかかる前に素早く武器を振るった。", "You took sen, drew and cut in one motion before %s moved."), monap_ptr->m_name);
- if (do_cmd_attack(target_ptr, monap_ptr->m_ptr->fy, monap_ptr->m_ptr->fx, HISSATSU_IAI))
- return TRUE;
- }
-
- if ((target_ptr->special_defense & NINJA_KAWARIMI) && (randint0(55) < (target_ptr->lev * 3 / 5 + 20))) {
- if (kawarimi(target_ptr, TRUE))
- return TRUE;
- }
-
- monap_ptr->blinked = FALSE;
for (monap_ptr->ap_cnt = 0; monap_ptr->ap_cnt < 4; monap_ptr->ap_cnt++) {
monap_ptr->obvious = FALSE;
HIT_POINT power = 0;
if ((monap_ptr->effect == RBE_NONE) || check_hit_from_monster_to_player(target_ptr, power, monap_ptr->rlev, MON_STUNNED(monap_ptr->m_ptr)))
if (!process_monster_attack_hit(target_ptr, monap_ptr))
continue;
- else
- process_monster_attack_evasion(target_ptr, monap_ptr);
+ else
+ process_monster_attack_evasion(target_ptr, monap_ptr);
increase_blow_type_seen(target_ptr, monap_ptr);
check_fall_off_horse(target_ptr, monap_ptr);
}
}
+ return FALSE;
+}
+
+/*!
+ * @brief モンスターからプレイヤーへの打撃処理 / Attack the player via physical attacks.
+ * @param m_idx 打撃を行うモンスターのID
+ * @return 実際に攻撃処理を行った場合TRUEを返す
+ */
+bool make_attack_normal(player_type *target_ptr, MONSTER_IDX m_idx)
+{
+ monap_type tmp_monap;
+ monap_type *monap_ptr = initialize_monap_type(target_ptr, &tmp_monap, m_idx);
+ check_no_blow(target_ptr, monap_ptr);
+ monster_race *r_ptr = &r_info[monap_ptr->m_ptr->r_idx];
+ monap_ptr->rlev = ((r_ptr->level >= 1) ? r_ptr->level : 1);
+ monster_desc(target_ptr, monap_ptr->m_name, monap_ptr->m_ptr, 0);
+ monster_desc(target_ptr, monap_ptr->ddesc, monap_ptr->m_ptr, MD_WRONGDOER_NAME);
+ if (target_ptr->special_defense & KATA_IAI) {
+ msg_format(_("相手が襲いかかる前に素早く武器を振るった。", "You took sen, drew and cut in one motion before %s moved."), monap_ptr->m_name);
+ if (do_cmd_attack(target_ptr, monap_ptr->m_ptr->fy, monap_ptr->m_ptr->fx, HISSATSU_IAI))
+ return TRUE;
+ }
+
+ if ((target_ptr->special_defense & NINJA_KAWARIMI) && (randint0(55) < (target_ptr->lev * 3 / 5 + 20))) {
+ if (kawarimi(target_ptr, TRUE))
+ return TRUE;
+ }
+
+ monap_ptr->blinked = FALSE;
+ if (process_monster_blows(target_ptr, monap_ptr))
+ return TRUE;
+
revenge_store(target_ptr, monap_ptr->get_damage);
if ((target_ptr->tim_eyeeye || hex_spelling(target_ptr, HEX_EYE_FOR_EYE)) && monap_ptr->get_damage > 0 && !target_ptr->is_dead) {
#ifdef JP