Exemplo n.º 1
0
        protected virtual void NonAlwaysChangeData(UWarGoodsStoreItem item)
        {
            UWarGoodsStoreView.GetWarGoodsIcon(item.SchemeGoodsInfo != null ? item.SchemeGoodsInfo.GoodsIconID:0, GoodsIcon);



            if (IsTooltipInit() && item.SchemeGoodsInfo != null)
            {
                GoodsTooltips.SetImage(GoodsTooltip_IconParamName, UWarGoodsStoreView.GetWarGoodsIcon(item.SchemeGoodsInfo.GoodsIconID));
                GoodsTooltips.SetText(GoodsTooltip_NameParamName, item.SchemeGoodsInfo.GoodsName);
                string GoodsDes = item.SchemeGoodsInfo.GoodsDes;
                UBBProperty.GetInstance().getRatio(GoodsDes);
                U3D_Render.Common.UBB.toHtml(ref GoodsDes, UBB_FORMAT_TYPE.UGUI);
                GoodsTooltips.SetText(GoodsTooltip_InfoParamName, GoodsDes);

                string GoodsLocIns = item.SchemeGoodsInfo.GoodsLocationInstructions;
                U3D_Render.Common.UBB.toHtml(ref GoodsLocIns, UBB_FORMAT_TYPE.UGUI);
                GoodsTooltips.SetText(GoodsTooltip_LocInstructionsParamName, GoodsLocIns);
            }
            else
            {
                GoodsTooltips.SetImage(GoodsTooltip_IconParamName, null);
                GoodsTooltips.SetText(GoodsTooltip_NameParamName, "");
                GoodsTooltips.SetText(GoodsTooltip_InfoParamName, "");
                GoodsTooltips.SetText(GoodsTooltip_LocInstructionsParamName, "");
            }
        }
Exemplo n.º 2
0
        public override void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
        {
            if (m_bSelectGoodsIsTreeNode)
            {
                m_bSelectGoodsIsTreeNode = false;
                return;
            }

            //清除合成树显示部分
            BeginTreeNode();
            BeginTreeNodeData();
            BeginTreeNodeHorizonalLine();

            if (LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(_nParam.GoodsID) == null)
            {
                return;
            }

            //计算合成树数据部分
            int nDepth = 0;

            m_CurNodeDataIndex = -1;
            IteratorFindNeedGoods(_nParam.GoodsID, ref nDepth);//, ref UnuseTreeNodeDataList);

            BuildTree(nDepth);
        }
Exemplo n.º 3
0
        public void SetRecommendedGoods(int[] _newGoodsIDs, EMobaRecommendGoods _eRecommendType)
        {
            for (int i = 0; i < _newGoodsIDs.Length; ++i)
            {
                if (_newGoodsIDs[i] == 0)
                {
                    continue;
                }
                //判断下是否已购买,已购买则不显示
                foreach (var PurchasedInfo in LogicDataCenter.warMobaGoodsDataManager.GetMainPlayerGoodsInfo())
                {
                    if (PurchasedInfo.nGoodID == _newGoodsIDs[i])
                    {
                        _newGoodsIDs[i] = 0;
                    }
                }
            }

            int recommendIndex = -1;

            for (int i = 0; i < _newGoodsIDs.Length; ++i)
            {
                if (_newGoodsIDs[i] == 0)
                {
                    continue;
                }

                UWarGoodsStoreItem newItem = LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(_newGoodsIDs[i]);//m_MyParent.GetWarGoodsStoreItem(schemeGoods);

                recommendIndex = _eRecommendType == EMobaRecommendGoods.EMRG_MiddleStage ? i + 6 : i;
                m_ReCommendGoodsItemList[recommendIndex] = newItem;
            }
        }
Exemplo n.º 4
0
 public override void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
 {
     if (AllGoodsTile.SelectedItem != null && m_MyParent.CurrentSelectedGoods.GoodsID != AllGoodsTile.SelectedItem.GoodsID)
     {
         AllGoodsTile.Deselect(AllGoodsTile.SelectedIndex);
     }
 }
Exemplo n.º 5
0
        /// <summary>
        /// 设置已购买物品列表
        /// </summary>
        /// <param name="_nSlotIndex">已购买槽位ID</param>
        /// <param name="_nGoodsItem">物品信息</param>
        /// <param name="_nCanUseTimes">物品可使用次数</param>
        /// <param name="_nDisplayMaxTime">显示当前物品可使用次数,少于等于1次时不显示 </param>
        public void SetPurchasedGoods(int _nSlotIndex, UWarGoodsStoreItem _nGoodsItem)
        {
            m_PurchasedGoodsDataSource[_nSlotIndex] = _nGoodsItem == null ? m_nDefaultItem : _nGoodsItem;
            m_bCanUpdateList = true;

            SelectedFrameVisible(m_SelectedPurchasedGoodsComponent, false);
        }
Exemplo n.º 6
0
        protected void UpdateView(UWarGoodsStoreItem _nParam)
        {
            if (_nParam == null || _nParam.SchemeGoodsInfo == null)
            {
                return;
            }

            UWarGoodsStoreView.GetWarGoodsIcon(_nParam.SchemeGoodsInfo.GoodsIconID, GoodsIcon);
            GoodsCost.text = _nParam.GoodsCost.ToString();
            GoodsName.text = _nParam.SchemeGoodsInfo.GoodsName;

            string des = _nParam.SchemeGoodsInfo.GoodsDes;

            UBBProperty.GetInstance().getRatio(des);
            U3D_Render.Common.UBB.toHtml(ref des, UBB_FORMAT_TYPE.UGUI);
            GoodsDetailInfo.text = des;
            SetBuyBtnEnable(_nParam.GoodsCanBuy);

            if (DataCenter.LogicDataCenter.warMobaGoodsDataManager.EnableGoodsFilter)
            {
                if (_nParam.IsFiltered)
                {
                    BuyBtn.gameObject.SetActive(false);
                }
                else
                {
                    BuyBtn.gameObject.SetActive(true);
                }
            }
            else
            {
                BuyBtn.gameObject.SetActive(true);
            }
        }
Exemplo n.º 7
0
 public override void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
 {
     if (m_RecommendGoodsGroup.SelectedIndex != -1 && m_MyParent.CurrentSelectedGoods.GoodsID != m_ReCommendGoodsItemList[m_RecommendGoodsGroup.SelectedIndex].GoodsID)
     {
         m_RecommendGoodsGroup.SetAllItemDeSelected();
     }
 }
Exemplo n.º 8
0
        protected override void AlwaysChangeData(UWarGoodsStoreItem item)
        {
            base.AlwaysChangeData(item);

            if (IsTooltipInit())
            {
                GoodsTooltips.SetText(GoodsTooltip_CostParamName, item.GoodsSoldOutCost.ToString());
            }
        }
Exemplo n.º 9
0
 public void SetPurchasedGoods(List <GameLogic.cmd_war_persongoodsinfo> _goodsList)
 {
     for (int i = 0; i < _goodsList.Count; ++i)
     {
         UWarGoodsStoreItem item = LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(_goodsList[i].nGoodID, false);
         SetPurchasedGoods(_goodsList[i].nSlotIndex, item);
     }
     UpdatePurchasedGoodsListData();
 }
Exemplo n.º 10
0
        /// <summary>
        /// Returns a value indicating whether Input occurs within specified value.
        /// </summary>
        /// <param name="value">Value.</param>
        /// <returns>true if the Input occurs within value parameter; otherwise, false.</returns>
        public virtual bool Contains(UWarGoodsStoreItem value)
        {
            if (LogicDataCenter.warMobaGoodsDataManager.EnableGoodsFilter && value.IsFiltered)
            {
                return(false);
            }

            if (value != null && value.SchemeGoodsInfo != null && !string.IsNullOrEmpty(value.SchemeGoodsInfo.GoodsName))
            {
                return(value.SchemeGoodsInfo.GoodsName.Contains(m_tmpSearchTextInput));
            }
            return(false);
        }
        public void SetData(UWarGoodsStoreItem item)
        {
            AlwaysChangeData(item);

            if (CurrentGoodsID != item.GoodsID)
            {
                CurrentGoodsID = item.GoodsID;
                NonAlwaysChangeData(item);
            }
            GoodsTooltips.enabled = CurrentGoodsID > 0;

            this.gameObject.SetActive(item.GoodsComponentVisible);
        }
Exemplo n.º 12
0
 public void Clear()
 {
     GoodsDepth         = 0;
     GoodsChildCount    = 0;
     ParentNode         = null;
     GoodsItem          = null;
     GoodsNodeComponent = null;
     if (ChildsNodeList != null)
     {
         ChildsNodeList.Clear();
     }
     ParentNodeWidth = 0;
 }
Exemplo n.º 13
0
        private void IteratorFindNeedGoods(int _nGoodsID, ref int _nDepth)//, ref List<UWarGoodsStoreTreeNodeData> _list)
        {
            UWarGoodsStoreTreeNodeData node;

            GetUnuseTreeNodeData(out node);//            new UWarGoodsStoreTreeNodeData();

            UWarGoodsStoreItem item = LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(_nGoodsID);

            node.GoodsItem  = item;
            node.GoodsDepth = _nDepth;


            //这里会挺频繁new的,有需要的时候再优化吧
            List <int> NeedSynthesizedGoodsIDList = GameMobaSchemesManager.Instance.GetSchemeGoodsNeedComposeList(_nGoodsID);//item.SchemeGoodsInfo.GoodsCanComposeList.Split(MobaSchemesConfig.separator).ToList();

            m_nRunFindNum++;
            if (m_nRunFindNum == 1)
            {
                m_nFirstGoodsID = _nGoodsID;
            }
            if (m_nRunFindNum > 10)
            {
                Trace.LogError("配置物品的合成所需物品ID重复,导致运行死循环,请核查!!FirstGoodsID=" + m_nFirstGoodsID.ToString() + ",CurGoodsID=" + _nGoodsID.ToString());
                m_nRunFindNum--;
                m_nFirstGoodsID = 0;
                return;
            }


            if (NeedSynthesizedGoodsIDList == null)
            {
                node.GoodsChildCount = 0;
                //_list.Add(node);
            }
            else
            {
                node.GoodsChildCount = NeedSynthesizedGoodsIDList.Count;
                //_list.Add(node);

                _nDepth++;
                for (int i = 0; i < NeedSynthesizedGoodsIDList.Count; i++)
                {
                    int nID = Convert.ToInt32(NeedSynthesizedGoodsIDList[i]);

                    IteratorFindNeedGoods(nID, ref _nDepth);//, ref _list);
                }
            }

            m_nRunFindNum--;
        }
Exemplo n.º 14
0
        public void SetData(UWarGoodsStoreItem item)
        {
            //if (item.SchemeGoodsInfo != null && gameObject != null)
            //    Debug.Log(item.SchemeGoodsInfo.GoodsName + ",Enable:" + this.enabled + ",go.active:" + this.gameObject.activeInHierarchy);
            //else
            //    Debug.Log("null 不能设置颜色");
            if (CurrentGoodsID != item.GoodsID)
            {
                CurrentGoodsID = item.GoodsID;
                NonAlwaysChangeData(item);
            }

            AlwaysChangeData(item);

            GoodsTooltips.enabled = CurrentGoodsID > 0;
        }
Exemplo n.º 15
0
        protected virtual void AlwaysChangeData(UWarGoodsStoreItem item)
        {
            if (GoodsCost != null)
            {
                if (item.SchemeGoodsInfo != null && CanShowProperty_GoodsName)
                {
                    GoodsCost.text = item.SchemeGoodsInfo.GoodsName + "\n" + item.GoodsCost.ToString();
                }
                else
                {
                    GoodsCost.text = item.GoodsCost.ToString();
                }
            }


            if (CanUseProperty_GoodsCanBuy)
            {
                if (item.GoodsCanBuy)
                {
                    GoodsIcon.color = Color.white;//.DOColor(Color.white, 0.1f);
                    GoodsCost.color = UDefines.CommomColor(ECommonColor.ECC_Gold1);
                }
                else
                {
                    GoodsIcon.color = Color.gray;//.DOColor(Color.gray, 0.1f);
                    GoodsCost.color = Color.gray;
                }
                //GoodsIcon.Rebuild(CanvasUpdate.PreRender);
            }
            //物品购买时是否需要显示已购买图标
            if (CanUseProperty_IsPurchased && GoodsPurchasedIcon != null)
            {
                GoodsPurchasedIcon.gameObject.SetActive(item.IsPurchased);
                GoodsCost.gameObject.SetActive(!item.IsPurchased);
            }

            if (GoodsCanUseTimes != null)
            {
                GoodsCanUseTimes.text = item.GoodsCanUseTimes > 1 ? item.GoodsCanUseTimes.ToString() : " ";
            }

            if (IsTooltipInit())
            {
                GoodsTooltips.SetText(GoodsTooltip_CostParamName, item.GoodsCost.ToString());
            }
        }
Exemplo n.º 16
0
        public void SetRecommendedGoods(int _newGoodsID, int _nRecommendIndex)
        {
            UWarGoodsStoreItem newItem            = null;
            List <int>         tmpNeedComposeList = null;

            if (_newGoodsID != 0)
            {
                newItem = LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(_newGoodsID);//m_MyParent.GetWarGoodsStoreItem(schemeGoods);
                if (newItem == null)
                {
                    Trace.LogWarning("没找到ID:" + _newGoodsID + "的物品,策划检查下是不是该物品不能用于当前战场。");
                    return;
                }
                newItem.GoodsComponentVisible = true;
                if (LogicDataCenter.warMobaGoodsDataManager.IsMainHeroPDBIDValid && LogicDataCenter.warMobaGoodsDataManager.GetMainPlayerGoodsInfo() != null)
                {
                    foreach (var PurchasedInfo in LogicDataCenter.warMobaGoodsDataManager.GetMainPlayerGoodsInfo())
                    {
                        //策划强烈要求,如果已购买大件的话,推荐页不显示小件物品。
                        tmpNeedComposeList = GoodsSchemesDataManager.Instance.GetSchemeGoodsNeedComposeList(PurchasedInfo.nGoodID);
                        if (PurchasedInfo.nGoodID == newItem.GoodsID || newItem.GoodsID == 0 ||
                            (tmpNeedComposeList != null && tmpNeedComposeList.Contains(newItem.GoodsID)))
                        {
                            newItem.GoodsComponentVisible = false;
                        }
                    }
                }
            }
            else
            {
                newItem = new UWarGoodsStoreItem(_newGoodsID);
                newItem.GoodsComponentVisible = false;
            }
            if (_nRecommendIndex >= 0 && _nRecommendIndex < m_ReCommendGoodsItemList.Count)
            {
                m_ReCommendGoodsItemList[_nRecommendIndex] = newItem;
            }
            else
            {
                Trace.LogError("设置推荐物品出错,物品ID:" + _newGoodsID + ",序号:" + _nRecommendIndex);
            }
        }
Exemplo n.º 17
0
        public override void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
        {
            List <string> CanSynthesizedGoodsIDList = _nParam.SchemeGoodsInfo.GoodsCanComposeList.Split(MobaSchemesConfig.separator).ToList();

            if (CanSynthesizedGoodsIDList != null && CanSynthesizedGoodsIDList.Count > 0)
            {
                int nGoodsID = -1;
                //移除旧的侦听
                CanSynthesizedGoodsTile.OnSelect.RemoveListener(OnMobaGoodsSelected);
                CanSynthesizedGoodsTile.onDoubleClick.RemoveListener(OnMobaGoodsBuy);
                CanSynthesizedGoodsTile.onRightClick.RemoveListener(OnMobaGoodsBuy);
                CanSynthesizedGoodsTile.OnEndScrolling.RemoveListener(OnGoodsTileScrollEnd);

                m_CanSynthesizedGoodsTileDataSource.Clear();

                foreach (var strGoodsID in CanSynthesizedGoodsIDList)
                {
                    if (string.IsNullOrEmpty(strGoodsID))
                    {
                        continue;
                    }
                    nGoodsID = Convert.ToInt32(strGoodsID);
                    UWarGoodsStoreItem item = LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(nGoodsID);
                    if (item != null)
                    {
                        m_CanSynthesizedGoodsTileDataSource.Add(item);
                    }
                }

                CanSynthesizedGoodsTile.DataSource = m_CanSynthesizedGoodsTileDataSource;
                //添加新的侦听
                CanSynthesizedGoodsTile.OnSelect.AddListener(OnMobaGoodsSelected);
                CanSynthesizedGoodsTile.onDoubleClick.AddListener(OnMobaGoodsBuy);
                CanSynthesizedGoodsTile.onRightClick.AddListener(OnMobaGoodsBuy);
                CanSynthesizedGoodsTile.OnEndScrolling.AddListener(OnGoodsTileScrollEnd);

                RecalculatePages();
                CurrentPage = 0;
            }
        }
        protected virtual void AlwaysChangeData(UWarGoodsStoreItem item)
        {
            if (GoodsCost != null)
            {
                GoodsCost.text = item.GoodsCost.ToString();
            }

            if (item.GoodsCanBuy)
            {
                GoodsIcon.color = Color.white;
                GoodsCost.color = UDefines.CommomColor(ECommonColor.ECC_Gold1);
            }
            else
            {
                GoodsIcon.color = Color.gray;
                GoodsCost.color = Color.gray;
            }


            if (IsTooltipInit())
            {
                GoodsTooltips.SetText(GoodsTooltip_CostParamName, item.GoodsCost.ToString());
            }
        }
Exemplo n.º 19
0
 public override void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
 {
     UpdateView(_nParam);
 }
Exemplo n.º 20
0
 public override void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
 {
     SelectedFrameVisible(m_SelectedPurchasedGoodsComponent, false);
 }
Exemplo n.º 21
0
 private void ForeachRecommendGoodesItem(UWarGoodsStoreItem _nItem)
 {
 }
Exemplo n.º 22
0
 /// <summary>
 /// 当前选择的物品改变时响应的方法
 /// </summary>
 /// <param name="_nParam"></param>
 public virtual void OnMobaGoodsClick(UWarGoodsStoreItem _nParam)
 {
 }
Exemplo n.º 23
0
        public void BoxRecommendedGoodsByGoodsType(System.Collections.Generic.List <SSchemeMobaGoods> _typeList, List <int> _dispositionTypeList, EMobaRecommendGoods _eRecommendType)
        {
            m_nUsedRecommendType++;
            //取显示对象挂载容器
            Transform containner = GetCurrentContainer();
            ResNode   go         = AssetBundleManager.GetAssets(AssetType.Asset_Prefab, "UI/Prefabs/" + UPath.UDynamicMobaState + "/WarGoodsStore/WarGoodsStoreRecommendComponent");
            UWarGoodsStoreRecommendComponent component;

            //取该类型标题本地化文本
            if (GetCurrentContainerTitleText() != null)
            {
                ULocalizationService.Instance.Get(GetCurrentContainerTitleText(), "UIView", "WarGoodsStore", _eRecommendType.ToString());
            }
            //移除英雄限制的装备
            int nHeroId = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_VOCATION);
            PersonSkinModelItem ModelItem = new PersonSkinModelItem();

            GameLogicAPI.GetPersonModel((UInt16)nHeroId, ref ModelItem);

            var list = _typeList.Select(d => d).Where(s => (s.GoodsVocationLimit != 0 && s.GoodsVocationLimit == ModelItem.nTraits)).ToList();

            foreach (var i in list)
            {
                _typeList.Remove(i);
            }

            int count = _typeList.Count >= 6 ? 6 : _typeList.Count;

            for (int i = 0; i < count; ++i) //each (var schemeGoods in _typeList)
            {
                SSchemeMobaGoods   schemeGoods = _typeList[i];
                UWarGoodsStoreItem newItem     = LogicDataCenter.warMobaGoodsDataManager.GetWarGoodsStoreItem(schemeGoods);//m_MyParent.GetWarGoodsStoreItem(schemeGoods);
                if (newItem != null)
                {
                    m_ReCommendGoodsItemList.Add(newItem);

                    component = go.InstanceMainRes <UWarGoodsStoreRecommendComponent>();
                    component.gameObject.name = newItem.SchemeGoodsInfo.GoodsName;
                    component.SetData(newItem);

                    component.Group = m_RecommendGoodsGroup;
                    component.transform.SetParent(containner, false);

                    component.onSelectedChangedEx.AddListener(OnMobaGoodsSelected);
                    component.onDoubleClick.AddListener(OnMobaGoodsBuy);
                    component.onRightClick.AddListener(OnMobaGoodsBuy);
                }
                else
                {
                    newItem = new UWarGoodsStoreItem(schemeGoods);

                    if (LogicDataCenter.warMobaGoodsDataManager.EnableGoodsFilter && newItem.IsFiltered)
                    {
                        continue;
                    }

                    newItem.GoodsComponentVisible = false;
                    m_ReCommendGoodsItemList.Add(newItem);
                    component       = go.InstanceMainRes <UWarGoodsStoreRecommendComponent>();
                    component.Group = m_RecommendGoodsGroup;
                    component.transform.SetParent(containner, false);

                    component.onSelectedChangedEx.AddListener(OnMobaGoodsSelected);
                    component.onDoubleClick.AddListener(OnMobaGoodsBuy);
                    component.onRightClick.AddListener(OnMobaGoodsBuy);

                    component.SetData(newItem);
                }
                //存下更改物品配置时需要替换的推荐类型
                if (_dispositionTypeList != null && _dispositionTypeList.Contains((int)_eRecommendType))
                {
                    LogicDataCenter.warMobaGoodsDataManager.SetHeroDefaultGoods(i, schemeGoods.GoodsID, m_nUsedRecommendType);
                }
            }
        }