퀘스트 저장 문제 때문에 데이터 저장 방식을 완전히 리펙토링하여 변경했다.
현재 퀘스트의 경우, 수락한 퀘스트만 리스트로 따로 저장하고 그 안에서 완료된 퀘스트를 다른 리스트로 분류하고 있었다.
다만 이렇게 진행하게 되니 퀘스트 리스트 데이터를 제이슨으로 저장할 때 똑같은 파일명으로 덮어씌워져서(퀘스트 인스턴스 타입이 같음) 저장 로직을 바꾸거나 다른 방법을 알아보아야 했다.
팀원이 언박싱/박싱으로 가능하다고 했으나 하는 방법을 몰라서 이쪽은 포기. 시간이 너무 오래 걸릴 것 같았다.
그래서 아예 인스턴스 변수에 상태 체크 bool 값을 모두 넣어줘서 관리했다.
public class QuestInstance
{
public int id; // 퀘스트 고유 번호
public int questId; // 퀘스트 데이터 번호
public int value; // 조건값
public bool isActive; // 활성화 상태
public bool isActivePopup; // 팝업 활성화 상태
public bool isComplete; // 조건 완료 여부
public bool isClose; // 보상 여부
public ItemInstance[] rewardItems;
}
그리고 생성된 모든 퀘스트를 리스트로 묶어서 다 저장하고 상태 값에 따라 불러왔다.
이렇게 하니까 다른 코드도 정리돼서 좋았다~! 리펙토링 성공적.
'[내배캠] 본 캠프 개발 학습 > 매일매일 쓰는 TIL' 카테고리의 다른 글
1월 7일 화요일 본 캠프 개발일지 (0) | 2025.01.08 |
---|---|
1월 6일 월요일 본 캠프 개발일지 (0) | 2025.01.07 |
12월 24일 화요일 본 캠프 개발 일지 (0) | 2024.12.26 |
12월 23일 월요일 본 캠프 개발 일지 (0) | 2024.12.24 |
12월 22일 일요일 본 캠프 개발 일지 (4) | 2024.12.22 |