feat : 보스 레이드 입장 메시지 기능 추가
This commit is contained in:
@@ -16,6 +16,12 @@ public class Channel
|
||||
// 채널 맵 관리
|
||||
private readonly Dictionary<int, AMap> maps = new();
|
||||
|
||||
// 진행중 채널 맵 관리
|
||||
private readonly Dictionary<int, AMap> useInstanceMaps = new();
|
||||
|
||||
// 동적 레이드 맵 할당용 ID 카운터 (사전 생성 10개 이후부터 시작)
|
||||
private int nextDynamicRaidMapId = 1011;
|
||||
|
||||
// 파티
|
||||
private readonly PartyManager partyManager = new();
|
||||
|
||||
@@ -29,7 +35,7 @@ public class Channel
|
||||
maps.Add(1, new Robby(1));
|
||||
|
||||
// 인던
|
||||
int defaultValue = 10;
|
||||
int defaultValue = 1000;
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
maps.Add(i + defaultValue, new BossInstance(i + defaultValue));
|
||||
@@ -152,9 +158,47 @@ public class Channel
|
||||
return map;
|
||||
}
|
||||
|
||||
// 사용 가능한 레이드 맵 ID 반환
|
||||
// 기존 맵(1001~) 중 미사용 탐색 → 없으면 동적 생성 후 반환
|
||||
public int GetOrCreateAvailableRaidMap()
|
||||
{
|
||||
// 기존 맵 중 미사용 탐색
|
||||
foreach (int mapId in maps.Keys)
|
||||
{
|
||||
if (mapId >= 1001 && !useInstanceMaps.ContainsKey(mapId))
|
||||
{
|
||||
return mapId;
|
||||
}
|
||||
}
|
||||
|
||||
// 모두 사용 중 → 동적 생성
|
||||
int newMapId = nextDynamicRaidMapId++;
|
||||
BossInstance newMap = new(newMapId);
|
||||
maps.Add(newMapId, newMap);
|
||||
|
||||
return newMapId;
|
||||
}
|
||||
|
||||
// 레이드 맵 사용 시작 (진행중 목록에 등록)
|
||||
public void AddInstanceMap(int mapId)
|
||||
{
|
||||
if (maps.TryGetValue(mapId, out AMap? map))
|
||||
{
|
||||
useInstanceMaps[mapId] = map;
|
||||
}
|
||||
}
|
||||
|
||||
// 레이드 맵 사용 종료 (진행중 목록에서 제거)
|
||||
public void RemoveInstanceMap(int mapId)
|
||||
{
|
||||
useInstanceMaps.Remove(mapId);
|
||||
}
|
||||
|
||||
// 파티매니저 가져옴
|
||||
public PartyManager GetPartyManager()
|
||||
{
|
||||
return partyManager;
|
||||
}
|
||||
|
||||
// TODO : 채널 가져오기
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user