Exemplo n.º 1
0
        public void OnRecvHeroInfo(int nCurrentGold = 0)
        {
            int           nActorID = LogicDataCenter.playerSystemDataManager.nRequestPDBID;
            ActorHeroInfo info     = LogicDataCenter.playerSystemDataManager.GetActorAllHero(nActorID);

            m_wndView.ShowHeroHead(info.dicEntityHeroInfo, info.dicEntityNoHaveHeroInfo, nCurrentGold);
        }
Exemplo n.º 2
0
        private void OpenSelectView(ESelectViewState state)
        {
            // 培养仓为空。先判断是否有满足当前条件的本命英雄。若有,则跳转本命英雄选择界面,否则弹窗提示
            ActorHeroInfo info = LogicDataCenter.playerSystemDataManager.GetActorAllHero();

            if (info == null || info.dicEntityHeroInfo == null)
            {
                return;
            }

            List <int> heroIDList = LogicDataCenter.lifeHeroDataManager.FindCandidatesFromHistoryRecord();

            if (heroIDList != null && heroIDList.Count > 0)
            {
                List <cmd_entity_hero_info> candidates = new List <cmd_entity_hero_info>();
                foreach (int heroID in heroIDList)
                {
                    cmd_entity_hero_info hero;
                    if (info.dicEntityHeroInfo.TryGetValue(heroID, out hero))
                    {
                        candidates.Add(hero);
                    }
                    else
                    {
                        Debug.LogWarning("在玩家拥有的英雄中未找到该英雄ID=" + heroID);
                    }
                }
                ULifeHeroCandidateData msgData = new ULifeHeroCandidateData();
                msgData.msgID      = (int)WndID.WND_ID_LIFE_HERO_SELECT;
                msgData.candidates = candidates;
                msgData.cultureID  = mCurrentSelectCultureID;
                msgData.state      = state;
                if (state == ESelectViewState.REPLACE)
                {
                    msgData.heroID = m_hasHeroCulture[mCurrentSelectCultureID];
                }
                UISystem.Instance.SendTargetWndMessage(WndID.WND_ID_LIFE_HERO_SELECT, WndMsgID.WND_MSG_OPEN_LIFEHERO_SELECT, msgData);
            }
            else
            {
                SSchemeLifeHero config;
                int             heroCount = LogicDataCenter.lifeHeroDataManager.AllLifeHero.Count;
                int             key       = state == ESelectViewState.INJECT ? heroCount : heroCount - 1;
                key = key < 0 ? 0 : key;
                if (LifeHeroConfig.Instance.LifeHeroConfigDic.TryGetValue(key, out config))
                {
                    string content = ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelContent_NoLifeHero");
                    ShowDialog(ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "TravelTitle"),
                               String.Format(content, config.rule),
                               new UIWidgets.DialogActions()
                    {
                        { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Confirm"), GoToBattle }, { ULocalizationService.Instance.Get("UIView", "LifeHeroSelect", "Cancel"), null }
                    });
                }
                else
                {
                    Debug.LogError("获取本命配置失败.key = " + key);
                }
            }
        }
Exemplo n.º 3
0
        public void OnClanSelfHero()
        {
            ActorHeroInfo info = LogicDataCenter.playerSystemDataManager.GetActorAllHero();

            if (info.dicEntityHeroInfo.Count <= 0)
            {
                return;
            }

            tileClanRequestCard.DataSource.Clear();
            tileClanRequestCard.DataSource.BeginUpdate();
            foreach (var item in info.dicEntityHeroInfo)
            {
                cmd_clan_request_selfhero data = new cmd_clan_request_selfhero();
                data.nHeroID    = item.Value.nHeroID;
                data.nHeroStar  = item.Value.byStarLv;
                data.nCardCount = item.Value.nCardCount;
                bool bIsLifeHero = LogicDataCenter.lifeHeroDataManager.AllLifeHero.ContainsKey(item.Value.nHeroID);
                data.nNeedCardCount = GameLogicAPI.getHeroStarNeedCard(item.Value.nHeroID, item.Value.byStarLv, bIsLifeHero);

                UTileItemClanSelfHero tileItem = new UTileItemClanSelfHero();
                tileItem.data = data;
                tileClanRequestCard.DataSource.Add(tileItem);
            }
            tileClanRequestCard.DataSource.EndUpdate();
        }
Exemplo n.º 4
0
        public override void SetVisible(bool visible)
        {
            base.SetVisible(visible);

            if (m_wndView == null)
            {
                return;
            }

            if (visible)
            {
                int           nActorID = LogicDataCenter.playerSystemDataManager.nRequestPDBID;
                ActorHeroInfo info     = LogicDataCenter.playerSystemDataManager.GetActorAllHero(nActorID);
                if (info.dicEntityHeroInfo.Count != 0)
                {
                    OnRecvHeroInfo();
                }
            }
            else
            {
                // UISystem.Instance.ShowWnd(WndID.WND_ID_HERODETAIL, false);
                UISystem.Instance.ShowWnd(WndID.WND_ID_UPGRADESTARHINT, false);
            }
        }
Exemplo n.º 5
0
        public override void OnMessage(WndMsgID msgID, UIMsgData msgData)
        {
            switch (msgID)
            {
            case WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFO:
            {
                HeroDetailViewData.Instance.Clear();
                UIMsgCmdData uiInitHeroInfo = (UIMsgCmdData)msgData;
                cmd_Return_Hero_Detail_Info initHeroInfo = IntPtrHelper.toData <cmd_Return_Hero_Detail_Info>(uiInitHeroInfo.ptrParam);
                SetHeroDetailData(initHeroInfo.nHeroID, initHeroInfo.nPDBID);

                SetVisible(true);
            }
            break;

            case WndMsgID.WND_MSG_HERODETAIL_HERODETAILINFOREFRESH:
            {
                if (m_wndView == null)
                {
                    return;
                }

                UIMsgCmdData uiRefreshHeroInfo = (UIMsgCmdData)msgData;
                cmd_Return_Hero_Detail_Info refreshHeroInfo = IntPtrHelper.toData <cmd_Return_Hero_Detail_Info>(uiRefreshHeroInfo.ptrParam);
                if (refreshHeroInfo.nHeroID != HeroDetailViewData.Instance.nHeroID || refreshHeroInfo.nPDBID != HeroDetailViewData.Instance.nReqPDBID)
                {
                    return;
                }

                SetHeroDetailData(refreshHeroInfo.nHeroID, refreshHeroInfo.nPDBID);
                m_wndView.OnBuyOrChangeHeroSuccess();
            }
            break;

            case WndMsgID.WND_MSG_CHICKUPGRADEBUTTON_RETURN:
            {
                if (m_wndView == null)
                {
                    return;
                }

                UIMsgCmdData uiHeroInfo             = (UIMsgCmdData)msgData;
                cmd_entity_hero_diff_expend cmdData = IntPtrHelper.toData <cmd_entity_hero_diff_expend>(uiHeroInfo.ptrParam);
                m_wndView.OnRecvHeroDiffInfo(cmdData);
            }
            break;

            case WndMsgID.WND_MSG_UPGRADESTARSUCESS_RESULT:
            {
                if (m_wndView == null)
                {
                    return;
                }

                if (!this.IsVisible())
                {
                    return;
                }

                UIMsgCmdData uiHeroUpStarInfo = (UIMsgCmdData)msgData;
                cmd_Return_HeroDetail_Upgrade_Success cmdUpStarData = IntPtrHelper.toData <cmd_Return_HeroDetail_Upgrade_Success>(uiHeroUpStarInfo.ptrParam);
                m_wndView.ShowUpStarSucess(cmdUpStarData);
            }
            break;

            case WndMsgID.WND_MSG_HEROSKINVIEW_UPDATESKINDATA:
            {
                if (m_wndView == null)
                {
                    return;
                }

                m_wndView.OnBuyOrChangeHeroSuccess();
            }
            break;

            case WndMsgID.WND_MSG_HERODETAIL_HERODETAILXPUPDATE:
            {
                if (m_wndView == null)
                {
                    return;
                }

                m_wndView.UpdateXPSkillList();
            }
            break;

            case WndMsgID.WND_MSG_HEROPREVIEWFRAME_GETHEROINFO:
            {
                if (m_wndView != null)
                {
                    // 购买卡牌,卡牌数据主动更新
                    int                      nHeroID = HeroDetailViewData.Instance.nHeroID;
                    IntPtrHelper             helper  = new IntPtrHelper();
                    cmd_get_hero_detail_info data    = new cmd_get_hero_detail_info();
                    data.nHeroID   = nHeroID;
                    data.nStarLv   = 1;
                    data.nStaticLv = 1;
                    ActorHeroInfo info = LogicDataCenter.playerSystemDataManager.GetActorAllHero();
                    if (info.dicEntityHeroInfo.ContainsKey(nHeroID))
                    {
                        data.nStarLv   = info.dicEntityHeroInfo[nHeroID].byStarLv;
                        data.nStaticLv = info.dicEntityHeroInfo[nHeroID].nLv;
                    }
                    IntPtr ptr = helper.toPtr <cmd_get_hero_detail_info>(ref data);
                    int    len = Marshal.SizeOf(data);

                    GameLogicAPI.onEntityEvent(EntityFactory.MainHeroID, (int)EntityLogicDef.ENTITY_CMD_REQ_UPGRADESTARANDHEROPRO, len, "", ptr, len);
                }
            }
            break;

            case WndMsgID.WND_MSG_HERODETAIL_UPDATEGOLD:
            {
                if (m_wndView != null && IsVisible())
                {
                    UIMsgCmdData uiData = (UIMsgCmdData)msgData;
                    m_wndView.UpdateUpStarGoldView(uiData.nParam);
                }
            }
            break;

            case WndMsgID.WND_ID_HEROTALENTVIEW_UPDATESTATICTALENT:
            {
                if (m_wndView != null && IsVisible())
                {
                    m_wndView.OnUpdateHeroTalent();
                }
            }
            break;

                #region 新手引导相关
            case WndMsgID.WND_MSG_HERODETAIL_GUIDE_ACTIONBEGIN:
            {
                UGuideWidgetMsgData cmdData = (UGuideWidgetMsgData)msgData;

                if (m_wndView != null && cmdData != null)
                {
                    m_wndView.GuideActionBegin(cmdData);
                }
            }
            break;

            case WndMsgID.WND_MSG_HERODETAIL_GUIDE_ACTIONEND:
            {
                UGuideWidgetMsgData cmdData = (UGuideWidgetMsgData)msgData;

                if (m_wndView != null && cmdData != null)
                {
                    m_wndView.GuideActionEnd(cmdData);
                }
            }
            break;

                #endregion
            default:
                break;
            }
        }
Exemplo n.º 6
0
        void ReflushMoneyZone()
        {
            int nCurPoint  = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_TICKET);
            int nNeedPoint = 0;

            if (m_curGoodsConfig.nNumLimitID > 0)
            {
                nNeedPoint = LogicDataCenter.pointShopDataManager.CalcNumLimitPrice(m_curGoodsConfig.nNumLimitID, m_curGoodsConfig.nSellID, 0, m_nBuyNum);
            }
            else
            {
                nNeedPoint = m_curGoodsConfig.nPointPrice * m_nBuyNum;
            }

            if (nNeedPoint > 0)
            {
                pointPriceFrame.SetActive(true);

                int nLeftPoint = nCurPoint - nNeedPoint;
                curPointText.text  = nCurPoint.ToString();
                needPointText.text = nNeedPoint.ToString();
                leftPointText.text = nLeftPoint.ToString();
                if (nLeftPoint < 0)
                {
                    leftPointText.color = UDefines.CommomColor(ECommonColor.ECC_Red1);
                }
                else
                {
                    leftPointText.color = UDefines.CommomColor(ECommonColor.ECC_Blue1);
                }
            }
            else
            {
                pointPriceFrame.SetActive(false);
            }

            //int nCurBindGold = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_BINDGOLD);
            int nCurBindGold = EntityFactory.MainHeroView.Property.GetNumProp(ENTITY_PROPERTY.PROPERTY_GOLD);
            int nNeedMoney   = 0;

            if (m_curGoodsConfig.nNumLimitID > 0)
            {
                nNeedMoney = LogicDataCenter.pointShopDataManager.CalcNumLimitPrice(m_curGoodsConfig.nNumLimitID, m_curGoodsConfig.nSellID, 1, m_nBuyNum);
            }
            else
            {
                nNeedMoney = m_curGoodsConfig.nMoneyPrice * m_nBuyNum;
            }

            if (nNeedMoney > 0)
            {
                moneyPriceFrame.SetActive(true);
                int nLeftMoney = nCurBindGold - nNeedMoney;
                curMoneyText.text  = nCurBindGold.ToString();
                needMoneyText.text = nNeedMoney.ToString();
                leftMoneyText.text = nLeftMoney.ToString();
                if (nLeftMoney < 0)
                {
                    leftMoneyText.color = UDefines.CommomColor(ECommonColor.ECC_Red1);
                }
                else
                {
                    leftMoneyText.color = UDefines.CommomColor(ECommonColor.ECC_Gold1);
                }
            }
            else
            {
                moneyPriceFrame.SetActive(false);
            }

            pointBuyBtn.interactable = true;
            moneyBuyBtn.interactable = true;
            if (m_curPrizeConfig.nPrizeType == (int)EMActorPrizeType.ACTOR_PRIZE_HERO)
            {
                int           nHeroID       = m_curPrizeConfig.nPrizeParam[0];
                ActorHeroInfo actorHeroInfo = LogicDataCenter.playerSystemDataManager.GetActorAllHero();
                if (actorHeroInfo.dicEntityHeroInfo.ContainsKey(nHeroID) && actorHeroInfo.dicEntityHeroInfo[nHeroID].bIsBuy > 0)
                {
                    pointBuyBtn.interactable = false;
                    moneyBuyBtn.interactable = false;
                }
            }
        }
Exemplo n.º 7
0
        public bool UpdateRoomHeroList(int nUpdateHeroID)
        {
            int           nUnlockTime = 0;
            ActorHeroInfo info        = LogicDataCenter.playerSystemDataManager.GetActorAllHero();

            if (info.dicEntityHeroInfo.ContainsKey(nUpdateHeroID))
            {
                cmd_entity_hero_info heroInfo = info.dicEntityHeroInfo[nUpdateHeroID];
                nUnlockTime = (int)heroInfo.ulUnlockTime;
            }

            foreach (UTileViewItemRoomHero item in this.DataSource)
            {
                if (item.nHeroIconId == nUpdateHeroID)
                {
                    if (item.bIsHaveHero)
                    {
                        return(false);
                    }

                    item.nUnlockTime = nUnlockTime;
                    item.bIsHaveHero = true;
                    if (!item.bIsLockByHero && !item.bIsLockByComputer)
                    {
                        item.Lock = false;
                    }

                    break;
                }
            }
            this.DataSource.Sort(CompareMemberList);

            foreach (UTileViewItemRoomHero item in this.SelectHeroData)
            {
                if (item.nHeroIconId == nUpdateHeroID)
                {
                    item.nUnlockTime = nUnlockTime;
                    item.bIsHaveHero = true;
                    if (!item.bIsLockByHero && !item.bIsLockByComputer)
                    {
                        item.Lock = false;
                    }

                    break;
                }
            }
            this.SelectHeroData.Sort(CompareMemberList);

            foreach (UTileViewItemRoomHero item in this.SelectHeroDataFilter)
            {
                if (item.nHeroIconId == nUpdateHeroID)
                {
                    item.nUnlockTime = nUnlockTime;
                    item.bIsHaveHero = true;
                    if (!item.bIsLockByHero && !item.bIsLockByComputer)
                    {
                        item.Lock = false;
                    }

                    break;
                }
            }
            this.SelectHeroDataFilter.Sort(CompareMemberList);

            UpdateItem();
            return(true);
        }