public void getItem(Item.ItemInfo _item, int _amount) { bool haveIt = false; for (int i = 0; i < itemSlotInfos.Count; i++) { if (itemSlotInfos[i].GetItem().ID == _item.ID) { itemSlotInfos[i].get(_amount); haveIt = true; break; } } if (!haveIt) { ItemSlotInfo tmp = new ItemSlotInfo(); tmp.SetItem(_item); tmp.SetNum(_amount); itemSlotInfos.Add(tmp); SortItemList(); } removeSlots(); setSlots(); }
public void setSlot(Item.ItemInfo _item, int _num) { this.item = _item; this.name = "vegi" + string.Format("{0:D3}", item.ID); IMG.sprite = Resources.Load <Sprite>("Icon/vegi" + string.Format("{0:D3}", item.ID)); text.text = _num.ToString(); }
/// <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); }
public void Init(int _id) { item = ReadVegiInfo(_id); Assign(); SetDisplay(); }
/// <summary> 서버에서 보석박는거 응답 </summary> public void OnReceiveJewel(NetData._CostumeData costumeData) { //DetailPopup.OnClose(); //DetailPopup.Hide(); //코스튬에 보석 셋팅 string itemName = null; string itemAbility = null; string itemDesc = null; uint jewelLowDataId = costumeData._EquipJewelLowId[SelectJewelArr]; if (0 < jewelLowDataId) { Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(jewelLowDataId); itemDesc = _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId); JewelInvenSlots[SelectJewelArr].SetLowDataItemSlot(jewelLowDataId, 0, null); itemName = _LowDataMgr.instance.GetStringItem(useLowData.NameId); itemAbility = string.Format("{0} {1}", UIMgr.instance.GetAbilityLocName((AbilityType)useLowData.OptionType), UIMgr.instance.GetAbilityStrValue((AbilityType)useLowData.OptionType, useLowData.value * 0.1f)); } else//그런거 없음 빈 슬롯. 뭔가 문제가 있는 것임. { Debug.LogError(string.Format("not found insert jewel item error {0} ", SelectJewelArr)); JewelInvenSlots[SelectJewelArr].EmptySlot(); } UILabel nameLbl = SocketRootTfs[SelectJewelArr].FindChild("item_name").GetComponent <UILabel>(); UILabel abilityLbl = SocketRootTfs[SelectJewelArr].FindChild("ability").GetComponent <UILabel>(); UILabel descLbl = SocketRootTfs[SelectJewelArr].FindChild("desc").GetComponent <UILabel>(); nameLbl.text = itemName; abilityLbl.text = itemAbility; descLbl.text = itemDesc; //아이템 재셋팅 Transform slotParent = JewelGrid.transform; List <NetData._ItemData> jewelList = UserInfo.GetTypeItemList(eItemType.USE, AssetType.Jewel); jewelList.Sort(SortJewel); int childCount = slotParent.childCount; for (int i = 0; i < childCount; i++) { InvenItemSlotObject invenSlot = slotParent.GetChild(i).GetComponent <InvenItemSlotObject>(); if (i < jewelList.Count) { invenSlot.SetInvenItemSlot(jewelList[i], OnClickInvenItemSlot); } else { invenSlot.EmptySlot(); } } SoundManager.instance.PlaySfxSound(eUISfx.UI_jewel_equip, false); }
public void startGrow(Item.ItemInfo _item) { if (this.isPlanted) { return; } this.item = _item; timer = this.item.GrowTime; // PlayerInfo에서, 해당 아이템 찾아서 개수 줄어들게 하기. if (!playerInfo.useItem(_item.ID)) // 개수 줄어들 수 있으면, 줄어들고 return True. 아니면 그냥 return False { return; } isPlanted = true; overHalfSwitch = false; // Harvest 없이 Obj 사라지는, 추가적인 이벤트 감안. isAllGrown = false; // 작물 GO 활성화 CropIMG.gameObject.SetActive(true); // CropIMG 설정 string imgName = "stgr_root"; switch (this.item.ID) { case 1: case 2: imgName = "stgr_root"; break; case 3: case 4: case 5: case 6: case 7: case 8: imgName = "stgr_plant"; break; case 9: case 10: case 11: case 12: imgName = "stgr_tree"; break; } CropIMG.sprite = Resources.Load <Sprite>("GrIcon/" + imgName); // 시간 text(미완), 게이지 설정(완) timeSlider.maxValue = this.item.GrowTime; timeSlider.enabled = true; }
public void updateItemInfo(Item.ItemInfo _newitemInfo) { for (int i = 0; i < itemSlotInfos.Count; i++) { if (itemSlotInfos[i].GetItem().ID == _newitemInfo.ID) { itemSlotInfos[i].SetItem(_newitemInfo); removeSlots(); setSlots(); break; } } }
void SetItemSlot(uint itemid, Transform itemTf) { Item.ItemInfo itemInfo = _LowDataMgr.instance.GetUseItem(itemid); UISprite iconSp = itemTf.FindChild("icon").GetComponent <UISprite>(); if (itemInfo.Type == (byte)AssetType.CostumeShard || itemInfo.Type == (byte)AssetType.PartnerShard) { iconSp.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.Shard); } iconSp.spriteName = _LowDataMgr.instance.GetLowDataIcon(itemInfo.Icon); itemTf.FindChild("grade").GetComponent <UISprite>().spriteName = string.Format("Icon_0{0}", itemInfo.Grade); NetData._ItemData item = NetData.instance.GetUserInfo().GetItemForItemID(itemid, (byte)eItemType.USE); if (item != null) { itemTf.FindChild("new").gameObject.SetActive(item.IsNewItem); itemTf.FindChild("disable").gameObject.SetActive(false); itemTf.FindChild("stack").GetComponent <UILabel>().text = item.Count.ToString(); item.IsNewItem = false;//바로 꺼준다.Hide에서 처리해도 되지만 여기서 처리해보도록한다 } else { itemTf.FindChild("new").gameObject.SetActive(false); itemTf.FindChild("disable").gameObject.SetActive(true); itemTf.FindChild("stack").GetComponent <UILabel>().text = "0"; } EventDelegate.Set(itemTf.GetComponent <UIEventTrigger>().onClick, () => { if (SceneManager.instance.CurTutorial == TutorialType.CATEGORY) { if (itemTf.GetComponent <TutorialSupport>() == null)//스킵 { UIBasePanel basePanel = UIMgr.GetUIBasePanel("UIPopup/TutorialPopup"); if (basePanel != null) { SceneManager.instance.CurTutorial = SceneManager.instance.CurTutorial;//다음으로 넘김. basePanel.Close(); } } } UIMgr.OpenDetailPopup(this, itemInfo.Id, 7); }); }
Item.ItemInfo ReadVegiInfo(int _id) { Lv = 1; // read lv LvPrice = CalcLvUp(_id, this.Lv); //Lv = 1; //LvPrice = "10"; Item.ItemInfo tmp = new Item.ItemInfo(); //tmp.ID = 1; tmp.ID = _id; tmp.Name = "당근"; tmp.SeedPrice = "1"; tmp.GrowTime = 10; //tmp.SellPrice = "10"; tmp.SellPrice = CalcSellPrice(tmp.ID, this.Lv); return(tmp); }
int SortJewel(NetData._ItemData a, NetData._ItemData b) { if (!a.IsUseItem() || !b.IsUseItem()) { return(0); } Item.ItemInfo aLowData = a.GetUseLowData(); Item.ItemInfo bLowData = b.GetUseLowData(); AssetType aType = (AssetType)aLowData.Type; AssetType bType = (AssetType)bLowData.Type; //보석은 별도 if (aType == AssetType.Jewel && bType == AssetType.Jewel) { if (aLowData.Grade < bLowData.Grade) { return(1); } else if (bLowData.Grade < aLowData.Grade) { return(-1); } } else if (aType != AssetType.Jewel && bType == AssetType.Jewel) { return(1); } else if (aType == AssetType.Jewel && bType != AssetType.Jewel) { return(-1); } if (a._itemIndex < b._itemIndex) { return(-1); } else { return(1); } }
/// <summary> 소모 아이템 </summary> void SetUseItem(Item.ItemInfo lowData, uint amount) { if (lowData == null) { return; } ItemIcon.atlas = _AtlasMgr.GetLoadAtlas(LoadAtlasType.UseItem); // 소모아이템중 보석만 배경이들어가고 나머지는배경이없이.. string bg; if (lowData.Type == (int)AssetType.Jewel) { BackGround.atlas = _AtlasMgr.GetLoadAtlas(LoadAtlasType.Item); bg = string.Format("Icon_bg_0{0}", lowData.Grade); DefaultBg.gameObject.SetActive(false); } if (lowData.Type == (int)AssetType.PartnerShard || lowData.Type == (int)AssetType.CostumeShard) { ItemIcon.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.Shard); BackGround.atlas = _AtlasMgr.GetLoadAtlas(PoolAtlasType.Bod); bg = "Bod_IconBg"; DefaultBg.gameObject.SetActive(true); } else { BackGround.atlas = _AtlasMgr.GetLoadAtlas(PoolAtlasType.Bod); bg = "Bod_IconBg"; DefaultBg.gameObject.SetActive(true); } string icon = _LowDataMgr.instance.GetLowDataIcon(lowData.Icon), gradeIcon = GetGradeIcon(lowData.Grade); SetDefault(icon, gradeIcon, amount, bg); }
public void ViewInfo(uint type, NetData.ShopItemInfoData shopInfo) { ScrollView.gameObject.SetActive(shopInfo == null ? false : true); EmptyTxt.SetActive(shopInfo == null? true:false); if (/*!ScrollView.gameObject.activeSelf*/ shopInfo == null) { return; } int shopCnt = shopInfo.shopInfo.Count; CurShopType = shopInfo.Type; RefreshCash(CurShopType); bool IsTimeReset = true; if (CurShopType == 101) { IsTimeReset = false; } if (CurShopType == 201) { IsTimeReset = false; } if (CurShopType == 202) { IsTimeReset = false; } if (CurShopType == 102) { IsTimeReset = false; } TimeRoot.gameObject.SetActive(IsTimeReset); TimeItemInfo.gameObject.SetActive(!TimeRoot.gameObject.activeSelf); ResetBtn.transform.gameObject.SetActive(IsTimeReset); if (CurViewType != eMainTab.CHANGE) { TimeRoot.gameObject.SetActive(false); ResetBtn.transform.gameObject.SetActive(false); } if (IsTimeReset) { RefreshTime = shopInfo.RefreshTimer.ToString(); // 리셋비용을 얻기위해 PriceList = _LowDataMgr.instance.GetLowDataPrice(shopInfo.Type); } GoodsName.text = ""; GoodsInfo.text = ""; UseSellAmount = 0; UseSellTotalAmount = 0; TotalNum.text = "0"; TotalPrice.text = "0"; TimeItemInfo.text = ""; bool isFirstSelect = false; int childCount = 0; for (int i = 0; i < Grid.transform.childCount; i++) { if (i >= shopCnt) { Grid.transform.GetChild(i).gameObject.SetActive(false); continue; } Transform slotTf = Grid.transform.GetChild(i); slotTf.gameObject.SetActive(true); NetData.ShopItemInfo info = shopInfo.shopInfo[i]; Shop.ShopInfo shopTable = _LowDataMgr.instance.GetLowDataShopById(info.DbIndex); if (shopTable == null) { Grid.transform.GetChild(i).gameObject.SetActive(false); continue; } //한정판매 일때는 기간지나면 목록에서 없앰 if (shopTable.shopopentime != 0) { DateTime startTime = DateTime.ParseExact(shopTable.shopopentime.ToString(), "yyyyMMddHHmmss", null); DateTime endTime = DateTime.ParseExact(shopTable.shopclosetime.ToString(), "yyyyMMddHHmmss", null); if (startTime.CompareTo(DateTime.Now) < 0) // 오늘이 시작날짜보다 빠르다면 { slotTf.gameObject.SetActive(false); continue; } if (endTime.CompareTo(DateTime.Now) > 0) //오늘이 완료날짜보다 늦다면 { slotTf.gameObject.SetActive(false); continue; } } // 갯수 1개는 표시x , 2개부터 표시해줌 UILabel Count = slotTf.FindChild("cnt").GetComponent <UILabel>(); Count.text = info.Account.ToString(); Count.gameObject.SetActive(info.Account > 1 ? true : false); UISprite moneyIcon = slotTf.FindChild("Img_Money").GetComponent <UISprite>(); moneyIcon.spriteName = MoneyImg.spriteName; UILabel name = slotTf.FindChild("name").GetComponent <UILabel>(); UILabel price = slotTf.FindChild("price").GetComponent <UILabel>(); price.text = shopTable.cost.ToString(); Item.EquipmentInfo eLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(info.GoodsId); if (eLowData != null)//장비아이템이 드랍아이템 대표로 등록되어 있음 { name.color = GradeNameColor[eLowData.Grade]; name.text = _LowDataMgr.instance.GetStringItem(eLowData.NameId); } else//소모아이템이 드랍아이템 대표로 등록되어 있음 { Item.ItemInfo uLowData = _LowDataMgr.instance.GetUseItem(info.GoodsId); if (uLowData == null) { continue; } name.color = GradeNameColor[uLowData.Grade]; name.text = _LowDataMgr.instance.GetStringItem(uLowData.NameId); } int idx = i; //슬롯눌럿을경우 선택 EventDelegate.Set(slotTf.GetComponent <UIEventTrigger>().onClick, delegate() { if (0 < info.Account) { OnclicItemPopup(info, int.Parse(price.text), name.color); } for (int j = 0; j < SelEff.Length; j++) { SelEff[j].SetActive(j == idx); } }); //아이콘일경우 팝업 slotTf.FindChild("root").GetChild(0).GetComponent <InvenItemSlotObject>().SetLowDataItemSlot(info.GoodsId, 0, (key) => { UIMgr.OpenDetailPopup(this, info.GoodsId); }); //매진팝업 Transform soldOut = slotTf.FindChild("soldout").GetComponent <Transform>(); Transform soldOutStemp = slotTf.FindChild("Stemp").GetComponent <Transform>(); soldOut.gameObject.SetActive(false); soldOutStemp.gameObject.SetActive(false); // 한개 이상이면 구매팝업창으로 if (info.Account < 1) { soldOut.gameObject.SetActive(true); soldOutStemp.gameObject.SetActive(true); } //매진이아닌 아이템이 최초선택된채로 시작. if (!isFirstSelect && !soldOutStemp.gameObject.activeSelf && !isResetSelect) { OnclicItemPopup(info, int.Parse(price.text), name.color); for (int j = 0; j < SelEff.Length; j++) { SelEff[j].SetActive(j == idx); } isFirstSelect = true; } childCount++; } //초기화 EventDelegate.Set(ResetBtn.onClick, delegate() { OnclickReset((int)shopInfo.ManualRefreshCount, (int)shopInfo.Type); }); EmptyTxt.SetActive(shopInfo == null /*!Grid.transform.GetChild(0).gameObject.activeSelf*/); Grid.Reposition(); ScrollView.enabled = childCount > 10; isResetSelect = false; }
void InitSocket() { Transform socketTf = GetViewObj(CurViewType).transform; NetData._CostumeData costumeData = UserInfo.GetEquipCostume(); NetData.ItemAbilityData ability = costumeData.AbilityData; float abilityValue = _LowDataMgr.instance.GetCostumeAbilityValue(costumeData._Grade, costumeData._MinorGrade, ability.Value); TargetCostume[1].gameObject.SetActive(true); TargetCostume[1].FindChild("icon").GetComponent <UISprite>().spriteName = costumeData.GetIconName(); TargetCostume[1].FindChild("name").GetComponent <UILabel>().text = costumeData.GetLocName(); TargetCostume[1].FindChild("info").GetComponent <UILabel>().text = costumeData.GetDescription(); TargetCostume[1].FindChild("ability").GetComponent <UILabel>().text = string.Format("{0} {1}", UIMgr.instance.GetAbilityLocName(ability.Ability) , UIMgr.instance.GetAbilityStrValue(ability.Ability, abilityValue)); //지금 능력치 //if(DetailPopup == null) // DetailPopup = UIMgr.OpenDetailPopup(this); //코스튬에 보석 공간 확인 for (ushort i = 0; i < SystemDefine.MaxJewelCount; i++) { string itemName = null; string itemAbility = null; string itemDesc = null; UIEventTrigger uiTri = SocketRootTfs[i].GetComponent <UIEventTrigger>(); uint jewelLowDataId = costumeData._EquipJewelLowId[i]; if (0 < jewelLowDataId) { Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(jewelLowDataId); //Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(useLowData.OptionIndex1); //LockImg.SetActive(false); itemDesc = _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId); JewelInvenSlots[i].SetLowDataItemSlot(jewelLowDataId, 0, null); itemName = _LowDataMgr.instance.GetStringItem(useLowData.NameId); itemAbility = string.Format("{0} {1}", UIMgr.instance.GetAbilityLocName((AbilityType)useLowData.OptionType), UIMgr.instance.GetAbilityStrValue((AbilityType)useLowData.OptionType, useLowData.value * 0.1f)); } else//그런거 없음 빈 슬롯. { JewelInvenSlots[i].EmptySlot(); //LockImg.SetActive(true); } UILabel nameLbl = SocketRootTfs[i].FindChild("item_name").GetComponent <UILabel>(); UILabel abilityLbl = SocketRootTfs[i].FindChild("ability").GetComponent <UILabel>(); UILabel descLbl = SocketRootTfs[i].FindChild("desc").GetComponent <UILabel>(); //승급에따라 슬롯수가 결정됨, 보석슬롯 락처리 int maxJewelSlot = costumeData.MaxJewelSlot; GameObject LockImg = SocketRootTfs[i].FindChild("Lock").gameObject; // 락이미지 LockImg.SetActive(maxJewelSlot <= i); nameLbl.text = itemName; abilityLbl.text = itemAbility; descLbl.text = itemDesc; } if (JewelGrid.transform.childCount <= 0)//처음으로 클릭함. 슬롯 생성 및 갱신해준다. { int maxInvenSlot = _LowDataMgr.instance.GetEtcTableValue <int>(EtcID.InvenMax); List <NetData._ItemData> jewelList = UserInfo.GetTypeItemList(eItemType.USE, AssetType.Jewel); jewelList.Sort(SortJewel); for (int i = 0; i < maxInvenSlot; i++) { GameObject slotGo = Instantiate(InvenSlotPrefab) as GameObject; Transform slotTf = slotGo.transform; slotTf.parent = JewelGrid.transform; slotTf.localPosition = Vector3.zero; slotTf.localScale = Vector3.one; InvenItemSlotObject invenSlot = slotGo.GetComponent <InvenItemSlotObject>(); if (i < jewelList.Count) { invenSlot.SetInvenItemSlot(jewelList[i], OnClickInvenItemSlot); //SocketRootTfs[i].FindChild("Lock").gameObject.SetActive(false); } else { invenSlot.EmptySlot(); } } JewelScrollView.ResetPosition(); } //선택되어 있는 소켓 기본 0번으로 셋팅 SelectJewelArr = 0; if (costumeData.MaxJewelSlot > 0) { for (int i = 0; i < SocketRootTfs.Length; i++) { GameObject select = SocketRootTfs[i].transform.FindChild("cover").gameObject; select.SetActive(i == SelectJewelArr); } } }
/// <summary> 아이템의 테이블 아이디로 셋팅을 함.</summary> public void SetLowDataItemSlot(uint lowDataIdx, uint amount, Action <ulong> callBack = null) { EnchantLv.gameObject.SetActive(false); if (lowDataIdx < 100) { //string iconName = null; switch ((Sw.UNITE_TYPE)lowDataIdx) { case Sw.UNITE_TYPE.UNITE_TYPE_COIN: lowDataIdx = 599000; break; case Sw.UNITE_TYPE.UNITE_TYPE_GEM: lowDataIdx = 599001; break; case Sw.UNITE_TYPE.UNITE_TYPE_CONTRIBUTION: lowDataIdx = 599004; break; case Sw.UNITE_TYPE.UNITE_TYPE_HONOR: lowDataIdx = 599005; break; case Sw.UNITE_TYPE.UNITE_TYPE_ROYAL_BADGE: lowDataIdx = 599002; break; case Sw.UNITE_TYPE.UNITE_TYPE_LION_KING_BADGE: lowDataIdx = 599006; break; case Sw.UNITE_TYPE.UNITE_TYPE_FAME: lowDataIdx = 599003; break; case Sw.UNITE_TYPE.UNITE_TYPE_POWER: lowDataIdx = 599104; break; case Sw.UNITE_TYPE.UNITE_TYPE_ROLE_EXP: lowDataIdx = 599105; break; //case Sw.UNITE_TYPE.UNITE_TYPE_TITLE: // break; default: Debug.Log("unDefined type error " + (Sw.UNITE_TYPE)lowDataIdx); EmptySlot(); return; } //if( string.IsNullOrEmpty(iconName ) ) //{ // Debug.LogError(string.Format("not setting image name error {0}", (Sw.UNITE_TYPE)lowDataIdx ) ); //} //ItemIcon.atlas = _AtlasMgr.GetLoadAtlas(LoadAtlasType.UseItem); //SetDefault(iconName, "", amount, "Bod_IconBg"); } Item.EquipmentInfo equip = _LowDataMgr.instance.GetLowDataEquipItemInfo(lowDataIdx); if (equip != null) { SetEquipItem(equip, amount); } else { Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(lowDataIdx); if (useLowData == null)//파트너? { SetPartnerItem(lowDataIdx, amount); } else if (useLowData != null) { SetUseItem(useLowData, amount); } else { EmptySlot(); } } if (callBack != null && 100 < lowDataIdx) { Key = lowDataIdx; CallBack = callBack; } }
void OnClickUpBtn(int viewType) { List <GatchaReward.RewardInfo> list = null; switch ((eRateViewType)viewType) { case eRateViewType.all: // 12 , 13, 11, 8, 10, 14 list = _LowDataMgr.instance.GetGachaRewardItemLsit(12, CurRateTabIdx, true); break; case eRateViewType.equip: //12 list = _LowDataMgr.instance.GetGachaRewardItemLsit(12, CurRateTabIdx); break; case eRateViewType.item: //13 list = _LowDataMgr.instance.GetGachaRewardItemLsit(13, CurRateTabIdx); break; case eRateViewType.piece: //11 list = _LowDataMgr.instance.GetGachaRewardItemLsit(11, CurRateTabIdx); break; case eRateViewType.etc: //8 , 10, 14 list = _LowDataMgr.instance.GetGachaRewardItemLsit(8, CurRateTabIdx); list.InsertRange(list.Count, _LowDataMgr.instance.GetGachaRewardItemLsit(10, CurRateTabIdx)); list.InsertRange(list.Count, _LowDataMgr.instance.GetGachaRewardItemLsit(14, CurRateTabIdx)); break; } byte charClass = _LowDataMgr.instance.GetCharcterData(NetData.instance.GetUserInfo()._userCharIndex).Class; for (int i = 0; i < RateGrid.transform.childCount; i++) { if (i >= list.Count || list[i].ClassType != 99 && list[i].ClassType != charClass) { RateGrid.transform.GetChild(i).gameObject.SetActive(false); continue; } GameObject slot = RateGrid.transform.GetChild(i).gameObject; slot.SetActive(true); UISprite itemImg = slot.transform.FindChild("imgae").GetComponent <UISprite>(); //아이콘 UILabel name = slot.transform.FindChild("Txt_itemname").GetComponent <UILabel>(); //이름 UILabel percent = slot.transform.FindChild("Txt_percent").GetComponent <UILabel>(); UILabel amount = slot.transform.FindChild("Txt_amount").GetComponent <UILabel>(); //개수 UISprite grade = itemImg.transform.FindChild("grade").GetComponent <UISprite>(); UISprite gradeBg = itemImg.transform.FindChild("bg_grade").GetComponent <UISprite>(); percent.text = string.Format("{0} : {1}%", _LowDataMgr.instance.GetStringCommon(949), (list[i].ItemIdxRate * 0.0001).ToString());//만분률 amount.text = list[i].ShardMin <= 1 ? "" : list[i].ShardMin.ToString(); uint itemIdx = list[i].ItemIdx; if (0 < itemIdx) { if (list[i].Type == 12)//장비임 { Item.EquipmentInfo eLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(itemIdx); if (eLowData != null)//장비아이템이 드랍아이템 대표로 등록되어 있음 { itemImg.atlas = AtlasMgr.instance.GetLoadAtlas(PoolAtlasType.EquipItem); itemImg.spriteName = _LowDataMgr.instance.GetLowDataIcon(eLowData.Icon); name.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(eLowData.Grade), _LowDataMgr.instance.GetStringItem(eLowData.NameId)); grade.spriteName = string.Format("Icon_0{0}", eLowData.Grade); gradeBg.spriteName = string.Format("Icon_bg_0{0}", eLowData.Grade); } } else if (list[i].Type == 10)// 초상화일수있으니 다시검ㅅ ㅏ&& _LowDataMgr.instance.IsGetRewardType(10, itemIdx) { itemImg.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.Face); Partner.PartnerDataInfo pInfo = _LowDataMgr.instance.GetPartnerInfo(itemIdx); if (pInfo == null) { RateGrid.transform.GetChild(i).gameObject.SetActive(false); continue; } itemImg.spriteName = pInfo.PortraitId; name.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(pInfo.Quality), _LowDataMgr.instance.GetStringUnit(pInfo.NameId)); grade.spriteName = string.Format("Icon_0{0}", pInfo.Quality); gradeBg.spriteName = string.Format("Icon_bg_0{0}", pInfo.Quality); } else//소비아이템 { Item.ItemInfo uLowData = _LowDataMgr.instance.GetUseItem(itemIdx); name.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(uLowData.Grade), _LowDataMgr.instance.GetStringItem(uLowData.NameId)); grade.spriteName = string.Format("Icon_0{0}", uLowData.Grade); if (uLowData.Type == (int)AssetType.Jewel) { gradeBg.atlas = AtlasMgr.instance.GetLoadAtlas(PoolAtlasType.EquipItem); gradeBg.spriteName = string.Format("Icon_bg_0{0}", uLowData.Grade); } else { gradeBg.atlas = AtlasMgr.instance.GetLoadAtlas(PoolAtlasType.Bod); gradeBg.spriteName = "Bod_IconBg"; } if (uLowData.Type == (int)AssetType.PartnerShard || uLowData.Type == (int)AssetType.CostumeShard) { itemImg.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.Shard); //gradeBg.atlas = AtlasMgr.instance.GetLoadAtlas(PoolAtlasType.Bod); //gradeBg.spriteName = "Bod_IconBg"; } else { itemImg.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.UseItem); } itemImg.spriteName = _LowDataMgr.instance.GetLowDataIcon(uLowData.Icon); } } else//아이템 아이디가 없는것들 { switch (list[i].Type) { case 1: //게임 머니 itemIdx = 599000; break; case 8: //에너지 itemIdx = 599104; break; case 2: //게임 캐쉬(원보) itemIdx = 599001; break; case 5: //휘장 itemIdx = 599002; break; case 7: //성망 itemIdx = 599003; break; case 3: //공헌 itemIdx = 599004; break; case 4: //명예 itemIdx = 599005; break; case 6: //사자왕휘장 itemIdx = 599006; break; } if (itemIdx <= 0) { Debug.LogError("UnDefined type error " + list[i].Type); continue; } Item.ItemInfo uLowData = _LowDataMgr.instance.GetUseItem(itemIdx); itemImg.atlas = AtlasMgr.instance.GetLoadAtlas(LoadAtlasType.UseItem); itemImg.spriteName = _LowDataMgr.instance.GetLowDataIcon(uLowData.Icon); name.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(uLowData.Grade), _LowDataMgr.instance.GetStringItem(uLowData.NameId)); grade.spriteName = string.Format("Icon_0{0}", uLowData.Grade); } int idx = i; EventDelegate.Set(slot.GetComponent <UIEventTrigger>().onClick, delegate() { if (itemIdx <= 0 || list[idx].Type == 10 || list[idx].Type == 14)//list[idx].Type == 1 ||list[idx].Type == 10 || list[idx].Type == 8 || { return; } Vector2 position = itemImg.transform.position; OnclicItemPopup(itemIdx); }); } RateGrid.repositionNow = true; RateScroll.ResetPosition(); }
/// <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; } }
public override void Init() { base.Init(); //일단 아이템 셋팅 List <Welfare.EventCheckInfo> list = new List <Welfare.EventCheckInfo>(); list = _LowDataMgr.instance.GetLowDataEventCheck(3); for (int i = 0; i < SlotRoot.childCount; i++) { GameObject go = SlotRoot.GetChild(i).gameObject; UILabel itemName = go.transform.FindChild("Txt_gold").GetComponent <UILabel>(); //수량 UISprite itemImg = go.transform.FindChild("get").FindChild("Icon").GetComponent <UISprite>(); //아이템 이미지 List <GatchaReward.FixedRewardInfo> fixList = _LowDataMgr.instance.GetFixedRewardItemGroupList(list[i].RewardId); Item.EquipmentInfo eLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(fixList[0].ItemId); bool isEquip = false; if (eLowData != null)//장비아이템이 드랍아이템 대표로 등록되어 있음 { if (itemImg.atlas != EquipAtlas) { itemImg.atlas = EquipAtlas; } itemImg.spriteName = _LowDataMgr.instance.GetLowDataIcon(eLowData.Icon); itemName.text = string.Format("{0} x{1}", _LowDataMgr.instance.GetStringItem(eLowData.NameId), fixList[0].ItemCount); isEquip = true; } else//소모아이템이 드랍아이템 대표로 등록되어 있음 { Item.ItemInfo uLowData = _LowDataMgr.instance.GetUseItem(fixList[0].ItemId); if (uLowData == null) { //Debug.LogError("item id error" + list[0].ItemId); //따로체크 if (itemImg.atlas != ItemAtlas) { itemImg.atlas = ItemAtlas; } isEquip = false; if (list[0].Type == 1)//골드 { itemImg.spriteName = "Icon_10000"; itemName.text = string.Format("{0} x{1}", _LowDataMgr.instance.GetStringCommon(4), fixList[0].ItemCount); } if (list[0].Type == 2)//원보 { itemImg.spriteName = "Icon_10001"; itemName.text = string.Format("{0} x{1}", _LowDataMgr.instance.GetStringCommon(3), fixList[0].ItemCount); } if (list[0].Type == 10) //파트너 { if (_LowDataMgr.instance.IsGetRewardType(10, fixList[0].ItemId)) { if (itemImg.atlas != Face) { itemImg.atlas = Face; } itemImg.spriteName = _LowDataMgr.instance.GetPartnerInfo(fixList[0].ItemId).PortraitId; itemName.text = string.Format("{0} x{1}", _LowDataMgr.instance.GetStringUnit(_LowDataMgr.instance.GetPartnerInfo(fixList[0].ItemId).NameId), fixList[0].ItemCount); isEquip = false; } } //continue; } else { if (itemImg.atlas != ItemAtlas) { itemImg.atlas = ItemAtlas; } itemImg.spriteName = _LowDataMgr.instance.GetLowDataIcon(uLowData.Icon); itemName.text = string.Format("{0} x{1}", _LowDataMgr.instance.GetStringItem(uLowData.NameId), fixList[0].ItemCount); isEquip = false; } } } }
public void SetItem(Item.ItemInfo _itemInfo) { this.itemInfo = _itemInfo; }
void SetItem() { for (int i = 0; i < ids.Count; i++) { Transform slot = ItemRoot.GetChild(i); UISprite img = slot.GetComponent <UISprite>(); Item.EquipmentInfo eLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(ids[i]); if (eLowData != null)//장비아이템이 드랍아이템 대표로 등록되어 있음 { if (img.atlas != EquipAtlas) { img.atlas = EquipAtlas; } img.spriteName = _LowDataMgr.instance.GetLowDataIcon(eLowData.Icon); } else//소모아이템이 드랍아이템 대표로 등록되어 있음 { Item.ItemInfo uLowData = _LowDataMgr.instance.GetUseItem(ids[i]); if (uLowData == null) { //Debug.LogError("item id error" + ids[i]); //continue; //따로체크 if (img.atlas != UseAtlas) { img.atlas = UseAtlas; } if (type[i] == 1)//골드 { img.spriteName = "Icon_10000"; } if (type[i] == 2)//원보 { img.spriteName = "Icon_10001"; } if (type[i] == 3)//공헌 { img.spriteName = "Icon_10006"; } if (type[i] == 4)//명ㅇㅖ { img.spriteName = "Icon_10007"; } if (type[i] == 5)//휘장 { img.spriteName = "Icon_10002"; } if (type[i] == 6)//사자휘장 { img.spriteName = "Icon_10008"; } if (type[i] == 7)//성망 { img.spriteName = "Icon_10005"; } if (type[i] == 8)//체력 { img.spriteName = "Icon_10009"; } if (type[i] == 10) //파트너 { if (_LowDataMgr.instance.IsGetRewardType(10, ids[i])) { if (img.atlas != Face) { img.atlas = Face; } img.spriteName = _LowDataMgr.instance.GetPartnerInfo(ids[i]).PortraitId; } } } else { if (img.atlas != UseAtlas) { img.atlas = UseAtlas; } img.spriteName = _LowDataMgr.instance.GetLowDataIcon(uLowData.Icon); } } // 아이템 상세팝업 UIEventTrigger triItem = slot.GetComponent <UIEventTrigger>(); int idx = i; EventDelegate.Set(triItem.onClick, delegate() { OnclicItemPopup(ids[idx]); }); } }
/// <summary> 아이템 기본 정보를 보여준다. </summary> public override void LateInit() { base.LateInit(); if (parameters.Length <= 0) { return; } uint lowDataId = (uint)parameters[0]; Vector3 newPos = (Vector3)parameters[1]; newPos.z = 0; newPos.y += 0.15f; //newPos.x += 0.35f; Debug.Log(string.Format("click item lowDataID {0}", lowDataId)); EquipItemTf.position = newPos; UseItemTf.position = newPos; InvenSlot.SetLowDataItemSlot(lowDataId, 0); Item.EquipmentInfo equipLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(lowDataId); if (equipLowData != null)//장비 아이템이다. { EquipItemTf.gameObject.SetActive(true); UseItemTf.gameObject.SetActive(false); InvenSlot.transform.parent = EquipItemTf.FindChild("ItemRoot"); Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(equipLowData.BasicOptionIndex); UILabel nameLbl = EquipItemTf.FindChild("name").GetComponent <UILabel>(); UILabel descLbl = EquipItemTf.FindChild("desc").GetComponent <UILabel>(); UILabel abilityLbl = EquipItemTf.FindChild("ability_value").GetComponent <UILabel>(); UILabel rndLbl = EquipItemTf.FindChild("rnd_ability").GetComponent <UILabel>(); nameLbl.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(equipLowData.Grade), _LowDataMgr.instance.GetStringItem(equipLowData.NameId)); descLbl.text = _LowDataMgr.instance.GetStringItem(equipLowData.DescriptionId); abilityLbl.text = string.Format("{0} : {1}", uiMgr.GetAbilityLocName((AbilityType)valueLowData.OptionId) , uiMgr.GetAbilityStrValue((AbilityType)valueLowData.OptionId, valueLowData.BasicValue * 0.1f)); rndLbl.text = string.Format(_LowDataMgr.instance.GetStringCommon(179) , 0, 3); //생성되고 잘리는경우 위치값조정필요 if (EquipItemTf.localPosition.x > 454) { EquipItemTf.SetLocalX(454f); } else if (EquipItemTf.localPosition.x < -447) { EquipItemTf.SetLocalX(-447f); } } else//소비 아이템이다. { EquipItemTf.gameObject.SetActive(false); UseItemTf.gameObject.SetActive(true); InvenSlot.transform.parent = UseItemTf.FindChild("ItemRoot"); UILabel nameLbl = UseItemTf.FindChild("name").GetComponent <UILabel>(); UILabel descLbl = UseItemTf.FindChild("desc").GetComponent <UILabel>(); Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(lowDataId); nameLbl.text = string.Format("{0}{1}[-]", UIHelper.GetItemGradeColor(useLowData.Grade), _LowDataMgr.instance.GetStringItem(useLowData.NameId)); descLbl.text = _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId); //생성되고 잘리는경우 위치값조정필요 if (UseItemTf.localPosition.x > 385) { UseItemTf.SetLocalX(385); } else if (UseItemTf.localPosition.x < -507) { UseItemTf.SetLocalX(-507); } } InvenSlot.transform.localPosition = Vector3.zero; InvenSlot.transform.localScale = Vector3.one; }
/// <summary> 아이템클릭시 </summary> void OnclicItemPopup(NetData.ShopItemInfo info, int price, Color nameColor) { //아이템세부정보 //구매팝업에서는 무조건 1개로시작함 string dec = ""; string itemName = ""; if (_LowDataMgr.instance.GetLowDataEquipItemInfo(info.GoodsId) != null)//장비아이템 { Item.EquipmentInfo equipLowData = _LowDataMgr.instance.GetLowDataEquipItemInfo(info.GoodsId); Item.ItemValueInfo valueLowData = _LowDataMgr.instance.GetLowDataItemValueInfo(equipLowData.BasicOptionIndex); //dec += _LowDataMgr.instance.GetStringItem(equipLowData.NameId); itemName = _LowDataMgr.instance.GetStringItem(equipLowData.NameId); //dec += "\n\n"; dec += _LowDataMgr.instance.GetStringItem(equipLowData.DescriptionId); dec += "\n\n"; dec += string.Format("{0} : {1}", uiMgr.GetAbilityLocName((AbilityType)valueLowData.OptionId) , uiMgr.GetAbilityStrValue((AbilityType)valueLowData.OptionId, valueLowData.BasicValue));; dec += "\n\n"; dec += string.Format(_LowDataMgr.instance.GetStringCommon(179) , 0, 3); } else { Item.ItemInfo useLowData = _LowDataMgr.instance.GetUseItem(info.GoodsId); itemName = _LowDataMgr.instance.GetStringItem(useLowData.NameId); //dec += _LowDataMgr.instance.GetStringItem(useLowData.NameId); //dec += "\n\n"; dec += _LowDataMgr.instance.GetStringItem(useLowData.DescriptionId); } GoodsName.text = itemName; GoodsName.color = nameColor; GoodsInfo.text = dec; // 시간 / 한정판매아이템일경우 초기화시간자리에 정보를 표시해줘야함 if (CurShopType == 102 || CurShopType == 202) { //TimeItemInfo.gameObject.SetActive(true); ulong start = _LowDataMgr.instance.GetLowDataShopById(info.DbIndex).shopopentime; ulong end = _LowDataMgr.instance.GetLowDataShopById(info.DbIndex).shopclosetime; //577 {0}년{0}월{1}일 // 260 {0}분 string Start = string.Format(_LowDataMgr.instance.GetStringCommon(577), start.ToString().Substring(0, 4), start.ToString().Substring(4, 2), start.ToString().Substring(6, 2)); Start += string.Format(_LowDataMgr.instance.GetStringCommon(260), start.ToString().Substring(8, 2)); //Start += ":"; //Start += start.ToString().Substring(2, 2); //Start += ":"; //Start += start.ToString().Substring(4, 2); string End = string.Format(_LowDataMgr.instance.GetStringCommon(577), end.ToString().Substring(0, 4), end.ToString().Substring(4, 2), end.ToString().Substring(6, 2)); End += string.Format(_LowDataMgr.instance.GetStringCommon(260), end.ToString().Substring(8, 2)); //string End = end.ToString().Substring(0, 2); //End += ":"; //End += end.ToString().Substring(2, 2); //End += ":"; //End += end.ToString().Substring(4, 2); TimeItemInfo.text = string.Format("{0} ~ {1}", Start, End); } UseSellAmount = 1; UseSellTotalAmount = (int)info.Account; TotalNum.text = UseSellAmount.ToString(); TotalPrice.text = (UseSellAmount * price).ToString(); TotalPrice.color = ulong.Parse(TotalPrice.text) <= money ? Color.white : Color.red; //돈이 모자르면 빨간색 EventDelegate.Set(BtnPlus.onClick, delegate() { OnclickUseCount(1, price); }); EventDelegate.Set(BtnMinus.onClick, delegate() { OnclickUseCount(-1, price); }); EventDelegate.Set(BtnMax.onClick, delegate() { OnclickUseCount((int)info.Account, price); }); EventDelegate.Set(BuyBtn.onClick, delegate() { if (UseSellAmount != 0) { string msg = string.Format(_LowDataMgr.instance.GetStringCommon(472), itemName); uiMgr.AddPopup(_LowDataMgr.instance.GetStringCommon(141), msg, _LowDataMgr.instance.GetStringCommon(467), _LowDataMgr.instance.GetStringCommon(76), null, () => { SceneManager.instance.ShowNetProcess("PurchaseShopItme"); NetworkClient.instance.SendPMsgShopByItemC(info.Idx, CurShopType, info.GoodsId, (uint)UseSellAmount, info.DbIndex); }); } }); // TotalPrice.text = ((ulong)UseSellTotalAmount * price) * ToString();//총 판매 금액 }