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); }
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); } } }
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(); }
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); } }
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; } }
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; } } }
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); }