void callback_Try_Reinforce(REINFORCE_TYPE rfType) { UI_Popup_RfProcess popup = UI_Manager.Getsingleton.CreatAndGetPopup <UI_Popup_RfProcess>(UIPOPUP.POPUPRFPROCESS); popup.Set_addEventYESButton(() => callback_complete_Rfprocess(nowSelectUnitIdx)); //실패 수가 1이상이면 실패! if (user.User_Units[nowSelectUnitIdx].RefFailCnt >= 1) { popup.Set_RfProcess(rfType, false, nowSelectUnitIdx, nowSelectUnitIdx); } else // 아니면 강화성공 { popup.Set_RfProcess(rfType, true, nowSelectUnitIdx, nowSelectUnitIdx); } }
void callback_Try_RfEquipItem(REINFORCE_TYPE rfType) { User _user = UserDataManager.instance.user; UI_Popup_RfProcess popup = UI_Manager.Getsingleton.CreatAndGetPopup <UI_Popup_RfProcess>(UIPOPUP.POPUPRFPROCESS); popup.Set_addEventYESButton(callback_complete_ReinforceItem); if (_user.User_Weapons[Selected_Item.ItemIdx].RefFailCnt >= 1) { popup.Set_RfProcess(rfType, false, nowSelectUnitIdx, Selected_Item.ItemIdx); } else { popup.Set_RfProcess(rfType, true, nowSelectUnitIdx, Selected_Item.ItemIdx); } }
void callback_Try_Reinforce(REINFORCE_TYPE rfType) { User _user = UserDataManager.instance.user; uint _unitIdx = _user.User_useUnit.UnitIdx; UI_Popup_RfProcess popup = UI_Manager.Getsingleton.CreatAndGetPopup <UI_Popup_RfProcess>(UIPOPUP.POPUPRFPROCESS); popup.Set_addEventYESButton(() => callback_complete_Rfprocess(_user.User_useUnit.UnitIdx)); //실패 수가 1이상이면 실패! if (_user.User_Units[_user.User_useUnit.UnitIdx].RefFailCnt >= 1) { popup.Set_RfProcess(rfType, false, _unitIdx, _unitIdx); } else // 아니면 강화성공 { popup.Set_RfProcess(rfType, true, _unitIdx, _unitIdx); } }
public void Set_RfProcess(REINFORCE_TYPE RfType, bool isRfSuccess, uint _unitIdx, uint _ItemIdx) { Active_RfProcessObj(RfState); UnitIdx = _unitIdx; ItemIdx = _ItemIdx; if (isRfSuccess) { // 강화아이템 정보 Set_RfInfo(RfType); //강화 성공시 분석 떄리기 Analyze_successRf(RfType); Ani.SetTrigger("Rf_success"); } else { Ani.SetTrigger("Rf_fail"); } }
//강화 성공시 분석 떄리기 void Analyze_successRf(REINFORCE_TYPE rfType) { User _user = UserDataManager.instance.user; //if(rfType == REINFORCE_TYPE.UNIT) //{ // Dictionary<uint, infos_unit> _dic_unitinfo = TableDataManager.instance.Infos_units; // AnalysisManager.instance.Anl_CustomEvt(DefineKey.Reinforce, DefineKey.ReinforceUnit, //유닛강화 // _dic_unitinfo[UnitIdx].UnitName, //유닛이름 // string.Format("{0}{1}", DefineKey.RfLV, _user.User_Units[UnitIdx].RefLv), //강화레벨 // 1); //} //else if (rfType == REINFORCE_TYPE.WEAPON) //{ // Dictionary<uint, Infos_Weapon> _dic_weaponinfo = TableDataManager.instance.Infos_weapons; // AnalysisManager.instance.Anl_CustomEvt(DefineKey.Reinforce, DefineKey.ReinforceWpn, //무기강화 // _dic_weaponinfo[ItemIdx].WpnName, //무기이름 // string.Format("{0}{1}", DefineKey.RfLV, _user.User_Weapons[UnitIdx][ItemIdx].RefLv), //강화레벨 // 1); //} }
public void Set_ReinforceInfo(REINFORCE_TYPE rfType, uint _unitIdx, uint _ItemIdx) { User _user = UserDataManager.instance.user; reinforceType = rfType; UnitIdx = _unitIdx; ItemIdx = _ItemIdx; string itemName = string.Empty; string[] rate = new string[2]; if (rfType == REINFORCE_TYPE.UNIT) { Dic_infosUnitRfprice = TableDataManager.instance.Infos_UnitReinforces; itemName = TableDataManager.instance.Infos_units[UnitIdx].UnitName; byte maxRfLv = TableDataManager.instance.Get_MaxRefLv(); byte nextRfLv = (byte)(_user.User_Units[UnitIdx].RefLv + 1); if (nextRfLv >= maxRfLv) { nextRfLv = maxRfLv; ItemPrice[0] = TableDataManager.instance.Infos_ConstValues[(int)ConstValue_TYPE.Const_BuySubSkillPrice].ConsVal; //스킬 보석 가격 } ItemPrice[1] = Dic_infosUnitRfprice[nextRfLv].NeedGold; //rate[0] = string.Format("100%"); //rate[1] = string.Format("{0}%", Dic_infosRfprice[nextRfLv].GoldSucPer); //이름 text_RfItemName.text = string.Format("{0} <color=#FF3E56>Lv.{1}</color>", itemName, _user.User_Units[UnitIdx].RefLv); //레벨표시 //text_RfLv.text = string.Format("Lv{0} / Lv{1}", _user.User_Units[UnitIdx].RefLv, maxRfLv); } else if (rfType == REINFORCE_TYPE.WEAPON) { Dic_infosWpnRfprice = TableDataManager.instance.Infos_WeaponReinforces; itemName = TableDataManager.instance.Infos_weapons[ItemIdx].WpnName; byte maxRfLv = TableDataManager.instance.Get_MaxRefLv(); byte nextRfLv = (byte)(_user.User_Weapons[ItemIdx].RefLv + 1); if (nextRfLv >= maxRfLv) { nextRfLv = maxRfLv; } //ItemPrice[0] = Dic_infosRfprice[nextRfLv].NeedGem; ItemPrice[1] = Dic_infosWpnRfprice[nextRfLv].NeedGold; //rate[0] = string.Format("100%"); //rate[1] = string.Format("{0}%", Dic_infosRfprice[nextRfLv].GoldSucPer); //이름 text_RfItemName.text = string.Format("{0} <color=#ff3e56>Lv.{1}</color>", itemName, _user.User_Weapons[ItemIdx].RefLv); } //스펙표시 Set_SpecInfo(reinforceType); // 가격및 확률표시 Lst_textPrice[(int)(ITEMTYPE.GEM) - 1].text = ItemPrice[0].ToString(); Lst_textPrice[(int)(ITEMTYPE.GOLD) - 1].text = ItemPrice[1].ToString(); Lst_textSuccessRate[(int)(ITEMTYPE.GEM) - 1].text = rate[0]; Lst_textSuccessRate[(int)(ITEMTYPE.GOLD) - 1].text = rate[1]; }
//강화레벨 따른 오브젝트 활성화 설정 void Activate_ReinfObects(REINFORCE_TYPE reinfType, byte nowRflv, byte nextRflv) { if (reinfType == REINFORCE_TYPE.UNIT) { //스펙 element 4개 활성화하기 Activate_SpecElements(3); //스펙4번쨰 하이라이트 오브젝트 활성 HighlightObj.SetActive(true); //lv5 스펙 언락오브젝트 활성 Lst_nextSpecUnlockObj[0].SetActive(nowRflv >= 5); //lv5 스펙 락오브젝트 비활성 Lst_nextSpecLockObj[0].SetActive(!(nowRflv >= 5)); //lv10 스펙 언락오브젝트 활성 Lst_nextSpecUnlockObj[1].SetActive(nowRflv >= 10); //lv10 스펙 락오브젝트 비활성 Lst_nextSpecLockObj[1].SetActive(!(nowRflv >= 10)); //lv15 스펙 언락오브젝트 활성 Lst_nextSpecUnlockObj[2].SetActive(nowRflv >= 15); //lv15 스펙 락오브젝트 비활성 Lst_nextSpecLockObj[2].SetActive(!(nowRflv >= 15)); if (nowRflv >= 5) { } if (nowRflv >= 10) { } if (nowRflv >= 15) { //User_Units userUnit = UserDataManager.instance.user.User_Units[UnitIdx]; //if (userUnit.SubSkill == 0)//서브 스킬 처음 구매이면 //{ // //업글 버튼 활성 // Lst_ButtonObj[0].SetActive(true); // Lst_ButtonObj[1].SetActive(false); //} //else // 서브 스킬 두번쨰 구매이면 //{ // //서브스킬 구매 버튼 활성 // Lst_ButtonObj[0].SetActive(false); // Lst_ButtonObj[1].SetActive(true); //} //Test 15레벨이면 버튼 잠금 Lst_ButtonObj[0].SetActive(false); Lst_ButtonObj[1].SetActive(false); //다음 스펙오브젝트 비활성화 Lst_SpecObj[0].SetActive(true); Lst_SpecObj[1].SetActive(false); } else { //업글 버튼 활성 Lst_ButtonObj[0].SetActive(true); Lst_ButtonObj[1].SetActive(false); //현재,다음 스펙오브젝트 활성화 Lst_SpecObj[0].SetActive(true); Lst_SpecObj[1].SetActive(true); } } else if (reinfType == REINFORCE_TYPE.WEAPON) { //스펙 element 2개 활성화하기 Activate_SpecElements(2); //스펙4번쨰 하이라이트 오브젝트 비활성 HighlightObj.SetActive(false); //모든 언락 오브젝트 활성, 모든 락오브젝트 비활성 int totalcount = Lst_nextSpecUnlockObj.Count; for (int i = 0; i < totalcount; i++) { Lst_nextSpecUnlockObj[i].SetActive(true); Lst_nextSpecLockObj[i].SetActive(false); } //업글 버튼 활성 Lst_ButtonObj[0].SetActive(true); Lst_ButtonObj[1].SetActive(false); } }
//스펙 표시 설정 void Set_SpecInfo(REINFORCE_TYPE rfType) { User _user = UserDataManager.instance.user; if (rfType == REINFORCE_TYPE.UNIT) { Dictionary <uint, infos_unit> _dic_unitinfo = TableDataManager.instance.Infos_units; byte maxRfLv = TableDataManager.instance.Get_MaxRefLv(); byte nowRfLv = (byte)(_user.User_Units[UnitIdx].RefLv); byte nextRfLv = (byte)(_user.User_Units[UnitIdx].RefLv + 1); if (nextRfLv >= maxRfLv) { nextRfLv = maxRfLv; } //레벨 대하여 spec 오브젝트 활성화 Activate_ReinfObects(rfType, nowRfLv, nextRfLv); //능력치이름 Lst_textSpecName[0].text = TextDataManager.Dic_TranslateText[400]; //체력 Lst_textSpecName[1].text = TextDataManager.Dic_TranslateText[401]; //이동속도 Lst_textSpecName[2].text = TextDataManager.Dic_TranslateText[402]; //장전속도 Lst_textSpecName[3].text = TextDataManager.Dic_TranslateText[403]; //서브스킬 //현재능력치 Lst_textNowSpecValue[0].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].Hp, nowRfLv, true).ToString(); //다음능력치 Lst_textNxtSpecValue[0].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].Hp, nextRfLv, true).ToString(); if (nowRfLv >= 4) { //현재능력치 Lst_textNowSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].MvSpeed, nowRfLv, false, 0.05f, 4).ToString(); //다음능력치 Lst_textNxtSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].MvSpeed, nextRfLv, false, 0.05f, 4).ToString(); } else { //현재능력치 Lst_textNowSpecValue[1].text = _dic_unitinfo[UnitIdx].MvSpeed.ToString(); } if (nowRfLv >= 9) { //현재능력치 Lst_textNowSpecValue[2].text = string.Format("+{0}", StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].RldSpeed, nowRfLv, true, 5f, 9)); //다음능력치 Lst_textNxtSpecValue[2].text = string.Format("+{0}", StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].RldSpeed, nextRfLv, true, 5f, 9)); } else { //현재능력치 Lst_textNowSpecValue[2].text = "+" + _dic_unitinfo[UnitIdx].RldSpeed.ToString(); } if (nowRfLv >= 15) { User_Units userUnit = _user.User_Units[UnitIdx]; if (userUnit.SubSkill == 0) { isFirstBuySubskill = true; //처음 서브스킬 구매한다. //현재능력치 Lst_textNowSpecValue[3].text = "----"; } else { //현재능력치 Lst_textNowSpecValue[3].text = TableDataManager.instance.Infos_Skills[userUnit.SubSkill].SkillName; } //다음능력치 Lst_textNxtSpecValue[3].text = "?"; } } else if (rfType == REINFORCE_TYPE.WEAPON) { Dictionary <uint, Infos_Weapon> _dic_weaponinfo = TableDataManager.instance.Infos_weapons; byte nowRfLv = (byte)(_user.User_Weapons[ItemIdx].RefLv); byte nextRfLv = (byte)(_user.User_Weapons[ItemIdx].RefLv + 1); //spec 오브젝트 활성화 Activate_ReinfObects(rfType, nowRfLv, nextRfLv); Lst_textSpecName[0].text = TextDataManager.Dic_TranslateText[405]; //위력 Lst_textSpecName[1].text = TextDataManager.Dic_TranslateText[406]; // 크리티컬 //현재능력치 float nowAtkMin = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMin, nowRfLv, true); float nowAtkMax = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMax, nowRfLv, true); Lst_textNowSpecValue[0].text = string.Format("{0}~{1}", nowAtkMin, nowAtkMax); Lst_textNowSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].Critical, nowRfLv, false).ToString(); //다음능력치 float nextAtkMin = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMin, nextRfLv, true); float nextAtkMax = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMax, nextRfLv, true); Lst_textNxtSpecValue[0].text = string.Format("{0}~{1}", nextAtkMin, nextAtkMax); Lst_textNxtSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].Critical, nextRfLv, false).ToString(); } }
// 강화아이템 정보 설정 void Set_RfInfo(REINFORCE_TYPE RfType) { User _user = UserDataManager.instance.user; uint _unitIdx = UnitIdx; if (RfType == REINFORCE_TYPE.UNIT) { Dictionary <uint, infos_unit> _dic_unitinfo = TableDataManager.instance.Infos_units; byte maxRfLv = TableDataManager.instance.Get_MaxRefLv(); byte nowRfLv = (byte)(_user.User_Units[UnitIdx].RefLv - 1); byte nextRfLv = (byte)(_user.User_Units[UnitIdx].RefLv); if (nextRfLv >= maxRfLv) { nowRfLv = maxRfLv; nextRfLv = maxRfLv; } //레벨 대하여 spec 오브젝트 활성화 Activate_ReinfObects(RfType, nextRfLv); //강화 이름 text_RfItemName.text = string.Format("{0} <color=#ff3e56>Lv.{1}</color>", _dic_unitinfo[UnitIdx].UnitName, nextRfLv); //능력치이름 Lst_textSpecName[0].text = TextDataManager.Dic_TranslateText[400]; //체력 Lst_textSpecName[1].text = TextDataManager.Dic_TranslateText[401]; //이동속도 Lst_textSpecName[2].text = TextDataManager.Dic_TranslateText[402]; //장전속도 Lst_textSpecName[3].text = TextDataManager.Dic_TranslateText[403]; //서브스킬 //현재능력치 Lst_textNowSpecValue[0].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].Hp, nowRfLv, true).ToString(); //다음능력치 Lst_textNxtSpecValue[0].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].Hp, nextRfLv, true).ToString(); if (nextRfLv >= 5) { //현재능력치 Lst_textNowSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].MvSpeed, nowRfLv, false, 0.05f, 4).ToString(); //다음능력치 Lst_textNxtSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].MvSpeed, nextRfLv, false, 0.05f, 4).ToString(); } else { //현재능력치 Lst_textNowSpecValue[1].text = _dic_unitinfo[UnitIdx].MvSpeed.ToString(); } if (nextRfLv >= 10) { //현재능력치 Lst_textNowSpecValue[2].text = string.Format("+{0}", StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].RldSpeed, nowRfLv, true, 5f, 9)); //다음능력치 Lst_textNxtSpecValue[2].text = string.Format("+{0}", StaticMethod.Get_nextSpec(_dic_unitinfo[UnitIdx].RldSpeed, nextRfLv, true, 5f, 9)); } else { //현재능력치 Lst_textNowSpecValue[2].text = "+" + _dic_unitinfo[UnitIdx].RldSpeed.ToString(); } if (nextRfLv >= 15) { User_Units userUnit = _user.User_Units[UnitIdx]; if (userUnit.SubSkill == 0) { //현재능력치 Lst_textNowSpecValue[3].text = "----"; } else { //현재능력치 Lst_textNowSpecValue[3].text = /*Get_BfSubSkillName()*/ TableDataManager.instance.Infos_Skills[userUnit.SubSkill].SkillName; } if (_user.User_DrawSkills[UnitIdx].SubSkill != 0) { //다음능력치 Lst_textNxtSpecValue[3].text = TableDataManager.instance.Infos_Skills[_user.User_DrawSkills[UnitIdx].SubSkill].SkillName; //현재 가진 서브스킬있으므로 서브스킬바꿀껀지 로직들어감 IsAskChangeSubSkill = true; } else { //현재 가진 서브스킬없으므로 서브스킬바꿀껀지 로직안들어가도됨 IsAskChangeSubSkill = false; } } } else if (RfType == REINFORCE_TYPE.WEAPON) { //스펙============= Dictionary <uint, Infos_Weapon> _dic_weaponinfo = TableDataManager.instance.Infos_weapons; byte nowRfLv = (byte)(_user.User_Weapons[ItemIdx].RefLv - 1); byte nextRfLv = (byte)(_user.User_Weapons[ItemIdx].RefLv); //강화 아이템 이름 text_RfItemName.text = string.Format("{0} <color=#ff3e56>Lv.{1}</color>", TableDataManager.instance.Infos_weapons[ItemIdx].WpnName, nextRfLv); //레벨 대하여 spec 오브젝트 활성화 Activate_ReinfObects(RfType, nextRfLv); Lst_textSpecName[0].text = TextDataManager.Dic_TranslateText[405]; //위력 Lst_textSpecName[1].text = TextDataManager.Dic_TranslateText[406]; // 크리티컬 //현재능력치 float nowAtkMin = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMin, nowRfLv, true); float nowAtkMax = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMax, nowRfLv, true); Lst_textNowSpecValue[0].text = string.Format("{0}~{1}", nowAtkMin, nowAtkMax); Lst_textNowSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].Critical, nowRfLv, false).ToString(); //다음능력치 float nextAtkMin = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMin, nextRfLv, true); float nextAtkMax = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].AtkMax, nextRfLv, true); Lst_textNxtSpecValue[0].text = string.Format("{0}~{1}", nextAtkMin, nextAtkMax); Lst_textNxtSpecValue[1].text = StaticMethod.Get_nextSpec(_dic_weaponinfo[ItemIdx].Critical, nextRfLv, false).ToString(); } }
//강화레벨 따른 오브젝트 활성화 설정 void Activate_ReinfObects(REINFORCE_TYPE reinfType, byte nowRflv) { if (reinfType == REINFORCE_TYPE.UNIT) { //스펙 element 4개만큼 활성화하기 Activate_SpecElements(3); //스펙4번쨰 하이라이트 오브젝트 활성 HighlightObj.SetActive(false); //test //moveSpeed스펙 언락오브젝트 활성 Lst_nextSpecUnlockObj[0].SetActive(nowRflv >= 5); //moveSpeed스펙 락오브젝트 비활성 Lst_nextSpecLockObj[0].SetActive(!(nowRflv >= 5)); //reloadSpeed스펙 언락오브젝트 활성 Lst_nextSpecUnlockObj[1].SetActive(nowRflv >= 10); //reloadSpeed스펙 락오브젝트 비활성 Lst_nextSpecLockObj[1].SetActive(!(nowRflv >= 10)); //subSkill스펙 언락오브젝트 활성 Lst_nextSpecUnlockObj[2].SetActive(nowRflv >= 15); //subSkill스펙 락오브젝트 비활성 Lst_nextSpecLockObj[2].SetActive(!(nowRflv >= 15)); //if (nowRflv >= 5) //{ //} //else //{ // //moveSpeed스펙 언락오브젝트 비활성 // Lst_nextSpecUnlockObj[0].SetActive(!(nowRflv >= 5)); // //moveSpeed스펙 락오브젝트 활성 // Lst_nextSpecLockObj[0].SetActive(nowRflv >= 5); //} //if (nowRflv >= 10) //{ //} //else //{ // //moveSpeed스펙 언락오브젝트 비활성 // Lst_nextSpecUnlockObj[1].SetActive(!(nowRflv >= 5)); // //moveSpeed스펙 락오브젝트 활성 // Lst_nextSpecLockObj[1].SetActive(nowRflv >= 5); //} //if (nowRflv >= 15) //{ //} //else //{ // //moveSpeed스펙 언락오브젝트 비활성 // Lst_nextSpecUnlockObj[2].SetActive(!(nowRflv >= 15)); // //moveSpeed스펙 락오브젝트 활성 // Lst_nextSpecLockObj[2].SetActive(nowRflv >= 15); //} } else if (reinfType == REINFORCE_TYPE.WEAPON) { //스펙 element 2개만큼 활성화하기 Activate_SpecElements(2); //스펙4번쨰 하이라이트 오브젝트 활성 HighlightObj.SetActive(false); //모든 언락 오브젝트 활성, 모든 락오브젝트 비활성 int totalcount = Lst_nextSpecUnlockObj.Count; for (int i = 0; i < totalcount; i++) { Lst_nextSpecUnlockObj[i].SetActive(true); Lst_nextSpecLockObj[i].SetActive(false); } } }