어빌리티 스톤을 윅득할 수 있는 어빌리티 던전 생성.
AbilityStageDataSO(StageData), AbilityDungeonSO(DungeonData) 생성 및 셋팅
StageManage Prefab -> AbilityDungeonSO 셋팅
Defines.cs 의 Enum 값들 => EDungeonType, EUpgradeType, EAchievementType, ECurrencyType, EQuestRewardType, ENormalRewardType 등 Enum 타입에 Ability 추가.
::: 중요 ::: Strings.cs 의 문자열 배열 변수 currencyToKKOR, dungeonToKOR 에 값 추가 (셋팅 안할시 Index Out Of Range 오류 발생)
::: 주의 ::: 재화의 종류가 늘어나 CurrencyManager 리스트에 수정사항이 생기면, CurrencyManager.cs -> InitCurrencyManager 메서드의 조건문을 잠시 지워두고 실행을 하여 세이브 및 로드를 강제해야함. (Currencies 리스트가 예전 정보로 계속 로드되어 갱신이 안됨. 수정 후 최초 1회 필요)
기존 어빌리티 던전의 몬스터를 어빌리티 스톤으로 교체.
어빌리티 던전같은 종류(무생물 Idle 몬스터)를 위한 랜덤 위치 셋팅 로직 생성
StageDataSO.cs -> isIdleMonster bool 변수 생성.
bool 값을 체크하고, basicIdleMonsterSpawn(Min, Max)Position 벡터 값에 최소, 최대 좌표를 등록하면 그 사이의 랜덤 좌표에서 몬스터 생성.
// 랜덤 스폰 로직
if (!dungeonData.stageSO.IsIdleMonster)
{
monster.transform.position =
dungeonData.stageSO.BasicMonsterSpawnPosition[
Random.Range(0, dungeonData.stageSO.BasicMonsterSpawnPosition.Length - 1)];
}
else
{
Vector3 monsterPosition = monster.transform.position;
Vector2 minPosition = dungeonData.stageSO.BasicIdleMonsterSpawnMinPosition;
Vector2 maxPosition = dungeonData.stageSO.BasicIdleMonsterSpawnMaxPosition;
monsterPosition.x = Random.Range(minPosition.x, maxPosition.x);
monsterPosition.y = Random.Range(minPosition.y, maxPosition.y);