//플레이어 스탯과 각종 정보들을 저장하는 함수 public void Write_Player_Info() { string[,] playerInfoString = { { "SlotNum", "Date", "ID", "Name", "Move Speed", "Rotate Speed", "Health", "Mana", "Power", "Damage", "Critical Rate", "Critical Point", "Level", "Exp", "Gold", "Cash", "Equipped Skin", "EquippedSkill0", "EquippedSkill1", "EquippedSkill2", "Stage0Lock" }, { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" } }; ////값이 반영됨. 저장 성공 ////제대로 저장되는 지 확인하기 위한 코딩 //playerInfo._SET_Player_Name = "Writing Success?"; //playerInfo.__Buy_OR_Sell__About_Money("Gold", 1); //ID와 이름 playerInfoString[1, 0] = playerInfo._GET_Player_ID; playerInfoString[1, 1] = playerInfo._GET_Player_Name; //이동속도, 회전속도 playerInfoString[1, 2] = playerController.__PLY_Stat.__PUB_Move_Speed.ToString(); playerInfoString[1, 3] = playerController.__PLY_Stat.__PUB_Rotation_Speed.ToString(); //체력, 마나, 파워 playerInfoString[1, 4] = playerController.__PLY_Stat.__GET_Max_HP.ToString(); playerInfoString[1, 5] = playerController.__PLY_Stat.__GET_Max_MP.ToString(); playerInfoString[1, 6] = playerController.__PLY_Stat.__GET_Max_PP.ToString(); //공격력, 크리티컬 확률, 크리티컬 계수 playerInfoString[1, 7] = playerController.__PLY_Stat.__PUB_ATK__Val.ToString(); playerInfoString[1, 8] = playerController.__PLY_Stat.__PUB_Critical_Rate.ToString(); playerInfoString[1, 9] = playerController.__PLY_Stat.__PUB_Critical_P.ToString(); //레벨, 경험치 playerInfoString[1, 10] = playerInfo._GET_Player_Level.ToString(); playerInfoString[1, 11] = playerInfo._GET_Player_Exp.ToString(); //골드와 캐쉬 playerInfoString[1, 12] = playerInfo._GET_Player_Gold.ToString(); playerInfoString[1, 13] = playerInfo._GET_Player_Cash.ToString(); //장착 중인 스킨 ID playerInfoString[1, 14] = playerInfo._GET_Player_SkinID; IO_CSV.Writer_CSV("/Sample__Player_Info.csv", playerInfoString); }
//플레이어 스탯과 각종 정보들을 불러오는 함수 private void Read_Player_Info(int saveSlotNum) { List <string> playerInfoList = IO_CSV.__Get_pieces_OF_BaseStrings(IO_CSV.Reader_CSV("/SaveSlot.csv")[saveSlotNum]); playerInfo.Set_Player_Infomation(playerInfoList); playerController.__PLY_Stat.Initialize_Player_Stat(playerInfoList); playerController.Initialize_Player_EquippedSkills(playerInfoList); }
void Awake() { //Sample_SkillDB에 저장된 스킬 내용들을 불러오기 allSkills = IO_CSV.__Get_All_SkillBaseStat(); //Sample_Player_Info에 저장된 스킬 내용들 불러오기 equippedSkills = Player_Info_Manager.Read_Equipped_SkillBaseStat(); }
void Awake() { playerController = GameObject.Find("SamplePlayer").GetComponent <PlayerController>(); //SaveSlot.cs 파일이 없다면 값 초기화, 있다면 아무것도 안 함 IO_CSV.InitFiles(); //SaveSlot.cs 파일에서 플레이어 정보를 읽어온다. Read_Player_Info(); }
//저장슬롯에 따라 플레이어 스탯과 각종 정보들을 저장하는 함수 public void Write_Player_Info(int slotNum) { string[] playerInfoString = new string[21]; ////값이 반영됨. 저장 성공 ////제대로 저장되는 지 확인하기 위한 코딩 playerInfo._SET_Player_Name = "NEWNEW Writing Success?"; //playerInfo.__Buy_OR_Sell__About_Money("Gold", 1); //저장슬롯ID, 저장날짜 playerInfoString[0] = playerInfo._GET_saveSlotNum.ToString(); playerInfoString[1] = System.DateTime.Now.ToString(); //ID와 이름 playerInfoString[2] = playerInfo._GET_Player_ID; playerInfoString[3] = playerInfo._GET_Player_Name; //이동속도, 회전속도 playerInfoString[4] = playerController.__PLY_Stat.__PUB_Move_Speed.ToString(); playerInfoString[5] = playerController.__PLY_Stat.__PUB_Rotation_Speed.ToString(); //체력, 마나, 파워 playerInfoString[6] = playerController.__PLY_Stat.__GET_Max_HP.ToString(); playerInfoString[7] = playerController.__PLY_Stat.__GET_Max_MP.ToString(); playerInfoString[8] = playerController.__PLY_Stat.__GET_Max_PP.ToString(); //공격력, 크리티컬 확률, 크리티컬 계수 playerInfoString[9] = playerController.__PLY_Stat.__PUB_ATK__Val.ToString(); playerInfoString[10] = playerController.__PLY_Stat.__PUB_Critical_Rate.ToString(); playerInfoString[11] = playerController.__PLY_Stat.__PUB_Critical_P.ToString(); //레벨, 경험치 playerInfoString[12] = playerInfo._GET_Player_Level.ToString(); playerInfoString[13] = playerInfo._GET_Player_Exp.ToString(); //골드와 캐쉬 playerInfoString[14] = playerInfo._GET_Player_Gold.ToString(); playerInfoString[15] = playerInfo._GET_Player_Cash.ToString(); //장착 중인 스킨 ID playerInfoString[16] = playerInfo._GET_Player_SkinID; //장착 중인 스킬들 playerInfoString[17] = playerController.__PLY_Selected_Skills[0].__Get_Skill_ID; playerInfoString[18] = playerController.__PLY_Selected_Skills[1].__Get_Skill_ID; playerInfoString[19] = playerController.__PLY_Selected_Skills[2].__Get_Skill_ID; //스테이지 진척도 string stageString = "c"; for (int i = 0; i < playerInfo._GET_stageIsLocked.Count; i++) { stageString += playerInfo._GET_stageIsLocked[i].ToString(); } playerInfoString[20] = stageString; IO_CSV.Writer_CSV("/SaveSlot.csv", playerInfoString); }
public void Initialize_U_Skill(SkillBaseStat whichSkill, bool isPlayerUsingThis_Input) { thisSkillStat = whichSkill; //나중엔 UltimateSkill DB를 따로 만들거나 기존의 SKill DB에 부가 효과에 대한 정보를 입력하고 거기서 읽어올 것. //아래 조치는 임시 조치 //이속 디버프 추가 subSkillStats.Add(IO_CSV.__Get_Searched_SkillBaseStat("NORMAL_SP_01")); //차이 확인을 위해 임의로 값을 변경한다. (상대 이속 & 회전속도를 70% 감소시키는 디버프) subSkillStats[0].__SET_Skill_Rate = 0.7f; isPlayerUsingThis = isPlayerUsingThis_Input; Destroy(gameObject, whichSkill.__GET_Skill_ING_Time); }
public void InitialLize_Enemy_Stat(List <string> enemyStatBaseString) { enemyName = enemyStatBaseString[1]; base.__PUB_Move_Speed = float.Parse(enemyStatBaseString[2]); base.__PUB_Rotation_Speed = float.Parse(enemyStatBaseString[3]); base.__MAX_Health_Point = int.Parse(enemyStatBaseString[4]); base.__MAX_Mana_Point = int.Parse(enemyStatBaseString[5]); base.__MAX_Power_Point = int.Parse(enemyStatBaseString[6]); base.__PUB__Health_Point = base.__MAX_Health_Point; base.__PUB__Mana_Point = base.__MAX_Mana_Point; base.__PUB__Power_Point = 0; base.__PUB_ATK__Val = int.Parse(enemyStatBaseString[7]); base.__PUB_Critical_Rate = float.Parse(enemyStatBaseString[8]); base.__PUB_Critical_P = float.Parse(enemyStatBaseString[9]); base.FOriginalMoveSpeed = base._Move_Speed; base.FOriginalRotateSpeed = base._Rotation_Speed; //소수점 이하는 내림해서 값이 결정됨. half_HP = (int)(__MAX_Health_Point / 2); ai_Level = int.Parse(enemyStatBaseString[10]); //ai_Level = 1; //Enemy가 장착한 스킬들 enemySkillList.Add(IO_CSV.__Get_Searched_SkillBaseStat(enemyStatBaseString[11])); enemySkillList.Add(IO_CSV.__Get_Searched_SkillBaseStat(enemyStatBaseString[12])); enemySkillList.Add(IO_CSV.__Get_Searched_SkillBaseStat(enemyStatBaseString[13])); //버프, 디버프 통제용 for (int i = 0; i < 5; i++) { __PUB_Stat_IsCoolTimeOn.Add(false); __PUB_Stat_Real_Locker.Add(false); } //기본 마나 회복 __PUB_Stat_IsCoolTimeOn[2] = true; }
//Read_EquippedSkills()에서 읽은 ID를 이용하여 Sample__SkilLDataBase.csv에서 //해당되는 ID값의 SkillStat만 resultSkill에 넣어 반환할 것 public static List <SkillBaseStat> Read_Equipped_SkillBaseStat() { List <SkillBaseStat> resultSkills = new List <SkillBaseStat>(); List <string> equippedSkills = IO_CSV.Reader_CSV("/Sample__PlayerEquippedInfo.csv"); //나중에 Exception 처리할 것 if (equippedSkills[0] == "FileNotFoundException") { Debug.Log("Read_Equipped_SkillBaseStat: " + equippedSkills[0] + ", Sample__PlayerEquippedInfo.csv"); } //필요없는 정보는 지운다. Reader_CSV에서 직접 지우도록 변경됨 //equippedSkills.Remove("Skill_ID"); //플레이어가 장착하고 있는 스킬들의 정보를 읽어온다. for (int i = 0; i < equippedSkills.Count; i++) { resultSkills.Add(IO_CSV.__Get_Searched_SkillBaseStat(equippedSkills[i])); } return(resultSkills); }
void Awake() { //이속, 회전속도, 체력, 마나, 파워 게이지, 공격력, 크리확률, 크리계수, AI레벨 //enemyStat.SampleInit(10.0f, 30.0f, 10, 10, 10, 1, 0.1f, 2.0f, 0); //enemyStat.SampleInit(10.0f, 30.0f, 10, 10, 10, 1, 0.1f, 2.0f, sample_AI_Level); enemyStat.InitialLize_Enemy_Stat(IO_CSV.__Get_Searched_EnemyBaseStat(unitID)); //UnitBaseEngine에 Enemy라고 알려준다. enemyAIEngine._unitBaseEngine = transform.GetComponent <UnitBaseEngine>(); enemyAIEngine.enemyCoolTimer = enemyCoolTimer; //CombatEngine에서 해당 클래스에 접근할 수 있도록 밑작업 enemyAIEngine._unitBaseEngine.enemyController = this; enemyAIEngine._unitBaseEngine._unit_Combat_Engine.__SET_unit_Base_Engine = enemyAIEngine._unitBaseEngine; enemyAIEngine._unitBaseEngine._unit_Move_Engine._SET_unit_Base_Engine = enemyAIEngine._unitBaseEngine; enemyAIEngine._unitBaseEngine._unit_Move_Engine.movingEffect = this.movingEffect; //Unit__Base_Engine이 Unit__Base_Stat 내용에 접근할 수 있도록 한다. enemyAIEngine._unitBaseEngine._unit_Stat = enemyStat; enemyAI = transform.GetComponent <EnemyAI>(); for (int index = 0; index < enemyAIEngine._PUB_enemy_Is_ON_CoolTime.Length; index++) { enemyAIEngine._PUB_enemy_Is_ON_CoolTime[index] = true; } _AI_FuncList.Add(() => enemyAI.AI_Simple_Level0()); _AI_FuncList.Add(() => enemyAI.AI_Simple_Level0_WITH_BOSS()); _AI_FuncList.Add(() => enemyAI.AI_Simple_Level0_BOSS()); _AI_FuncList.Add(() => enemyAI.AI_ReinforceLearn_RandomBehave_Ver()); _AI_FuncList.Add(() => enemyAI.__OLD__AI_DeepLearning__BigData_Ver()); _AI_FuncList.Add(() => enemyAI.AI_DeepLearning__BigData_Ver()); aiLV = enemyStat._GET_ai_Level; }
//스킬을 장착하는 함수 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 + "은(는) 잠겨있는 스킬입니다."; } }
//================================================================================================ void Awake() { //================================================================================================ //업그레이드 관련 내용 초기화 //나중에 CSV 파일에서 읽어올것------------------------------------------------------- //-------------------------------------------- statNameArray[0] = "이동속도"; statNameArray[1] = "회전속도"; statNameArray[2] = "최대 체력"; statNameArray[3] = "최대 마력"; statNameArray[4] = "최대 궁극지 게이지"; statNameArray[5] = "공격력"; statNameArray[6] = "치명타 확률"; statNameArray[7] = "치명타 계수"; //-------------------------------------------- statValue[0] = 5f; statValue[1] = 5f; statValue[2] = 1f; statValue[3] = 1f; statValue[4] = 1f; statValue[5] = 1f; statValue[6] = 1f; statValue[7] = 0.1f; //-------------------------------------------- statMinValue[0] = 5f; statMinValue[1] = 20f; statMinValue[2] = 5f; statMinValue[3] = 6f; statMinValue[4] = 7f; statMinValue[5] = 1f; statMinValue[6] = 5f; statMinValue[7] = 1.5f; //-------------------------------------------- statMaxValue[0] = 100f; statMaxValue[1] = 90f; statMaxValue[2] = 30f; statMaxValue[3] = 25f; statMaxValue[4] = 20f; statMaxValue[5] = 10f; statMaxValue[6] = 20f; statMaxValue[7] = 3f; //-------------------------------------------- statPrice[0] = 1; statPrice[1] = 2; statPrice[2] = 3; statPrice[3] = 4; statPrice[4] = 5; statPrice[5] = 6; statPrice[6] = 7; statPrice[7] = 8; //-------------------------------------------- //--------------------------------------------------------------------------------- //수정한 적 없으면 아래와 같이 -1로 초기화 한다. for (int index = 0; index < statBeforeSave.Length; index++) { statBeforeSave[index] = -1f; } //================================================================================================ //================================================================================================ //스킬 장착 관련 내용 초기화 //Sample_SkillDB에 저장된 스킬 내용들을 불러오기 allSkills = IO_CSV.__Get_All_SkillBaseStat(); //================================================================================================ }