// 更新单个格子 为队伍编辑 void UpdateTeamItem(CSItem card, Team.EDITTYPE type) { if (null != card && !SortByOccRace(card.IDInTable)) { // 格子不够增加格子 if (false == m_gridList.ContainsKey(m_tempIndex)) { ExpandOneGrid(); } UICardItem item = m_gridList[m_tempIndex]; HeroInfo heroInfo = GameTable.HeroInfoTableAsset.Lookup(card.IDInTable); if (null == heroInfo) { Debug.LogWarning("UpdateTeamItem null == heroInfo item.IDInTable:" + card.IDInTable); } else { OperateCardList.Singleton.m_leadShipCost = OperateCardList.Singleton.m_leadShipCost + heroInfo.Cost; item.UpdateOperateTeam(card, m_cardSortUI.GetLastSortType(), type, m_tempIndex); OperateCardList.Singleton.m_hadItemList.Add(card.Guid); } m_tempIndex++; } }
// 为队伍相关编辑 更新格子 void OnUpdateItemForTeam() { // 领导力消耗 OperateCardList.Singleton.m_leadShipCost = 0; m_tempIndex = 1; // 先显示满足条件的卡牌 int teamIndex = Team.Singleton.m_curTeamIndex; CSItem card = null; OperateCardList.Singleton.m_hadItemList.Clear(); // 队伍特殊 顺序特别设置 // 编辑整个队伍 if (Team.Singleton.m_curEditType == Team.EDITTYPE.enALL) { // 主角色 card = CardBag.Singleton.GetCardByGuid(Team.Singleton.m_bagMainSlotId); UpdateTeamItem(card, Team.EDITTYPE.enMain); // 副角色 card = CardBag.Singleton.GetCardByGuid(Team.Singleton.m_bagDeputySlotId); UpdateTeamItem(card, Team.EDITTYPE.enDeputy); // 支持角色 card = CardBag.Singleton.GetCardByGuid(Team.Singleton.m_bagSupportSlotId); UpdateTeamItem(card, Team.EDITTYPE.enSupport); } // 编辑队伍中的单个角色 else { // 格子不够增加格子 if (false == m_gridList.ContainsKey(m_tempIndex)) { ExpandOneGrid(); } // 第一个格子 是个X UICardItem item = m_gridList[m_tempIndex]; item.SetXForOperateTeam(); m_tempIndex++; // 已选 主角色 card = Team.Singleton.GetCard(teamIndex, Team.EDITTYPE.enMain); UpdateTeamItem(card, Team.EDITTYPE.enMain); // 已选 副角色 card = Team.Singleton.GetCard(teamIndex, Team.EDITTYPE.enDeputy); UpdateTeamItem(card, Team.EDITTYPE.enDeputy); // 已选 支持角色 card = Team.Singleton.GetCard(teamIndex, Team.EDITTYPE.enSupport); UpdateTeamItem(card, Team.EDITTYPE.enSupport); } }
public void UpdateCardDetail(int index) { if (m_gridList.ContainsKey(index)) { UICardItem item = m_gridList[index]; if (item.IsHaveCardDetail()) { //更新卡牌详情 CardBag.Singleton.m_curOptinIndex = index; CardBag.Singleton.m_curOptinGuid = item.m_param.m_guid; CardBag.Singleton.OnShowCardDetail(); } } }
bool IsHaveCardDetail(int index) { if (!m_gridList.ContainsKey(index)) { return(false); } UICardItem item = m_gridList[index]; if (null == item) { return(false); } return(item.IsHaveCardDetail()); }
// 增加格子 index 格子唯一索引 从1开始,x,y为位置 void AddGrid(int index) { // 如果存在 则返回 if (m_gridList.ContainsKey(index)) { return; } UICardItem item = UICardItem.Create(); // 设置 父物体 item.SetParentWnd(FindChildComponent <UIGrid>("GridList").gameObject); string showNumStr = index.ToString("00000"); // String.Format("{0:00000}", index); item.SetRootName(showNumStr); m_gridList.Add(index, item); }
// 增加格子 index 格子唯一索引 void AddGrid(int index) { // 如果存在 则返回 if (m_gridList.ContainsKey(index)) { return; } UICardItem item = UICardItem.Create(); // 设置 父物体 item.SetParentWnd(m_gridItemList.gameObject); item.SetRootName(index.ToString()); // 设置回调函数 item.SetClickCallback(OnClickItem); item.SetPressCallback(OnClickLongPressItem); m_gridList.Add(index, item); }
// 更新 void UpdateInfo() { m_tempIndex = 1; // 不同类型显示内容不同 ShowCurTypeLayout(); // 排序好的列表 List <CSItemGuid> cardList = m_cardSortUI.GetSortReslut(); ENSortType sortType = m_cardSortUI.GetLastSortType(); // 显示卡牌列表 foreach (CSItemGuid itemGuid in cardList) { CSItem item = CardBag.Singleton.GetCardByGuid(itemGuid); if (null == item) { continue; } int cardID = item.IDInTable; HeroInfo heroInfo = GameTable.HeroInfoTableAsset.Lookup(cardID); if (null == heroInfo) { Debug.LogWarning("heroInfo == NULL heroInfo cardID:" + cardID); continue; } // 筛选 if (SortConditon(item)) { continue; } // 格子不够增加格子 if (false == m_gridList.ContainsKey(m_tempIndex)) { ExpandOneGrid(); } // 更新格子 UICardItem cardItem = m_gridList[m_tempIndex]; cardItem.UpdateOperate(item, sortType, m_tempIndex); m_tempIndex++; } // 把剩余的空格子图片置空 for (; m_tempIndex <= m_gridList.Count; m_tempIndex++) { UICardItem cardItem = m_gridList[m_tempIndex]; cardItem.SetEmpty(); cardItem.HideWindow(); } m_gridItemList.Reposition(); }
// 点击响应 public void OnClickItem(UICardItem item, ENSortType sortType) { }
public int m_index = 0; // 用来分辨在显示列表中的索引位置 用来判断是否是可以显示卡牌详情的标志 >0为 可以显示卡牌详情 static public UICardItem Create() { UICardItem self = UIManager.Singleton.LoadUI <UICardItem>("UI/UICardItem", UIManager.Anchor.Center); return(self); }
// 点击响应 public void OnClickItem(UICardItem item, ENSortType sortType) { CardUpdateProp.Singleton.OnShowCardUpdate(item.m_param.m_guid); //MainUIManager.Singleton.OnSwitchSingelUI(MainUIManager.EDUITYPE.enCardUpdate); }
// 点击响应 public void OnClickItem(UICardItem item, ENSortType sortType) { OperateCardList.Singleton.LevelUpItemOperation(item.m_param.m_guid); }
// 点击响应 public void OnClickTeamItem(UICardItem item, ENSortType sortType) { int leadship = 0; CSItem card = null; // 编辑全队 if (Team.Singleton.m_curEditType == Team.EDITTYPE.enALL) { // 要判断领导力 // 不在编队中 if (item.m_param.m_id == (int)Team.EDITTYPE.enNone) { // 点选角色 card = CardBag.Singleton.GetCardByGuid(item.m_param.m_guid); if (null != card) { leadship = Team.Singleton.GetAllCost() + GameTable.HeroInfoTableAsset.Lookup(card.IDInTable).Cost; } // 如果领导力不够 则返回 if (leadship > User.Singleton.GetLeadership()) { return; } Team.EDITTYPE type = Team.EDITTYPE.enNone; if (Team.Singleton.m_bagMainSlotId.Equals(CSItemGuid.Zero)) { Team.Singleton.m_bagMainSlotId = item.m_param.m_guid; type = Team.EDITTYPE.enMain; } else if (Team.Singleton.m_bagDeputySlotId == CSItemGuid.Zero) { Team.Singleton.m_bagDeputySlotId = item.m_param.m_guid; type = Team.EDITTYPE.enDeputy; } else if (Team.Singleton.m_bagSupportSlotId == CSItemGuid.Zero) { Team.Singleton.m_bagSupportSlotId = item.m_param.m_guid; type = Team.EDITTYPE.enSupport; } item.m_param.m_id = (int)type; item.UpdateOperateTeam(card, sortType, type, item.m_index); } // 在编队中 else { if (item.m_param.m_id == (int)Team.EDITTYPE.enMain) { Team.Singleton.m_bagMainSlotId = CSItemGuid.Zero; item.m_param.m_id = (int)Team.EDITTYPE.enNone; } else if (item.m_param.m_id == (int)Team.EDITTYPE.enDeputy) { Team.Singleton.m_bagDeputySlotId = CSItemGuid.Zero; item.m_param.m_id = (int)Team.EDITTYPE.enNone; } else if (item.m_param.m_id == (int)Team.EDITTYPE.enSupport) { Team.Singleton.m_bagSupportSlotId = CSItemGuid.Zero; item.m_param.m_id = (int)Team.EDITTYPE.enNone; } item.UpdateOperateTeam(card, sortType, Team.EDITTYPE.enNone, item.m_index); } } // 编辑单个队伍 else { // 如果是移除标志位 则移除当前 队伍成员 if (item.m_param.m_id == -1) { Team.Singleton.RemoveTeamMember(Team.Singleton.m_curTeamIndex, Team.Singleton.m_curEditType); Team.Singleton.UpdateTeamBagAllSlotId(); return; } // 如果是当前队伍中的队伍成员 则返回 if (Team.Singleton.IsCardInTheTeam(Team.Singleton.m_curTeamIndex, item.m_param.m_guid)) { return; } card = CardBag.Singleton.GetCardByGuid(item.m_param.m_guid); HeroInfo heroInfo = GameTable.HeroInfoTableAsset.Lookup(card.IDInTable); if (null == heroInfo) { Debug.LogWarning("null == heroInfo card.IDInTable:" + card.IDInTable); return; } // 将要被替换角色的领导力 CSItem replaceCard = Team.Singleton.GetCard(Team.Singleton.m_curTeamIndex, Team.Singleton.m_curEditType); int replaceCost = 0; if (null != replaceCard) { replaceCost = GameTable.HeroInfoTableAsset.Lookup(replaceCard.IDInTable).Cost; } // 要判断领导力 // 如果领导力不够 则返回 if (OperateCardList.Singleton.m_leadShipCost - replaceCost + heroInfo.Cost > User.Singleton.GetLeadership()) { return; } // 添加 if (item.m_param.m_id != -1) { Team.Singleton.AddTeamMember(Team.Singleton.m_curTeamIndex, Team.Singleton.m_curEditType, item.m_param.m_guid); } Team.Singleton.UpdateTeamBagAllSlotId(); } }
// 点击响应 public void OnClickItem(UICardItem item, ENSortType sortType) { ShowRepresentativeCardInfo(item.m_param.m_guid); m_nowSelectCRGuid = item.m_param.m_guid; }