Exemplo n.º 1
0
    public void OnClickItem(ItemType itemType)
    {
        _currentItemType = itemType;
        ItemInfo itemInfo = _currentInfo.GetItemByType(itemType);

        if (itemInfo == null)
        {
            // 没有穿戴物品,直接显示选物品界面
            UIManager.Instance.OpenWindow <UISelectEquipView>(_currentInfo, itemType);
        }
        else
        {
            _panelUnEquipBg.gameObject.SetActive(true);
            if (itemType == ItemType.DECORATION)
            {
                _panelUnEquip.transform.position = _item3.transform.position;
            }
            else if (itemType == ItemType.BOOK)
            {
                _panelUnEquip.transform.position = _item4.transform.position;
            }
            else if (itemType == ItemType.CHEST || itemType == ItemType.CLOTH)
            {
                _panelUnEquip.transform.position = _item2.transform.position;
            }
            else
            {
                _panelUnEquip.transform.position = _item1.transform.position;
            }
        }
    }
Exemplo n.º 2
0
    public void SetInfo(HeroInfo heroInfo, ItemInfo itemInfo)
    {
        _heroInfo = heroInfo;
        _itemInfo = itemInfo;

        _starPanel.SetStar(heroInfo.StarLevel);
        _imgIconBg.sprite = ResourceManager.Instance.GetHeroBgByStar(heroInfo.StarLevel);
        _imgIcon.sprite   = ResourceManager.Instance.GetHeroImage(heroInfo.ConfigID);
        _txtHeroName.text = heroInfo.GetName();

        _txtHeroName.color  = ResourceManager.Instance.GetColorByQuality(heroInfo.StarLevel);
        _txtFightScore.text = heroInfo.FightingScore.ToString();

        _imgItemType.sprite = ResourceManager.Instance.GetItemTypeIcon((ItemType)itemInfo.Cfg.Type);

        ItemInfo curItemInfo = heroInfo.GetItemByType((ItemType)itemInfo.Cfg.Type);

        if (curItemInfo != null)
        {
            _itemWidget.SetInfo(curItemInfo);
            _itemWidget.gameObject.SetActive(true);
        }
        else
        {
            _itemWidget.gameObject.SetActive(false);
        }
    }
Exemplo n.º 3
0
    public void SetInfo(HeroInfo info, ItemType itemType)
    {
        // TODO 显示合成逻辑,当判定有合成材料,并且没有对应装备时显示可合成
        // TODO 如果判定副本已通关,并且显示可获取(如果可以装备显示绿色+,否则显示黄色+),可获取颜色为黄色
        // 未装备和无装备显示偏灰黄

        _currentInfo = info;
        _currentType = itemType;

        ItemInfo itemInfo = info.GetItemByType(itemType);

        if (itemInfo != null)
        {
            // 已经装备
            _itemFlag.gameObject.SetActive(false);
            _itemIcon.gameObject.SetActive(true);
            _itemIcon.sprite = ResourceManager.Instance.GetItemIcon(itemInfo.ConfigID);
            _itemBg.sprite   = ResourceManager.Instance.GetIconBgByQuality(itemInfo.Quality);
            _itemBgCover.gameObject.SetActive(true);
            _itemBgCover.sprite = ResourceManager.Instance.GetIconBgCoverByQuality(itemInfo.Quality);
            _itemText.gameObject.SetActive(false);
        }
        else
        {
            _itemIcon.gameObject.SetActive(false);
            _itemBg.sprite = ResourceManager.Instance.GetIconBgByQuality(1);
            _itemBgCover.gameObject.SetActive(false);
            _itemBgCover.sprite = ResourceManager.Instance.GetIconBgCoverByQuality(1);

            ItemInfo itemInfoInBag = UserManager.Instance.GetItemByType(itemType);
            if (itemInfoInBag != null)
            {
                _itemFlag.gameObject.SetActive(true);
                _itemText.gameObject.SetActive(true);

                // 背包中有对应物品
                if (info.Level >= itemInfoInBag.Cfg.Level)
                {
                    // 可以装备,显示绿色+
                    _itemFlag.sprite = _greenAdd;
                    _itemText.text   = Str.Get("UI_HERO_ITEM_EQUIP");
                    _itemText.color  = Color.green;
                }
                else
                {
                    // 不可以装备,显示黄色+
                    _itemFlag.sprite = _yellowAdd;
                    _itemText.text   = Str.Get("UI_HERO_ITEM_NOT_EQUIP");
                    _itemText.color  = new Color32(255, 184, 0, 255);
                }
            }
            else
            {
                // 背包中没有对应物品,直接留空
                _itemFlag.gameObject.SetActive(false);
                _itemText.gameObject.SetActive(false);
            }
        }
    }
Exemplo n.º 4
0
    public void SetInfo(HeroInfo info, ItemType itemType)
    {
        _itemBg.sprite = ResourceManager.Instance.GetItemBgByStar(info.StarLevel);
        _itemIcon.gameObject.SetActive(false);
        _itemIconBg.gameObject.SetActive(false);
        _itemFlagY.gameObject.SetActive(false);
        _itemFlagG.gameObject.SetActive(false);
        ItemInfo itemInfo = info.GetItemByType(itemType);

        if (itemInfo != null)
        {
            // 已经装备
            _itemIcon.gameObject.SetActive(true);
            _itemIcon.sprite = ResourceManager.Instance.GetItemIcon(itemInfo.ConfigID);
            _itemIconBg.gameObject.SetActive(true);
            _itemIconBg.sprite = ResourceManager.Instance.GetIconBgByQuality(itemInfo.Quality);
        }
        else
        {
            _itemIcon.gameObject.SetActive(false);

            ItemInfo itemInfoInBag = UserManager.Instance.GetItemByType(itemType);
            if (itemInfoInBag != null)
            {
                // 背包中有对应物品
                ItemsConfig itemConfig = ItemsConfigLoader.GetConfig(itemInfoInBag.ConfigID);
                if (info.Level >= itemConfig.Level)
                {
                    // 可以装备,显示绿色+
                    _itemFlagG.gameObject.SetActive(true);
                }
                else
                {
                    // 不可以装备,显示黄色+
                    _itemFlagY.gameObject.SetActive(true);
                }
            }
            else
            {
                // 背包中没有对应物品,直接留空
            }
        }
    }
Exemplo n.º 5
0
    // 请求穿戴装备
    public bool RequestEquipItem(long heroID, long itemID)
    {
        HeroInfo heroInfo = GetHeroInfo(heroID);

        if (heroInfo == null)
        {
            return(false);
        }

        if (heroInfo.GetItem(itemID) != null)
        {
            // 已经装备
            return(false);
        }

        ItemInfo itemInfo = GetItem(itemID);

        if (itemInfo == null)
        {
            // 没有物品
            return(false);
        }

        if (itemInfo.Cfg.Level > heroInfo.Level)
        {
            // 等级不足
            UIUtil.ShowMsgFormat("MSG_HERO_LEVEL_LIMIT");
            return(false);
        }

        PUseCommonItem builder = new PUseCommonItem();

        builder.heroId = heroID;

        PComItem ibuilder = new PComItem();

        ibuilder.id = itemInfo.EntityID;
        builder.comItem.Add(ibuilder);

        NetworkManager.Instance.Send(eCommand.FIT_UP_EQUIP, builder, (buffer) => {
            PHeroAttr ret = Net.Deserialize <PHeroAttr>(buffer);
            if (!Net.CheckErrorCode(ret.errorCode, eCommand.FIT_UP_EQUIP))
            {
                return;
            }

            // 把旧装备放在背包里面
            ItemInfo oldItemInfo = heroInfo.GetItemByType((ItemType)itemInfo.Cfg.Type);
            if (oldItemInfo != null)
            {
                AddItem(oldItemInfo, false);
                heroInfo.EquipedItem.Remove(oldItemInfo);
            }

            // 同步英雄属性
            heroInfo.Deserialize(ret, true);

            // 移除背包内的装备
            UseItem(itemID, 1);

            UIManager.Instance.RefreshWindow <UINewHeroView>();
            UIManager.Instance.RefreshWindow <UINewHeroListView>();
        });

        return(true);
    }