#endif
}
+static void process_eat_gold(player_type *target_ptr, monap_type *monap_ptr)
+{
+ if (!target_ptr->paralyzed && (randint0(100) < (adj_dex_safe[target_ptr->stat_ind[A_DEX]] + target_ptr->lev))) {
+ msg_print(_("しかし素早く財布を守った!", "You quickly protect your money pouch!"));
+ if (randint0(3))
+ monap_ptr->blinked = TRUE;
+
+ return;
+ }
+
+ PRICE gold = (target_ptr->au / 10) + randint1(25);
+ if (gold < 2)
+ gold = 2;
+
+ if (gold > 5000)
+ gold = (target_ptr->au / 20) + randint1(3000);
+
+ if (gold > target_ptr->au)
+ gold = target_ptr->au;
+
+ target_ptr->au -= gold;
+ if (gold <= 0) {
+ msg_print(_("しかし何も盗まれなかった。", "Nothing was stolen."));
+ } else if (target_ptr->au > 0) {
+ msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
+ msg_format(_("$%ld のお金が盗まれた!", "%ld coins were stolen!"), (long)gold);
+ chg_virtue(target_ptr, V_SACRIFICE, 1);
+ } else {
+ msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
+ msg_print(_("お金が全部盗まれた!", "All of your coins were stolen!"));
+ chg_virtue(target_ptr, V_SACRIFICE, 2);
+ }
+
+ target_ptr->redraw |= (PR_GOLD);
+ target_ptr->window |= (PW_PLAYER);
+ monap_ptr->blinked = TRUE;
+}
+
/*!
* @brief モンスターからの攻撃による充填魔力吸収処理
* @param target_ptr プレーヤーへの参照ポインタ
int tmp;
ARMOUR_CLASS ac;
- PRICE gold;
GAME_TEXT o_name[MAX_NLEN];
GAME_TEXT ddesc[80];
-
- bool blinked;
bool fear = FALSE;
bool alive = TRUE;
HIT_POINT get_damage = 0;
return TRUE;
}
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
floor_type *floor_ptr = target_ptr->current_floor_ptr;
for (int ap_cnt = 0; ap_cnt < 4; ap_cnt++) {
monap_ptr->obvious = FALSE;
break;
monap_ptr->obvious = TRUE;
- if (!target_ptr->paralyzed && (randint0(100) < (adj_dex_safe[target_ptr->stat_ind[A_DEX]] + target_ptr->lev))) {
- msg_print(_("しかし素早く財布を守った!", "You quickly protect your money pouch!"));
- if (randint0(3))
- blinked = TRUE;
- }
- else {
- gold = (target_ptr->au / 10) + randint1(25);
- if (gold < 2)
- gold = 2;
- if (gold > 5000)
- gold = (target_ptr->au / 20) + randint1(3000);
- if (gold > target_ptr->au)
- gold = target_ptr->au;
- target_ptr->au -= gold;
- if (gold <= 0) {
- msg_print(_("しかし何も盗まれなかった。", "Nothing was stolen."));
- } else if (target_ptr->au) {
- msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
- msg_format(_("$%ld のお金が盗まれた!", "%ld coins were stolen!"), (long)gold);
- chg_virtue(target_ptr, V_SACRIFICE, 1);
- } else {
- msg_print(_("財布が軽くなった気がする。", "Your purse feels lighter."));
- msg_print(_("お金が全部盗まれた!", "All of your coins were stolen!"));
- chg_virtue(target_ptr, V_SACRIFICE, 2);
- }
-
- target_ptr->redraw |= (PR_GOLD);
- target_ptr->window |= (PW_PLAYER);
- blinked = TRUE;
- }
-
+ process_eat_gold(target_ptr, monap_ptr);
break;
}
case RBE_EAT_ITEM: {
if (!target_ptr->paralyzed && (randint0(100) < (adj_dex_safe[target_ptr->stat_ind[A_DEX]] + target_ptr->lev))) {
msg_print(_("しかしあわててザックを取り返した!", "You grab hold of your backpack!"));
- blinked = TRUE;
+ monap_ptr->blinked = TRUE;
monap_ptr->obvious = TRUE;
break;
}
inven_item_increase(target_ptr, i_idx, -1);
inven_item_optimize(target_ptr, i_idx);
monap_ptr->obvious = TRUE;
- blinked = TRUE;
+ monap_ptr->blinked = TRUE;
break;
}
sound(SOUND_EXPLODE);
if (mon_take_hit(target_ptr, m_idx, monap_ptr->m_ptr->hp + 1, &fear, NULL)) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
}
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("%^sは突然熱くなった!", "%^s is suddenly very hot!"), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は灰の山になった。", " turns into a pile of ash."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("%^sは電撃をくらった!", "%^s gets zapped!"), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は燃え殻の山になった。", " turns into a pile of cinder."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
} else {
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("%^sは冷気をくらった!", "%^s is very cold!"), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は凍りついた。", " was frozen."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
} else {
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("%^sは鏡の破片をくらった!", "%^s gets zapped!"), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("はズタズタになった。", " had torn to pieces."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
} else {
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("%^sは聖なるオーラで傷ついた!", "%^s is injured by holy power!"), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は倒れた。", " is destroyed."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
if (is_original_ap_and_seen(target_ptr, monap_ptr->m_ptr))
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("%^sが鋭い闘気のオーラで傷ついた!", "%^s is injured by the Force"), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は倒れた。", " is destroyed."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
}
} else {
dam = mon_damage_mod(target_ptr, monap_ptr->m_ptr, dam, FALSE);
msg_format(_("影のオーラが%^sに反撃した!", "Enveloping shadows attack %^s."), monap_ptr->m_name);
if (mon_take_hit(target_ptr, m_idx, dam, &fear, _("は倒れた。", " is destroyed."))) {
- blinked = FALSE;
+ monap_ptr->blinked = FALSE;
alive = FALSE;
} else /* monster does not dead */
{
target_ptr->redraw |= (PR_MANA);
}
- if (blinked && alive && !target_ptr->is_dead) {
+ if (monap_ptr->blinked && alive && !target_ptr->is_dead) {
if (teleport_barrier(target_ptr, m_idx)) {
msg_print(_("泥棒は笑って逃げ...ようとしたがバリアに防がれた。", "The thief flees laughing...? But a magic barrier obstructs it."));
} else {