*/
#include "mspell/mspell-status.h"
+#include "blue-magic/blue-magic-checker.h"
+#include "core/disturbance.h"
+#include "core/player-redraw-types.h"
#include "mind/drs-types.h"
#include "monster-race/monster-race.h"
+#include "monster-race/race-indice-types.h"
#include "monster-race/race-flags1.h"
#include "monster-race/race-flags3.h"
#include "monster/monster-describer.h"
#include "monster/monster-description-types.h"
#include "monster/monster-info.h"
+#include "monster/monster-status-setter.h"
#include "monster/monster-status.h"
#include "monster/monster-update.h"
+#include "mspell/mspell-checker.h"
#include "mspell/mspell-damage-calculator.h"
#include "mspell/mspell-util.h"
-#include "mspell/mspells1.h"
-#include "mspell/mspells3.h"
-#include "status/bad-status-setter.h"
-#include "status/base-status.h"
-#include "player/player-effects.h"
-#include "player/player-move.h"
#include "player/player-personalities-types.h"
+#include "player/player-status-flags.h"
#include "spell/spell-types.h"
+#include "status/bad-status-setter.h"
+#include "status/base-status.h"
+#include "system/floor-type-definition.h"
#include "view/display-messages.h"
/*!
}
/*!
- * @brief RF4_DISPELの処理。魔力消去。 /
- * @param m_idx 呪文を唱えるモンスターID
- * @param target_ptr プレーヤーへの参照ポインタ
- * @param t_idx 呪文を受けるモンスターID。プレイヤーの場合はdummyで0とする。
- * @param TARGET_TYPE プレイヤーを対象とする場合MONSTER_TO_PLAYER、モンスターを対象とする場合MONSTER_TO_MONSTER
- */
-void spell_RF4_DISPEL(MONSTER_IDX m_idx, player_type *target_ptr, MONSTER_IDX t_idx, int TARGET_TYPE)
-{
- GAME_TEXT m_name[MAX_NLEN], t_name[MAX_NLEN];
- monster_name(target_ptr, m_idx, m_name);
- monster_name(target_ptr, t_idx, t_name);
-
- monspell_message(target_ptr, m_idx, t_idx, _("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."),
- _("%^sが魔力消去の呪文を念じた。", "%^s invokes a dispel magic."), _("%^sが%sに対して魔力消去の呪文を念じた。", "%^s invokes a dispel magic at %s."),
- TARGET_TYPE);
-
- if (TARGET_TYPE == MONSTER_TO_PLAYER) {
- dispel_player(target_ptr);
- if (target_ptr->riding)
- dispel_monster_status(target_ptr, target_ptr->riding);
-
- if (is_echizen(target_ptr))
- msg_print(_("やりやがったな!", ""));
- else if ((target_ptr->pseikaku == PERSONALITY_CHARGEMAN)) {
- if (randint0(2) == 0)
- msg_print(_("ジュラル星人め!", ""));
- else
- msg_print(_("弱い者いじめは止めるんだ!", ""));
- }
-
- learn_spell(target_ptr, MS_DISPEL);
- return;
- }
-
- if (TARGET_TYPE == MONSTER_TO_MONSTER) {
- if (t_idx == target_ptr->riding)
- dispel_player(target_ptr);
- dispel_monster_status(target_ptr, t_idx);
- }
-}
-
-/*!
* @brief RF5_DRAIN_MANAの処理。魔力吸収。 /
* @param target_ptr プレーヤーへの参照ポインタ
* @param y 対象の地点のy座標
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER) {
- resist = target_ptr->resist_fear;
+ resist = (has_resist_fear(target_ptr) != 0);
saving_throw = (randint0(100 + rlev / 2) < target_ptr->skill_sav);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sが何かをつぶやくと、恐ろしげな音が聞こえた。", "%^s mumbles, and you hear scary noises."),
_("%^sが恐ろしげな幻覚を作り出した。", "%^s casts a fearful illusion."), _("しかし恐怖に侵されなかった。", "You refuse to be frightened."),
if (TARGET_TYPE != MONSTER_TO_MONSTER)
return;
- resist = tr_ptr->flags3 & RF3_NO_FEAR;
+ resist = ((tr_ptr->flags3 & RF3_NO_FEAR) != 0);
saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sが恐ろしげな幻覚を作り出した。", "%^s casts a fearful illusion in front of %s."),
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER) {
- resist = target_ptr->resist_blind;
+ resist = (has_resist_blind(target_ptr) != 0);
saving_throw = (randint0(100 + rlev / 2) < target_ptr->skill_sav);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sが呪文を唱えてあなたの目をくらました!", "%^s casts a spell, burning your eyes!"), _("しかし効果がなかった!", "You are unaffected!"),
msg1 = _("%sは呪文を唱えて%sの目を焼き付かせた。", "%^s casts a spell, burning %s's eyes.");
}
- resist = tr_ptr->flags3 & RF3_NO_CONF;
+ resist = ((tr_ptr->flags3 & RF3_NO_CONF) != 0);
saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
spell_badstatus_message(target_ptr, m_idx, t_idx, msg1, _("%^sには効果がなかった。", "%^s is unaffected."),
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER) {
- resist = target_ptr->resist_conf;
+ resist = (has_resist_conf(target_ptr) != 0);
saving_throw = (randint0(100 + rlev / 2) < target_ptr->skill_sav);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sが何かをつぶやくと、頭を悩ます音がした。", "%^s mumbles, and you hear puzzling noises."),
_("%^sが誘惑的な幻覚を作り出した。", "%^s creates a mesmerising illusion."),
if (TARGET_TYPE != MONSTER_TO_MONSTER)
return;
- resist = tr_ptr->flags3 & RF3_NO_CONF;
+ resist = ((tr_ptr->flags3 & RF3_NO_CONF) != 0);
saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sが%sの前に幻惑的な幻をつくり出した。", "%^s casts a mesmerizing illusion in front of %s."),
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER) {
- resist = target_ptr->free_act;
+ resist = (target_ptr->free_act != 0);
saving_throw = (randint0(100 + rlev / 2) < target_ptr->skill_sav);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sが何かをつぶやいた。", "%^s mumbles."),
_("%^sがあなたの目をじっと見つめた!", "%^s stares deep into your eyes!"), _("しかし効果がなかった!", "You are unaffected!"),
- _("しかし効力を跳ね返した!", "You resist the effects!"), resist, saving_throw, TARGET_TYPE);
+ _("しかし効力を跳ね返した!", "You resist the effects!"), (bool)resist, saving_throw, TARGET_TYPE);
if (!resist && !saving_throw) {
(void)set_paralyzed(target_ptr, target_ptr->paralyzed + randint0(4) + 4);
if (TARGET_TYPE != MONSTER_TO_MONSTER)
return;
- resist = (tr_ptr->flags1 & RF1_UNIQUE) || (tr_ptr->flags3 & RF3_NO_STUN);
+ resist = ((tr_ptr->flags1 & RF1_UNIQUE) != 0 || (tr_ptr->flags3 & RF3_NO_STUN) != 0);
saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sは%sをじっと見つめた。", "%^s stares intently at %s."),
_("%^sには効果がなかった。", "%^s is unaffected."), _("%^sには効果がなかった。", "%^s is unaffected."), _("%^sは麻痺した!", "%^s is paralyzed!"),
- resist, saving_throw, TARGET_TYPE);
+ (bool)resist, saving_throw, TARGET_TYPE);
if (!resist && !saving_throw) {
(void)set_monster_stunned(target_ptr, t_idx, monster_stunned_remaining(t_ptr) + randint1(4) + 4);
bool resist, saving_throw;
if (TARGET_TYPE == MONSTER_TO_PLAYER) {
- resist = target_ptr->resist_conf;
+ resist = (has_resist_conf(target_ptr) != 0);
saving_throw = (randint0(100 + rlev / 2) < target_ptr->skill_sav);
spell_badstatus_message(target_ptr, m_idx, t_idx, _("%^sがあなたの筋力を吸い取ろうとした!", "%^s drains power from your muscles!"),
_("%^sがあなたの筋力を吸い取ろうとした!", "%^s drains power from your muscles!"), _("しかし効果がなかった!", "You are unaffected!"),
msg1 = _("%sが%sの筋肉から力を吸いとった。", "%^s drains power from %s's muscles.");
}
- resist = tr_ptr->flags1 & RF1_UNIQUE;
+ resist = ((tr_ptr->flags1 & RF1_UNIQUE) != 0);
saving_throw = (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
spell_badstatus_message(target_ptr, m_idx, t_idx, msg1, _("%^sには効果がなかった。", "%^s is unaffected."),
_("%^sが何かを力強くつぶやいた。", "%^s mumbles powerfully."), _("%sは無傷の球の呪文を唱えた。", "%^s casts a Globe of Invulnerability."),
_("%sは無傷の球の呪文を唱えた。", "%^s casts a Globe of Invulnerability."), !seen, TARGET_TYPE);
+ MONRACE_IDX r_idx = m_ptr->r_idx;
+ if ((r_idx == MON_MARIO) || r_idx == MON_LUIGI) {
+ GAME_TEXT m_name[MAX_NLEN];
+ monster_desc(target_ptr, m_name, m_ptr, MD_NONE);
+ msg_format(_("%sはスターを取った!", "%^s got a star!"), m_name);
+ }
+
if (!monster_invulner_remaining(m_ptr))
(void)set_monster_invulner(target_ptr, m_idx, randint1(4) + 4, FALSE);
}