/// <summary>刷新英雄信息</summary> /// <param name="item"></param> void UpdateHeroGrid(UIGridItem item) { if (item == null || item.oData == null || item.mScripts == null) { return; } //item.onClick = SetHeroItem; FightCardMsg info = item.oData as FightCardMsg; UITexture texture = item.mScripts[0] as UITexture; UILabel name = item.mScripts[1] as UILabel; UILabel leftNumLab = item.mScripts[2] as UILabel; UILabel rightNumLab = item.mScripts[3] as UILabel; TD_Card card = CardConfig.GetItem(info.cardId); if (card == null) { Debug.LogError("no this card cfg:" + info.cardId); return; } name.text = card.name; LoadSprite.LoaderCard(texture, card.res); }
/// <summary> /// 刷新上阵卡牌信息 /// </summary> /// <param name="item"></param> void UpdateCardFightGrid(UIGridItem item) { if (item == null || item.oData == null || item.mScripts == null) { return; } CardDataMsg info = item.oData as CardDataMsg; UILabel nofight = item.mScripts[0] as UILabel; UILabel fight = item.mScripts[1] as UILabel; UILabel cardName = item.mScripts[2] as UILabel; UITexture head = item.mScripts[3] as UITexture; UILabel skillType = item.mScripts[4] as UILabel; nofight.gameObject.SetActive(info.configId < 4); fight.gameObject.SetActive(info.configId > 4); item.name = "fight" + item.miCurIndex; if (fight.gameObject.activeSelf) { TD_Card card = CardConfig.GetItem(info.configId); cardName.text = card.name; LoadSprite.LoaderCard(head, card.res); skillType.text = UtilTools.GetSKillTypeName((int)card.type); } }
/// <summary>检测卡牌当前等级技能是否有使用目标</summary> /// <param name="cfg"></param> /// <param name="lv"></param> /// <returns></returns> public static bool CheckCardSkillHaveTarget(TD_Card cfg, int lv) { if (null == cfg) { return(false); } if (lv <= 0) { lv = 1; } string skillStr = cfg.skill_list; string[] skills = skillStr.Split(';'); string curstr = skills[lv - 1]; if (curstr.IsNullOrEmpty()) { return(false); } string[] skillInfo = curstr.Split(':'); string useSkill = skillInfo[0]; TD_Skill data = SkillConfig.GetItem(useSkill.ToInt()); return(data.effect_target.IsNullOrEmpty()); }
public override void onloaded(AssetBundles.NormalRes data) { byte[] asset = (data as AssetBundles.BytesRes).m_bytes; if (asset == null) { return; } m_data = new List <TD_Card>(); TbXmlNode docNode = TbXml.Load(asset).docNode; if (docNode == null) { return; } List <TbXmlNode> xmlNodeList = docNode.GetNodes("Object/Property"); int xmlNodeListLength = xmlNodeList.Count; if (xmlNodeListLength < 1) { return; } TD_Card item; for (int i = 0; i < xmlNodeListLength; ++i) { TbXmlNode node = xmlNodeList[i] as TbXmlNode; item = new TD_Card(); item.id = node.GetIntValue("card_id"); item.res = node.GetStringValue("res"); item.name = node.GetStringValue("name"); item.type = (E_CardType)node.GetIntValue("card_type"); item.type1 = node.GetStringValue("card_type1"); item.skill_list = node.GetStringValue("skill_list"); m_data.Add(item); } asset = null; if (null != m_callBack) { m_callBack(); m_callBack = null; } base.onloaded(data); }
/// <summary> /// 更换上阵卡牌 /// </summary> /// <param name="card"></param> /// <param name="index"></param> public void ChangeFightCard(int index) { CardDataMsg info = panel.fightGrid.GetCustomDataItem(index) as CardDataMsg; CardMsg msg = null; // 此位置无上阵卡牌 if (info.configId < 4) { msg = new CardMsg { teamUUid = cardInfoList.teamId, teamHeroUUid = cardInfoList.heroId, oldCardId = 0, newCardId = changeCardId, }; } // 此位置有上阵卡牌,进行替换 else { msg = new CardMsg { teamUUid = cardInfoList.teamId, teamHeroUUid = cardInfoList.heroId, oldCardId = info.configId, newCardId = changeCardId, }; TD_Card card = null; for (int i = 0; i < listObj.Count; ++i) { card = listObj[i] as TD_Card; if (card.id == info.configId) { card.isFight = 0; panel.cardGrid.UpdateCustomData(card); } } HeroTeamMediator.heroTeamMediator.dropInfo.skillID.Remove(info.configId); } HeroTeamMediator.heroTeamMediator.dropInfo.skillID.Add(changeCardId); NSocket.GetInstance().SendData(Request.CardEnterTeamReq, msg); info.configId = changeCardId; info.isFight = 1; // 上阵的卡牌 drapCard.isFight = 1; int fightCount = UtilTools.IntParse(panel.cardCount.text.Split('/')[0]) + 1; panel.cardCount.text = string.Format("{0}/{1}", fightCount, cardInfoList.cardList.Count); panel.fightGrid.UpdateCustomData(info); panel.cardGrid.UpdateCustomData(drapCard); HeroTeamMediator.heroTeamMediator.panel.cardGrid.UpdateCustomData(HeroTeamMediator.heroTeamMediator.dropInfo); }
protected override void OnDragStart() { UIDragDropRoot.root = SetHeroMediator.setHeroMediator.panel.cloneScrollView.GetComponent <UIDragDropRoot>().transform; cardInfo = this.GetComponent <UIGridItem>().oData as TD_Card; if (cardInfo.isFight == 1 || cardInfo.isHave == 0) { return; } SetHeroMediator.setHeroMediator.changeCardId = cardInfo.id; SetHeroMediator.setHeroMediator.drapCard = this.GetComponent <UIGridItem>().oData as TD_Card; chooseItem = this.GetComponent <UIGridItem>().miCurIndex; base.OnDragStart(); SetHeroMediator.setHeroMediator.SetHideCardTeam(chooseItem, false); }
/// <summary>获取项</summary> /// <returns>TD_Hero</returns> public static TD_Card GetItem(int id) { TD_Card itm = null; int cnt = m_data.Count; for (int i = 0; i < cnt; i++) { if (m_data[i].id.CompareTo(id) == 0) { return(m_data[i]); } } return(itm); }
public void ShowCardInfo(TD_Card info) { UITexture head = item.mScripts[0] as UITexture; SymbolLabel skill1Des = item.mScripts[1] as SymbolLabel; SymbolLabel skill2Des = item.mScripts[2] as SymbolLabel; UILabel cardName = item.mScripts[3] as UILabel; UILabel skillType = item.mScripts[4] as UILabel; UISprite isFight = item.mScripts[5] as UISprite; LoadSprite.LoaderCard(head, info.res); isFight.gameObject.SetActive(false); cardName.text = info.name; skillType.text = UtilTools.GetSKillTypeName((int)info.type); skill1Des.text = "4444444{01}4444"; skill2Des.text = "4444444{01}4444"; this.transform.DOLocalMove(new Vector3(-220, 0, 0), 0.1f, false); this.transform.DOScale(Vector3.one * 2, 0.1f); }
public void UpdateDisplay() { if (null == SerData || SerData.pid == 0) { gameObject.SetActive(false); return; } gameObject.SetActive(true); TD_Card cdCfg = CardConfig.GetItem(SerData.cardId); nameLab.text = cdCfg.name; curExpLab.text = SerData.exp.ToString(); maxExLab.text = "2"; LoadSprite.LoaderCard(this.cardImg, cdCfg.res); }
/// <summary> /// 刷新卡牌信息 /// </summary> /// <param name="item"></param> void UpdateCardGrid(UIGridItem item) { if (item == null || item.oData == null || item.mScripts == null) { return; } TD_Card info = item.oData as TD_Card; UITexture head = item.mScripts[0] as UITexture; SymbolLabel skill1Des = item.mScripts[1] as SymbolLabel; SymbolLabel skill2Des = item.mScripts[2] as SymbolLabel; UILabel cardName = item.mScripts[3] as UILabel; UILabel skillType = item.mScripts[4] as UILabel; UISprite isFight = item.mScripts[5] as UISprite; LoadSprite.LoaderCard(head, info.res); item.onClick = ShowCardInfoPanel; isFight.gameObject.SetActive(info.isFight == 1); cardName.text = info.name; skillType.text = UtilTools.GetSKillTypeName((int)info.type); skill1Des.text = "4444444{01}4444"; skill2Des.text = "4444444{01}4444"; }
/// <summary> /// 刷新卡组信息 /// </summary> /// <param name="hero"></param> void UpdateCardTeamInfo(TD_Hero hero) { for (int i = 0; i < cardInfoList.cardList.Count; ++i) { TD_Card card = CardConfig.GetItem(cardInfoList.cardList[i].configId); card.isFight = cardInfoList.cardList[i].isFight; card.isHave = 1; cardList.Add(card); } CardDataMsg info = null; for (int i = 0; i < hero.card_list.Split(';').Length; ++i) { int id = hero.card_list.Split(';')[i].ToInt(); info = CheckCardIsHave(id); if (info != null) { continue; } TD_Card card = CardConfig.GetItem(id); card.isFight = 0; card.isHave = 0; cardList.Add(card); } listObj = new List <object>(); for (int i = 0; i < cardList.Count; ++i) { listObj.Add(cardList[i]); } panel.cardGrid.AddCustomDataList(listObj); List <object> list = new List <object>(); for (int i = 0; i < cardInfoList.cardList.Count; ++i) { if (cardInfoList.cardList[i].isFight == 1) { list.Add(cardInfoList.cardList[i]); } } if (list.Count < 4) { for (int i = 0; i < 4; ++i) { if (i >= list.Count) { CardDataMsg data = new CardDataMsg { configId = i, }; list.Add((object)data); } } } panel.fightGrid.AddCustomDataList(list); list.Clear(); if (panel.cardGrid.mDataSource.Count % 6 == 0) { dragIndex = panel.cardGrid.mDataSource.Count / 6; dragIndex--; } else { dragIndex = Mathf.FloorToInt(panel.cardGrid.mDataSource.Count * 1.0f / 6); } }
//拖拽Updata private void GameObjectDragAndDrog() { if (mDoMoveTimer > 0) { mDoMoveTimer -= Time.deltaTime; if (mDoMoveTimer < 0) { mDoMoveTimer = 0; } } if (Input.GetMouseButtonDown(0) && target == null) { RaycastHit hitInfo; target = ReturnGameObjectDrag(out hitInfo); if (target != null) { mMouseDownTargetPos = target.transform.position; isMouseDrag = true; screenPosition = EventCamera.WorldToScreenPoint(target.transform.position); offset = target.transform.position - EventCamera.ScreenToWorldPoint(new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z)); //Vector3 pt = target.transform.position.Clone(); //pt.y += 1.4f; //Vector3 screenPt = PVPManager.Instance.AvatarCamera.WorldToScreenPoint(pt); //Vector3 worldPt = PVPManager.Instance.FightCamera.ScreenToWorldPoint(screenPt); Vector3 worldPt = PVPManager.Instance.FightCamera.ScreenToWorldPoint(Input.mousePosition); worldPt.z = target.transform.position.z; PVPManager.SetArrowOrgPoint(worldPt); } } if (Input.GetMouseButtonUp(0)) { PVPManager.HideArrow(); RaycastHit hitInfo; if (UICardDrag.DragObject != null) { PureMVC.Patterns.Facade.Instance.SendNotification(NotificationID.Fight_ShowExpPan, false); GameObject totarget = ReturnGameObjectDrag(out hitInfo); FightPanel_CardItem cdItm = UICardDrag.DragObject.GetComponent <FightPanel_CardItem>(); TD_Card cdCfg = null; bool haveTarget = false; if (cdItm.SerData != null) { cdCfg = CardConfig.GetItem(cdItm.SerData.cardId); FightCommonUtil.CheckCardSkillHaveTarget(cdCfg, cdItm.SerData.exp); } Vector3 pos = Main.CameraUI.ScreenToWorldPoint(Input.mousePosition); if ( (PVPManager.IsMyTurn || Define.TestMsg) && pos.y > -0.25f && !haveTarget) { UICardDrag.DragObject = null; FightProxy.Instance.SendUseCard(cdItm.SerData.index, NetProtocal.UseType.CardType, 0); } else if (null != totarget) { CardRole cdRole = PVPManager.Instance.GetCardRoleByTransform(totarget.transform); CardRole mdRole = PVPManager.Instance.GetCardRoleByTransform(target.transform); if (PVPManager.IsMyTurn || Define.TestMsg) { if (null != cdItm.SerData && cdItm.SerData.pid != 0) { if (haveTarget) { FightProxy.Instance.SendUseCard(cdItm.SerData.index, NetProtocal.UseType.MoveType, cdRole.SerData.pos); } } else { Debug.Log("Card_To_Hero No Server Data!!!"); } } else { } UICardDrag.DragObject = null; } } else if (Input.GetMouseButtonUp(0) && null != target && mDoMoveTimer == 0) { GameObject oldtarget = target; isMouseDrag = false; mDoMoveTimer = 0.5f; GameObject totarget = ReturnGameObjectDrag(out hitInfo); CardRole oldCd = PVPManager.Instance.GetCardRoleByTransform(oldtarget.transform); canDrag = false; if (null != totarget && oldtarget != totarget) { CardRole toCd = PVPManager.Instance.GetCardRoleByTransform(totarget.transform); if (Define.VSTest) { PVPManager.Instance.ChangeSlotPostion(oldCd, toCd); oldtarget.transform.DOMove(toCd.transform.position, 1f); totarget.transform.DOMove(oldCd.transform.position, 1f).OnComplete(delegate() { canDrag = true; }); } else { int moveAdd = toCd.SerData.pos - oldCd.SerData.pos; if (Mathf.Abs(moveAdd) == 1) { FightProxy.Instance.SendMove(oldCd.SerData.index, moveAdd); } } } else { oldtarget.transform.DOMove(oldCd.transform.position, 1f).OnComplete(delegate() { canDrag = true; }); } } target = null; } if (isMouseDrag && target != null) { Vector3 currentScreenSpace = new Vector3(Input.mousePosition.x, Input.mousePosition.y, screenPosition.z); Vector3 currentScreenPt = EventCamera.ScreenToWorldPoint(currentScreenSpace); Vector3 currentPosition = currentScreenPt + offset; Vector3 oldPosition = target.transform.localPosition; if (!AllowXMove) { currentPosition.x = oldPosition.x; } if (!AllowYMove) { currentPosition.y = oldPosition.y; } if (!AllowZMove) { currentPosition.z = oldPosition.z; } //target.transform.localPosition = currentPosition; } }
private void OnDestroy() { left = null; right = null; cardInfo = null; }