UIItem_EquipItem Get_EquipWeaponItem() { User _user = UserDataManager.instance.user; uint userItemIdx = 0; userItemIdx = _user.User_Units[nowSelectUnitIdx].MainWpnIdx; if (userItemIdx == 0) { userItemIdx = 20100; } UIItem_EquipItem equipWpn = null; for (int i = 0; i < Lst_mainWeaponItems.Count; i++) { if (userItemIdx == Lst_mainWeaponItems[i].ItemIdx) { equipWpn = Lst_mainWeaponItems[i]; break; } } return(equipWpn); }
//아이템 상태 설정하기 (소유중,착용중,선택함 등등) void Set_WeaponItemState(UIItem_EquipItem targetSelectItem) { for (int i = 0; i < Lst_mainWeaponItems.Count; i++) { //아이템 백이미지 처리 if (Lst_mainWeaponItems[i].ItemIdx != targetSelectItem.ItemIdx) { Lst_mainWeaponItems[i].ButtonState = ButtonState_Type.Normal; } else { Lst_mainWeaponItems[i].ButtonState = ButtonState_Type.Selected; } //소유햇는지 체크 if (user.User_Weapons.ContainsKey(Lst_mainWeaponItems[i].ItemIdx)) { Lst_mainWeaponItems[i].IsHave = true; } else { Lst_mainWeaponItems[i].IsHave = false; } if (user.User_Units.ContainsKey(nowSelectUnitIdx)) { //장착해는지 체크 if (user.User_Units[nowSelectUnitIdx].MainWpnIdx == Lst_mainWeaponItems[i].ItemIdx) { Lst_mainWeaponItems[i].IsEquip = true; } else { Lst_mainWeaponItems[i].IsEquip = false; } } //소유중인 유닛이 무기 장착 체크 (AK 기본무기는 항상 false) if (user.GetEquipMainWpnIdxsOfHaveUnits(nowSelectUnitIdx).Contains(Lst_mainWeaponItems[i].ItemIdx)) { Lst_mainWeaponItems[i].IsEquipedOtherUnit = true; if (Lst_mainWeaponItems[i].ItemIdx == 20100) { Lst_mainWeaponItems[i].IsEquipedOtherUnit = false; } } else { Lst_mainWeaponItems[i].IsEquipedOtherUnit = false; } } }
//아아템생성 IEnumerator Creat_WeaponEquipItem() { Loadmanager.instance.LoadingUI(true); yield return(StartCoroutine(routine_CreatItem())); //현재 착용한 무기 Selected_Item = Get_EquipWeaponItem(); Process_EquipItemInfo(Selected_Item); Loadmanager.instance.LoadingUI(false); }
void Sign_CreateItem(uint Itemidx, int partIdx, int sortIdx) { //생성 UIItem_EquipItem item = UI_Manager.Getsingleton.CreatUI( UIITEM.ITEM_EQUIPITEM, weaponLstTr) as UIItem_EquipItem; item.Set_ItemInfo(Itemidx, partIdx, sortIdx); //리스트할당 Lst_mainWeaponItems.Add(item); }
void Process_EquipItemInfo(UIItem_EquipItem targetSelectItem) { //무기아이템 생성및 삭제 관련 체크 Chk_WeaponItem_Created(); //아이템 상태 설정하기 Set_WeaponItemState(targetSelectItem); //무기 정보 설정 Set_WeaponInfomation(targetSelectItem); }
//무기 정보 관련 void Set_TapWeaponInfomation() { if (Lst_mainWeaponItems != null) { if (Lst_mainWeaponItems.Count <= 0) { StartCoroutine(Creat_WeaponEquipItem()); } else { //현재 착용한 무기 Selected_Item = Get_EquipWeaponItem(); Process_EquipItemInfo(Selected_Item); } } }
//선택한 아이템 처리 public void Doprocess_SelectedEquipItem(UIItem_EquipItem nowSelectItem) { Selected_Item = nowSelectItem; //아이템 상태 설정하기 (소유중,착용중,선택함 등등) Process_EquipItemInfo(nowSelectItem); //장비 착용 적용하기 Apply_EquipItem(); //더블클릭 해서 장착하기 => 더블클릭 && 소유중 && 비장착중이면 if (Selected_Item.isDoubleClick && !Selected_Item.IsEquip && Selected_Item.IsHave) { ResponseButton_Equip(0); } //더블클릭 && 장착해제버튼이라면 장착해제 if (Selected_Item.isUnEquipBtn && Selected_Item.isDoubleClick) { ResponseButton_Equip(1); } }
//해당 무기 정보 설정 void Set_WeaponInfomation(UIItem_EquipItem targetSelectItem) { if (targetSelectItem != null) { //아이템 이름 Text_WeaponName.text = Dic_weaponInfos[targetSelectItem.ItemIdx].WpnName; //무기 타입이미지 Image_WpnType.sprite = ImageManager.instance.Get_Sprite(string.Format("{0}{1}", DefineKey.WpnType, (int)Dic_weaponInfos[Selected_Item.ItemIdx].WpnType)); //최대치 float AttValueMax = 100f; float CriticalValueMax = 20f; float AccuracyValueMax = 300f; float RecoilValueMax = 100f; float RateofFireValueMax = 600f; float ReloadSpeedValueMax = 10f; float MagazineValueMax = 100f; float ZoomValueMax = 10f; float initAttMin = (float)Dic_weaponInfos[targetSelectItem.ItemIdx].AtkMin; float initAttMax = (float)Dic_weaponInfos[targetSelectItem.ItemIdx].AtkMax; float initCri = Dic_weaponInfos[targetSelectItem.ItemIdx].Critical; int acurracy = Dic_weaponInfos[targetSelectItem.ItemIdx].AimInit; int recoil = Dic_weaponInfos[targetSelectItem.ItemIdx].AimCtrl; int rateOfFire = Dic_weaponInfos[targetSelectItem.ItemIdx].AtkSpeed; int reloadSpeed = Dic_weaponInfos[targetSelectItem.ItemIdx].GunReload; if (targetSelectItem.IsHave) { int reflv = user.User_Weapons[targetSelectItem.ItemIdx].RefLv; //공격력 float att = StaticMethod.Get_nextSpec(initAttMax, reflv, true); Text_Power.text = att.ToString(); Lst_graphPower[(int)RefFillImageType.Init].fillAmount = initAttMax / AttValueMax; Lst_graphPower[(int)RefFillImageType.Upgraded].fillAmount = att / AttValueMax; //크리 float cri = StaticMethod.Get_nextSpec(initCri, reflv, false); Text_Cri.text = cri.ToString(); Lst_graphPower[(int)RefFillImageType.Init].fillAmount = initCri / CriticalValueMax; Lst_graphPower[(int)RefFillImageType.Upgraded].fillAmount = cri / CriticalValueMax; //lv if (user.User_Weapons.ContainsKey(targetSelectItem.ItemIdx)) { int lv = user.User_Weapons[targetSelectItem.ItemIdx].RefLv; Text_WpnRefLv.text = string.Format("Lv.{0}", lv); if (lv >= 15) { Text_WpnUpgrade.text = TextDataManager.Dic_TranslateText[410]; //MAX } else { Text_WpnUpgrade.text = TextDataManager.Dic_TranslateText[413]; // 강화 } } } else { //공격력 float att = initAttMax; Text_Power.text = att.ToString(); Lst_graphPower[(int)RefFillImageType.Init].fillAmount = initAttMax / AttValueMax; Lst_graphPower[(int)RefFillImageType.Upgraded].fillAmount = 0 / AttValueMax; //크리 float cri = initCri; Text_Cri.text = cri.ToString(); Lst_graphPower[(int)RefFillImageType.Init].fillAmount = initCri / CriticalValueMax; Lst_graphPower[(int)RefFillImageType.Upgraded].fillAmount = 0 / CriticalValueMax; //lv Text_WpnRefLv.text = string.Format("Lv.{0}", 1); //가격 string price = Dic_weaponInfos[targetSelectItem.ItemIdx].SellItNum.ToString(); //제화타입 string buyItemType = string.Empty; if (Dic_weaponInfos[targetSelectItem.ItemIdx].SellItTp == ITEMTYPE.GEM) { buyItemType = DefineKey.Gem; } else if (Dic_weaponInfos[targetSelectItem.ItemIdx].SellItTp == ITEMTYPE.GOLD) { buyItemType = DefineKey.Gold; } Text_WpnBuyPrice.text = price; Image_WpnBuyType.sprite = ImageManager.instance.Get_Sprite(buyItemType); } //정확도 Text_Accuracy.text = acurracy.ToString(); Image_graphAccuracy.fillAmount = (float)acurracy / AccuracyValueMax; //반동제어 Text_Recoil.text = recoil.ToString(); Image_graphRecoil.fillAmount = (float)recoil / RecoilValueMax; //발사속도 Text_RateofFire.text = rateOfFire.ToString(); Image_graphRateOfFire.fillAmount = (float)rateOfFire / RateofFireValueMax; //장전속도 Text_ReloadSpeeding.text = ((600f / (float)reloadSpeed)).ToString("N1"); Image_graphReloadSpeed.fillAmount = (600f / (float)reloadSpeed) / ReloadSpeedValueMax; //탄창수 Text_Magazine.text = Dic_weaponInfos[targetSelectItem.ItemIdx].Magazine.ToString(); Image_graphMagazine.fillAmount = (float)Dic_weaponInfos[targetSelectItem.ItemIdx].Magazine / MagazineValueMax; //줌스케일 Text_Zoom.text = string.Format("x{0}", Dic_weaponInfos[Selected_Item.ItemIdx].ZoomScale); Image_graphZoom.fillAmount = (float)Dic_weaponInfos[targetSelectItem.ItemIdx].ZoomScale / ZoomValueMax; //버튼들 처리 bool upgradeBtnActive = Selected_Item.ItemIdx == 20100 ? false : targetSelectItem.IsHave; UpgradeBtnObj.SetActive(upgradeBtnActive); bool buyBtnActive = Selected_Item.ItemIdx == 20100 ? false : !targetSelectItem.IsHave; BuyWeapnBtnObj.SetActive(buyBtnActive); EquipBtnObj.SetActive(targetSelectItem.IsHave); DisableEquipObj.SetActive(targetSelectItem.IsHave && targetSelectItem.IsEquip); } }