OSDN Git Service

Update one-monster-placer.cpp
authorSlimebreath6078 <87808091+Slimebreath6078@users.noreply.github.com>
Thu, 22 Jul 2021 13:31:26 +0000 (22:31 +0900)
committerGitHub <noreply@github.com>
Thu, 22 Jul 2021 13:31:26 +0000 (22:31 +0900)
#1241
モンスター生成処理の際、友好化の条件が「モンスターが友好的な特性を持つ場合、"または"召喚主が友好、または強制的に友好にする場合」という処理だったため、モンスターが友好の特性を持つかどうかの判定を自然生成(whoが0)の時にのみするように変更するのはいかがでしょうか。
これであれば召喚主が敵対している場合は普段友好なモンスターも召喚された際に敵対して生成されます。

src/monster-floor/one-monster-placer.cpp

index f260670..62b299d 100644 (file)
@@ -318,7 +318,7 @@ bool place_monster_one(player_type *player_ptr, MONSTER_IDX who, POSITION y, POS
     m_ptr->ml = false;
     if (mode & PM_FORCE_PET) {
         set_pet(player_ptr, m_ptr);
-    } else if ((r_ptr->flags7 & RF7_FRIENDLY) || (mode & PM_FORCE_FRIENDLY) || is_friendly_idx(player_ptr, who)) {
+    } else if (!who && (r_ptr->flags7 & RF7_FRIENDLY) || is_friendly_idx(player_ptr, who) || (mode & PM_FORCE_FRIENDLY)) {
         if (!monster_has_hostile_align(player_ptr, NULL, 0, -1, r_ptr) && !player_ptr->current_floor_ptr->inside_arena)
             set_friendly(m_ptr);
     }