void OnClickMainBtn() { if (CurItemData == null) { return; } if (CurItemData.IsEquipItem() && BasePanel is EquipmentPanel) { if (CurItemData._enchant < CurItemData.GetEquipLowData().MaxEnchant) { GetPanel <EquipmentPanel>().OnChangeTabUpgrade(true, CurItemData); Hide(); } else if (0 < CurItemData.GetEquipLowData().NextPartsId) { GetPanel <EquipmentPanel>().OnChangeTabUpgrade(false, CurItemData); Hide(); } else { GetPanel <EquipmentPanel>().OnChangeTabUpgrade(true, CurItemData); Hide(); //SceneManager.instance.SetNoticePanel(NoticeType.Message, 1182); } } else { Hide(); } }
/// <summary> 사용 아이템의 설명문 Equip아이템은 아님. 마지막 셋팅 함수임. Position은 주지 않는다 </summary> void SetDesc(NetData._ItemData itemData, ref byte optionCount) { uint descId = 0; if (itemData.IsEquipItem()) { Item.EquipmentInfo equipLowData = itemData.GetEquipLowData(); descId = equipLowData.DescriptionId; } else { Item.ItemInfo useLowData = itemData.GetUseLowData(); descId = useLowData == null ? 0 : useLowData.DescriptionId; } if (descId <= 0) { Desc.gameObject.SetActive(false); return; } ++optionCount; Desc.gameObject.SetActive(true); Desc.text = _LowDataMgr.instance.GetStringItem(descId); }
/// <summary> 장착중인 아이템 슬롯 셋팅 </summary> public void SetMountItemSlot(NetData._ItemData itemData, Action <ulong> callBack, uint key) { EnchantLv.gameObject.SetActive(itemData.IsEquipItem()); if (itemData == null)//장착중인 아이템이 없다 다 꺼놓는다. { EmptySlot(); } else//장착중인 아이템이 있다 아이템 셋팅한다 { SetEquipItem(itemData.GetEquipLowData(), 0); EnchantLv.text = string.Format("+{0}", itemData._enchant); Key = key; CallBack = callBack; } }
/// <summary> 인벤토리의 아이템 정의 </summary> /// <param name="itemData">셋팅하고자 하는 아이템데이터</param> /// <param name="startDepth">시작 뎁스 값</param> public void SetInvenItemSlot(NetData._ItemData itemData, Action <ulong, byte> callBack, int startDepth = 8) { EnchantLv.gameObject.SetActive(itemData.IsEquipItem()); if (itemData.IsEquipItem()) { SetEquipItem(itemData.GetEquipLowData(), itemData.Count); EnchantLv.text = itemData._enchant <= 0 ? "" : string.Format("+{0}", itemData._enchant); } else { SetUseItem(itemData.GetUseLowData(), itemData.Count); } Key = itemData._itemIndex; Key2 = itemData._itemType; CallBackTwo = callBack; SetDepth(startDepth); }
void ShowItem(NetData._ItemData recomend) { Name.text = recomend.GetLocName(); Item.EquipmentInfo equipLowData = recomend.GetEquipLowData(); Img.spriteName = _LowDataMgr.instance.GetLowDataIcon(equipLowData.Icon); Bg.spriteName = string.Format("Icon_bg_0{0}", equipLowData.Grade); Grade.spriteName = string.Format("Icon_0{0}", equipLowData.Grade); Attack.text = string.Format("{0} : {1}", _LowDataMgr.instance.GetStringCommon(47), recomend._Attack.ToString()); //UIEventTrigger etri = transform.FindChild("Bg").GetComponent<UIEventTrigger>(); //EventDelegate.Set(etri.onClick, delegate () { OnclicItemPopup(Img.transform, recomend._equipitemDataIndex); }); if (SceneManager.instance.testData.bSingleSceneTestStart || SceneManager.instance.testData.bQuestTestStart) { TempCoroutine.instance.FrameDelay(0.5f, () => { OnClickChanged(); }); } }
public void UserCharInfo(uint charIdx, uint skillSetId, NetData._ItemData[] equipList, NetData._CostumeData costume, bool hideCostume) { CurCostumStatus.text = costume.GetLocName(); string lvAndName = string.Format(_LowDataMgr.instance.GetStringCommon(453), UserLv); UserNameLbl.text = string.Format("{0} {1}", lvAndName, UserName); uint helmet = 0, cloth = 0, weapon = 0; for (int i = 0; i < EquipPartsTf.childCount; i++) { Transform tf = EquipPartsTf.GetChild(i); if (tf == null) { continue; } UIEventTrigger uiTri = tf.GetComponent <UIEventTrigger>(); UISprite bg = tf.GetComponent <UISprite>(); UISprite grade = tf.FindChild("grade").GetComponent <UISprite>(); UISprite icon = tf.FindChild("icon").GetComponent <UISprite>(); UILabel enchantLv = tf.FindChild("Num").GetComponent <UILabel>(); if (equipList[i] == null) { icon.enabled = false; grade.enabled = false; bg.spriteName = UIHelper.GetDefaultEquipIcon((ePartType)i + 1); enchantLv.gameObject.SetActive(false); continue; } NetData._ItemData equipData = equipList[i]; if (equipData.EquipPartType == ePartType.HELMET) { helmet = equipData._equipitemDataIndex; } else if (equipData.EquipPartType == ePartType.WEAPON) { weapon = equipData._equipitemDataIndex; } else if (equipData.EquipPartType == ePartType.CLOTH) { cloth = equipData._equipitemDataIndex; } icon.enabled = true; grade.enabled = true; UIAtlas atlas = null; atlas = AtlasMgr.instance.GetEquipAtlasForClassId(equipData.GetEquipLowData().Class); icon.atlas = atlas; icon.spriteName = _LowDataMgr.instance.GetLowDataIcon(equipData.GetEquipLowData().Icon); grade.spriteName = string.Format("Icon_0{0}", equipData.GetEquipLowData().Grade); bg.spriteName = string.Format("Icon_bg_0{0}", equipData.GetEquipLowData().Grade); enchantLv.text = equipData._enchant <= 0 ? "" : string.Format("+{0}", equipData._enchant); enchantLv.gameObject.SetActive(true); EventDelegate.Set(uiTri.onClick, delegate() { if (equipData == null) { return; } UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPopup/ChatPopup"); if (basePanel == null) { return; } UIMgr.OpenDetailPopup(this, equipData, GetComponent <UIPanel>().depth + 3); }); } //코스튬 화면 UIHelper.CreatePcUIModel("CharacterPanel", RotationTargetList[0].transform, charIdx, helmet, costume._costmeDataIndex , cloth, weapon, skillSetId, 3, hideCostume, false); CharInfoGo.SetActive(true); InfoGo.SetActive(false); }
/// <summary> 아이템 디테일 팝업 실행 함수. </summary> void SetDetailPopup(NetData._ItemData itemData) { CurItemData = itemData; Debug.Log(string.Format("Click Item UseId={0}, equipId={1}", itemData._useitemDataIndex, itemData._equipitemDataIndex)); bool isDifferentClass = false; NetData._UserInfo charInven = NetData.instance.GetUserInfo(); if (CurItemData.IsEquipItem()) { LinkPopup[0].SetActive(false); LinkPopup[1].SetActive(false); int limitLv = CurItemData.GetEquipLowData().LimitLevel; //EquipLv.text = string.Format(_LowDataMgr.instance.GetStringCommon(952), limitLv); if (limitLv <= charInven._Level && !isDifferentClass)//내 직업이고 레벨이 높다면 { EquipState[0].SetActive(true); EquipState[1].SetActive(false); } else { EquipState[0].SetActive(false); EquipState[1].SetActive(true); } uint strKey = 0; if (BasePanel is EquipmentPanel) { Item.EquipmentInfo equipLow = CurItemData.GetEquipLowData(); if (CurItemData._enchant < equipLow.MaxEnchant) { strKey = 31; } else if (0 < equipLow.NextPartsId) { strKey = 32; } else//최대 { strKey = 1182; } } else { strKey = 106;//닫기 } if (0 < strKey) { SetOnOff(MainBtn.transform, true, _LowDataMgr.instance.GetStringCommon(strKey)); } //텍스트 셋팅 int grade = itemData.GetEquipLowData().Grade; string color = UIHelper.GetItemGradeColor(grade); ItemName.text = string.Format("{0}{1}[-] [FFE400]+{2}[-]", color, itemData.GetLocName(), itemData._enchant); } else { //EquipLv.text = ""; EquipState[0].SetActive(false); EquipState[1].SetActive(false); LinkPopup[0].SetActive(true); LinkPopup[1].SetActive(false); SetOnOff(MainBtn.transform, true, _LowDataMgr.instance.GetStringCommon(106)); int count = charInven.GetItemCountForItemId(CurItemData._useitemDataIndex, (byte)eItemType.USE); LinkItemSlot[0].SetLowDataItemSlot(CurItemData._useitemDataIndex, (uint)count); LinkItemSlot[0].transform.parent.FindChild("Lock").gameObject.SetActive(count <= 0); Transform gridTf = LinkScroll.transform.FindChild("Grid"); List <Item.ContentsListInfo> conList = _LowDataMgr.instance.GetLowDataContentsItemList(CurItemData._useitemDataIndex); for (int i = 0; i < conList.Count; i++) { Item.ContentsListInfo info = conList[i]; string contentsName = _LowDataMgr.instance.GetStringCommon(info.ContentsName); if (info.ContentsParam != null && 0 < info.ContentsParam.Count) { if (contentsName.Contains("{0}") && contentsName.Contains("{1}")) { contentsName = string.Format(contentsName, info.ContentsParam[0], info.ContentsParam[1]); } else if (contentsName.Contains("{0}")) { contentsName = string.Format(contentsName, info.ContentsParam[0]); } } Transform tf = null; if (i < gridTf.childCount) { tf = gridTf.GetChild(i); } else { tf = Instantiate(gridTf.GetChild(0)) as Transform; tf.parent = gridTf; tf.localScale = Vector3.one; } tf.gameObject.SetActive(true); tf.FindChild("txt").GetComponent <UILabel>().text = contentsName; bool isEnter = true; if (CheckContentsLink(info, false))//조건 만족 { tf.FindChild("error_txt").GetComponent <UILabel>().text = ""; } else { isEnter = false; string contentsError = _LowDataMgr.instance.GetStringCommon(info.ConditionName); if (info.ConditionParam != null && 0 < info.ConditionParam.Count) { if (contentsError.Contains("{0}") && contentsError.Contains("{1}")) { contentsError = string.Format(contentsError, info.ConditionParam[0], info.ConditionParam[1]); } else if (contentsError.Contains("{0}")) { contentsError = string.Format(contentsError, info.ConditionParam[0]); } } tf.FindChild("error_txt").GetComponent <UILabel>().text = contentsError; } EventDelegate.Set(tf.FindChild("Btn").GetComponent <UIEventTrigger>().onClick, () => { OnClickContentsLink(info); }); if (info.ContentsLinkType == 1)//재료조합 { tf.FindChild("Btn/On/label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(39); tf.FindChild("Btn/Off/label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(39); } else if (info.ContentsLinkType == 2)//바로가기(던전) { tf.FindChild("Btn/On/label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(249); tf.FindChild("Btn/Off/label").GetComponent <UILabel>().text = _LowDataMgr.instance.GetStringCommon(249); } tf.FindChild("Btn/On").gameObject.SetActive(isEnter); tf.FindChild("Btn/Off").gameObject.SetActive(!isEnter); } gridTf.GetComponent <UIGrid>().repositionNow = true; for (int j = conList.Count; j < gridTf.childCount; j++) { gridTf.GetChild(j).gameObject.SetActive(false); } if (conList.Count < 4) { LinkScroll.enabled = false; } else { LinkScroll.enabled = true; } Item.ItemInfo data = itemData.GetUseLowData(); string color = UIHelper.GetItemGradeColor(data == null ? 0 : (int)data.Grade); ItemName.text = string.Format("{0}{1}[-] [FFE400][-]", color, itemData.GetLocName()); } //아이템 셋팅 ItemSlot.SetInvenItemSlot(itemData, null, 0); //아이템의 옵션들 셋팅 byte optionCount = 0; Desc.transform.localPosition = SetAbility(itemData, ref optionCount); //어빌리티 SetDesc(itemData, ref optionCount); //아이템 설명 표현 OptionScrollView.ResetPosition(); if (optionCount <= 1)//스크롤 되면 안됨. { AbilityTf.parent.collider.enabled = false; } else { AbilityTf.parent.collider.enabled = true; } }
/// <summary> 아이템의 옵션정보 표기 </summary> Vector3 SetAbility(NetData._ItemData itemData, ref byte optionCount) { for (int i = 0; i < Abilitys.Length; i++) { Abilitys[i].gameObject.SetActive(false); } int abilityCount = 0; GameObject line = AbilityTf.FindChild("line_d0").gameObject; if (itemData.IsEquipItem())//장비 아이템 { NetData._ItemData mountItemData = NetData.instance.GetUserInfo().GetEquipParts(itemData.EquipPartType); bool isCompare = false; if (mountItemData != null) //같은 파츠이면서 착용한 아이템과 다르다면 비교한다. { if (mountItemData.GetEquipLowData().Class == itemData.GetEquipLowData().Class) //같은 직업군인지 { isCompare = mountItemData._itemIndex != itemData._itemIndex; } } List <NetData.ItemAbilityData> statList = itemData.StatList; abilityCount = statList.Count; for (int i = 0; i < abilityCount; i++) { //float value = (statList[i].Value * 0.1f) + (itemData._enchant + ((itemData._Grade * 10) + itemData._MinorGrade)); int value = _LowDataMgr.instance.GetItemAbilityValueToInt(statList[i].Value, itemData._enchant); Abilitys[i].text = string.Format("{0} {1}", uiMgr.GetAbilityLocName(statList[i].Ability), value); Abilitys[i].gameObject.SetActive(true); } } else//사용 아이템 { abilityCount = itemData.StatList.Count; for (int i = 0; i < abilityCount; i++) { NetData.ItemAbilityData data = itemData.StatList[i]; Abilitys[i].text = string.Format("{0} {1}", uiMgr.GetAbilityLocName(data.Ability) , uiMgr.GetAbilityStrValue(data.Ability, data.Value * 0.1f)); Abilitys[i].gameObject.SetActive(true); } } if (abilityCount == 0)//Option이 없다. 꺼놓고 자신의 좌표를 준다. { AbilityTf.gameObject.SetActive(false); return(AbilityTf.localPosition); } ++optionCount; ++abilityCount; AbilityTf.gameObject.SetActive(true); ///Line 그리기 Transform lineTf = AbilityTf.FindChild("line_d0"); Vector3 linePos = lineTf.localPosition; linePos.y = -(abilityCount * 27); lineTf.localPosition = linePos; ///다음에 올 객체에 관한 포지션 값 Vector3 pos = AbilityTf.localPosition; pos.y += (linePos.y - 27); return(pos); }