}
}
- if ((r_ptr->flags7 & RF7_CHAMELEON) && !(z_ptr->flags7 & RF7_CHAMELEON)) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::CHAMELEON) && z_ptr->misc_flags.has_not(MonsterMiscType::CHAMELEON)) {
return false;
}
return false;
}
- if ((r_ptr->flags7 & RF7_CHAMELEON) && floor.get_dungeon_definition().flags.has(DungeonFeatureType::CHAMELEON)) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::CHAMELEON) && floor.get_dungeon_definition().flags.has(DungeonFeatureType::CHAMELEON)) {
return true;
}
unselectable |= any_bits(monrace.flags2, RF2_MULTIPLY);
unselectable |= monrace.behavior_flags.has(MonsterBehaviorType::FRIENDLY);
unselectable |= monrace.feature_flags.has(MonsterFeatureType::AQUATIC);
- unselectable |= any_bits(monrace.flags7, RF7_CHAMELEON);
+ unselectable |= monrace.misc_flags.has(MonsterMiscType::CHAMELEON);
unselectable |= monrace.is_explodable();
if (unselectable) {
return false;
m_ptr->parent_m_idx = 0;
}
- if (any_bits(r_ptr->flags7, RF7_CHAMELEON)) {
+ if (r_ptr->misc_flags.has(MonsterMiscType::CHAMELEON)) {
choose_new_monster(player_ptr, g_ptr->m_idx, true, MonsterRace::empty_id());
r_ptr = &m_ptr->get_monrace();
m_ptr->mflag2.set(MonsterConstantFlagType::CHAMELEON);
/*!
* @brief モンスター闘技場に参加できるモンスターの判定
* @param r_idx モンスターID
- * @details 基準はNEVER_MOVE MULTIPLY QUANTUM AQUATIC RF7_CHAMELEONのいずれも持たず、
+ * @details 基準はNEVER_MOVE MULTIPLY QUANTUM AQUATIC CHAMELEONのいずれも持たず、
* 自爆以外のなんらかのHP攻撃手段を持っていること。
* @return 参加できるか否か
*/
unselectable |= any_bits(monrace.flags2, RF2_MULTIPLY);
unselectable |= monrace.kind_flags.has(MonsterKindType::QUANTUM) && monrace.kind_flags.has_not(MonsterKindType::UNIQUE);
unselectable |= monrace.feature_flags.has(MonsterFeatureType::AQUATIC);
- unselectable |= any_bits(monrace.flags7, RF7_CHAMELEON);
+ unselectable |= monrace.misc_flags.has(MonsterMiscType::CHAMELEON);
unselectable |= monrace.is_explodable();
if (unselectable) {
return false;
if (r_ptr->kind_flags.has_not(MonsterKindType::UNIQUE)) {
return false;
}
- if (r_ptr->behavior_flags.has(MonsterBehaviorType::FRIENDLY) || (r_ptr->flags7 & RF7_CHAMELEON)) {
+ if (r_ptr->behavior_flags.has(MonsterBehaviorType::FRIENDLY) || r_ptr->misc_flags.has(MonsterMiscType::CHAMELEON)) {
return false;
}
return false;
}
- if (!(old_r_ptr->flags7 & RF7_CHAMELEON)) {
+ if (old_r_ptr->misc_flags.has_not(MonsterMiscType::CHAMELEON)) {
if (monster_has_hostile_align(player_ptr, m_ptr, 0, 0, r_ptr)) {
return false;
}
if (r_ptr->flags2 & RF2_MULTIPLY) {
return false;
}
- if (r_ptr->behavior_flags.has(MonsterBehaviorType::FRIENDLY) || (r_ptr->flags7 & RF7_CHAMELEON)) {
+ if (r_ptr->behavior_flags.has(MonsterBehaviorType::FRIENDLY) || (r_ptr->misc_flags.has(MonsterMiscType::CHAMELEON))) {
return false;
}
return false;
}
- if (!(old_r_ptr->flags7 & RF7_CHAMELEON)) {
+ if (old_r_ptr->misc_flags.has_not(MonsterMiscType::CHAMELEON)) {
if (old_r_ptr->kind_flags.has(MonsterKindType::GOOD) && r_ptr->kind_flags.has_not(MonsterKindType::GOOD)) {
return false;
}