using UnityEngine; namespace MazeGen { /// /// Configuration for monster encounters in a room. Attached to MazeSceneBuilder settings /// to control if/how many monsters spawn in newly generated rooms. /// [System.Serializable] public class RoomEncounterConfig { [SerializeField] private bool _enableEncounters = true; [SerializeField] private float _encounterChance = 0.7f; // Probability this room has monsters (0-1) [SerializeField] private int _minMonstersPerRoom = 1; [SerializeField] private int _maxMonstersPerRoom = 3; [SerializeField] private Monster[] _monsterPool; // Which monsters can spawn here public bool EnableEncounters => _enableEncounters; public float EncounterChance => _encounterChance; public int MinMonstersPerRoom => _minMonstersPerRoom; public int MaxMonstersPerRoom => _maxMonstersPerRoom; public Monster[] MonsterPool => _monsterPool ?? new Monster[0]; /// Determine if this room should have an encounter. public bool ShouldHaveEncounter() { if (!_enableEncounters || _monsterPool == null || _monsterPool.Length == 0) return false; return Random.value < _encounterChance; } } }