//스킬을 장착해제하는 함수 private void UnEquip_Skill(string buttonText) { try { //Exception 여부를 검사한다. (장착 해제하려고 한 칸이 빈 칸인 지 확인한다.) MainSceneManagerSkillException.Validate_EmptySkillInventoryException(buttonText); //스킬을 제거한다. textSystemLog_Skill.text = buttonText + "스킬을 제거합니다"; equippedSkills.Remove(Search_SkillBaseStat_BY_Name_IN_List(buttonText, equippedSkills)); //정보를 업데이트한다. SkillEquipWindowCleaner(); } catch (MainSceneManagerSkillException.EmptySkillInventoryException) { textSystemLog_Skill.text = "비어있습니다"; } }
//스킬을 장착하는 함수 private void Equip_Skill(string skillName) { try { //Exception 여부를 검사한다. (스킬을 추가로 장착할 수 있는지 확인한다.) MainSceneManagerSkillException.Validate_FullSkillInventoryException(buttonsSkillInventory); MainSceneManagerSkillException.Validate_SkillOverlapped_IN_InventoryException(skillName, equippedSkills); //(장착하려는 스킬이 잠겨있는 스킬인지 확인한다.) MainSceneManagerSkillException.Validate_SkillLockedException(IO_CSV.__Get_Searched_SkillBaseStat(skillName).__GET_isItLocked, player.GetComponent <Player_Info_Manager>().__GET_playerInfo._GET_saveSlotNum); //스킬을 장착할 빈 자리가 있으면 스킬을 장착한다. equippedSkills.Add(Search_SkillBaseStat_BY_Name_IN_List(skillName, allSkills)); textSystemLog_Skill.text = skillName + "을(를) 장착합니다."; //정보를 업데이트한다. SkillEquipWindowCleaner(); } //스킬을 장착할 빈 자리가 없는 경우 catch (MainSceneManagerSkillException.FullSkillInventoryException) { //안내 메세지만 띄운다. textSystemLog_Skill.text = "더 장착할 수 없습니다."; } //장착하려고 하는 스킬이 이미 장착된 경우 catch (MainSceneManagerSkillException.SkillOverlapped_IN_InventoryException) { //안내 메시지만 띄운다. textSystemLog_Skill.text = skillName + "을(를) 이미 장착했습니다."; } catch (MainSceneManagerSkillException.SkillLockedException) { //안내 메시지만 띄운다. textSystemLog_Skill.text = skillName + "은(는) 잠겨있는 스킬입니다."; } }
// Use this for initialization void Start() { //모든 window를 숨긴다. windowSkillEquip.SetActive(false); windowUpgrade.SetActive(false); //================================================================================================ //업그레이드 관련 내용 초기화 //플레이어 정보를 수정하고 저장하기 위한 초기화 player = GameObject.FindGameObjectWithTag("Player").transform; UpgradeWindowCleaner(); //saveButton을 누르면 Sample__PlayerEquippedInfo.csv에 장착한 스킬 정보를 저장하도록 한다. buttonSavePlayerInfo.onClick.AddListener(() => SavePlayerInfo()); //초기화 과정에서 무언가가 잘못됨. 일단 노가다로 해결 buttonsStat[0].onClick.AddListener(() => ClickOnStatButton(0)); buttonsStat[1].onClick.AddListener(() => ClickOnStatButton(1)); buttonsStat[2].onClick.AddListener(() => ClickOnStatButton(2)); buttonsStat[3].onClick.AddListener(() => ClickOnStatButton(3)); buttonsStat[4].onClick.AddListener(() => ClickOnStatButton(4)); buttonsStat[5].onClick.AddListener(() => ClickOnStatButton(5)); buttonsStat[6].onClick.AddListener(() => ClickOnStatButton(6)); buttonsStat[7].onClick.AddListener(() => ClickOnStatButton(7)); buttonUpgrade.onClick.AddListener(() => Upgrade_OR_Downgrade_Stat(1f)); buttonDowngrade.onClick.AddListener(() => Upgrade_OR_Downgrade_Stat(-1f)); buttonBackTOOrigin.onClick.AddListener(() => Back_TO_Origin_Stat()); //Debug용 buttonCHEATGetGold.onClick.AddListener(() => ___CHEAT___GetGold()); buttonCHEATLoseGold.onClick.AddListener(() => ___CHEAT___LoseGold()); //================================================================================================ //스킬 장착 관련 내용 초기화 buttonSaveEquippedSkills.onClick.AddListener(() => Save_EquippedSkills()); //스킬 버튼에 스킬 이름들이 나오도록 한다. (장착 스킬 제외) for (int i = 0; i < buttonsValidSkills.Length; i++) { string logForSample = allSkills[i].__GET_Skill_Name; //열려있는 스킬이면 try { MainSceneManagerSkillException.Validate_SkillLockedException(allSkills[i].__GET_isItLocked, player.GetComponent <Player_Info_Manager>().__GET_playerInfo._GET_saveSlotNum); buttonsValidSkills[i].GetChild(0).GetComponent <Text>().text = allSkills[i].__GET_Skill_Name; buttonsValidSkills[i].GetComponent <Button>().onClick.AddListener(() => Equip_Skill(logForSample)); } //잠겨있는 스킬이면 catch (MainSceneManagerSkillException.SkillLockedException) { //잠겨있다고 출력한다. buttonsValidSkills[i].GetChild(0).GetComponent <Text>().text = "잠겨있는 스킬"; //해당 버튼은 눌러도 잠겨있다는 메시지만 출력한다. buttonsValidSkills[i].GetComponent <Button>().onClick.AddListener(() => Equip_Skill(logForSample)); } } SkillEquipWindowCleaner(); SkillEquipWindowLogCleaner(); //================================================================================================ }