-/*!
+/*!
* @brief フロアの一定範囲に効果を及ぼす (悲鳴、テレポート等)スペルの効果
* @date 2020/05/16
* @author Hourier
#include "monster-race/race-ability-flags.h"
#include "monster-race/race-brightness-mask.h"
#include "monster-race/race-flags-resistance.h"
-#include "monster-race/race-flags1.h"
-#include "monster-race/race-flags3.h"
-#include "monster-race/race-flags7.h"
#include "monster-race/race-indice-types.h"
#include "monster-race/race-resistance-mask.h"
#include "monster/monster-info.h"
teleport_away(player_ptr, m_idx, 10, TELEPORT_SPONTANEOUS);
if (target_type == MONSTER_TO_PLAYER) {
- RedrawingFlagsUpdater::get_instance().set_flag(StatusRedrawingFlag::MONSTER_STATUSES);
+ RedrawingFlagsUpdater::get_instance().set_flag(StatusRecalculatingFlag::MONSTER_STATUSES);
}
return res;
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[m_idx];
- MonsterEntity *t_ptr = &floor_ptr->m_list[t_idx];
- MonsterRaceInfo *tr_ptr = &monraces_info[t_ptr->r_idx];
+ auto *t_ptr = &floor_ptr->m_list[t_idx];
+ auto *tr_ptr = &t_ptr->get_monrace();
mspell_cast_msg_simple msg(_("%s^があなたを引き戻した。", "%s^ commands you to return."),
_("%s^が%sを引き戻した。", "%s^ commands %s to return."));
auto *floor_ptr = player_ptr->current_floor_ptr;
MonsterEntity *t_ptr = &floor_ptr->m_list[t_idx];
- MonsterRaceInfo *tr_ptr = &monraces_info[t_ptr->r_idx];
+ MonsterRaceInfo *tr_ptr = &t_ptr->get_monrace();
mspell_cast_msg_simple msg(_("%s^にテレポートさせられた。", "%s^ teleports you away."),
_("%s^は%sをテレポートさせた。", "%s^ teleports %s away."));
auto *floor_ptr = player_ptr->current_floor_ptr;
MonsterEntity *t_ptr = &floor_ptr->m_list[t_idx];
- MonsterRaceInfo *tr_ptr = &monraces_info[t_ptr->r_idx];
+ MonsterRaceInfo *tr_ptr = &t_ptr->get_monrace();
DEPTH rlev = monster_level_idx(floor_ptr, m_idx);
bool resist, saving_throw;
}
resist = tr_ptr->resistance_flags.has_any_of(RFR_EFF_RESIST_NEXUS_MASK) || tr_ptr->resistance_flags.has(MonsterResistanceType::RESIST_TELEPORT);
- saving_throw = (tr_ptr->flags1 & RF1_QUESTOR) || (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
+ saving_throw = (tr_ptr->misc_flags.has(MonsterMiscType::QUESTOR)) || (tr_ptr->level > randint1((rlev - 10) < 1 ? 1 : (rlev - 10)) + 10);
mspell_cast_msg_bad_status_to_monster msg(_("%s^が%sの足を指さした。", "%s^ gestures at %s's feet."),
_("%s^には効果がなかった。", "%s^ is unaffected!"), _("%s^は効力を跳ね返した!", "%s^ resist the effects!"), "");
concptr msg_done;
auto *floor_ptr = player_ptr->current_floor_ptr;
auto *m_ptr = &floor_ptr->m_list[m_idx];
- auto *r_ptr = &monraces_info[m_ptr->r_idx];
+ auto *r_ptr = &m_ptr->get_monrace();
bool can_use_lite_area = false;
bool monster_to_monster = target_type == MONSTER_TO_MONSTER;
bool monster_to_player = target_type == MONSTER_TO_PLAYER;