public Dictionary <CHARACTER_TYPE, DefaultCharacterInfo> loadDefaultCharacterInfo() // SCV파일로된 캐릭터 타입별 디폴트 스텟정보를 로드해 반환 { Debug.Log("캐릭터 디폴트 정보 불러오기"); if (m_bloadDefulatCharacterInfoState == false) { Debug.Log("CSV 파일에서 캐릭터 디폴트 정보 불러오기"); TextAsset text = Resources.Load <TextAsset>("Data/DefaultCharacterInfo"); // 리소스 로드를 통해 테이블을 로드한다. string content = text.text; // content안에는 1줄로 데이터가 쭉 나열되어 있다. string[] line = content.Split('\n'); // string을 '\n' 기준으로 분리해서 line배열에 넣는다. for (int i = 2; i < line.Length - 1; i++) // 0 ~ 1번 라인은 테이블 타입 구분 용도로 사용한다. 2번째 라인부터 라인 갯수만큼 테이블 생성 (마지막NULL 한칸 제외해서 -1라인) { string[] column = line[i].Split(','); // 열의 정보값을 ','로 구분해 column배열에 넣는다. SCV파일은 ,로 구분되어 있으므로 DefaultCharacterInfo table = new DefaultCharacterInfo(); // SCV순서와 구조체 데이터 형식이 일치하여야 함 CHARACTER_TYPE key = CHARACTER_TYPE.NONE; // key값이 될 캐릭터 종류 int index = 0; // 0번째 열부터 시작 key = (CHARACTER_TYPE)int.Parse(column[index++]); // 첫번째 값을 정수형으로 받은 후 enum으로 전환해 key에 대입 table.m_iMaxExp = int.Parse(column[index++]); table.m_iMaxExpUp = int.Parse(column[index++]); table.m_iMaxHp = int.Parse(column[index++]); table.m_iMaxHpUp = int.Parse(column[index++]); table.m_iStr = int.Parse(column[index++]); table.m_iStrUp = int.Parse(column[index++]); table.m_iDef = int.Parse(column[index++]); table.m_iDefUp = int.Parse(column[index++]); m_dicDefaultCharacterInfo.Add(key, table); } m_bloadDefulatCharacterInfoState = true; } Debug.Log("캐릭터 디폴트 정보 불러오기 완료"); return(m_dicDefaultCharacterInfo); }
void calculateStatus() // 캐릭터 타입과 현재 레벨을 통해 나머지의 능력치를 계산한다. { DefaultCharacterInfo info = m_dicDefaultCharacterInfo[m_playerInfo.m_eCharacterType]; // 캐릭터 타입에 따른 정보를 분리함 int level = m_playerInfo.m_iLevel; // 현재 레벨을 받아와서 계산 m_playerInfo.m_iMaxHp = info.m_iMaxHp + level * info.m_iMaxHpUp; // 기본 체력 + 레벨당 상승 체력 m_playerInfo.m_iMaxExp = info.m_iMaxExp + level * info.m_iMaxExpUp; // 다음레벨이 되기위한 기본 경험치 + 레벨당 상승 경험치 m_playerInfo.m_iStr = info.m_iStr + level * info.m_iStrUp; // 기본 공격력 + 레벨당 상승 공격력 m_playerInfo.m_iDef = info.m_iDef + level * info.m_iDefUp; // 기본 방어력 + 레벨당 상승 방어력 m_iCurHp = m_playerInfo.m_iMaxHp; m_iCurStr = m_playerInfo.m_iStr + m_playerInfo.m_iWeaponStr; }