diff --git a/BlueWater/Assets/02.Scripts/Npc/Guest/FindTableState.cs b/BlueWater/Assets/02.Scripts/Npc/Guest/FindTableState.cs index 7bac93dc6..e1a00b222 100644 --- a/BlueWater/Assets/02.Scripts/Npc/Guest/FindTableState.cs +++ b/BlueWater/Assets/02.Scripts/Npc/Guest/FindTableState.cs @@ -1,3 +1,4 @@ +using System.Collections.Generic; using UnityEngine; using UnityEngine.AI; @@ -76,12 +77,41 @@ namespace BlueWaterProject { if (!npc.DoSeat) { - foreach (var table in tables) + // 확률 결정 + var probability = Random.Range(0f, 1f); + + if (probability <= 0.7f) { - foreach (var seat in table.SeatPoints) + // 70% 확률: 비어 있는 좌석 중에서 랜덤 선택 + var availableSeats = new List(); + foreach (var table in tables) { - if (seat.IsUsing) continue; - AssignSeatToNpc(seat); + foreach (var seat in table.SeatPoints) + { + if (!seat.IsUsing) availableSeats.Add(seat); + } + } + + if (availableSeats.Count > 0) + { + var randomIndex = Random.Range(0, availableSeats.Count); + AssignSeatToNpc(availableSeats[randomIndex]); + return; + } + } + else + { + // 30% 확률: 모든 좌석 중에서 랜덤 선택 + var allSeats = new List(); + foreach (var table in tables) + { + allSeats.AddRange(table.SeatPoints); + } + + if (allSeats.Count > 0) + { + var randomIndex = Random.Range(0, allSeats.Count); + AssignSeatToNpc(allSeats[randomIndex]); return; } }