Esempio n. 1
0
    /// <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);
    }
Esempio n. 2
0
    /// <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);
        }
    }
Esempio n. 3
0
    /// <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());
    }
Esempio n. 4
0
    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);
    }
Esempio n. 5
0
    /// <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);
    }
Esempio n. 6
0
    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);
    }
Esempio n. 7
0
    /// <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);
    }
Esempio n. 8
0
    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);
    }
Esempio n. 9
0
    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);
    }
Esempio n. 10
0
    /// <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";
    }
Esempio n. 11
0
    /// <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);
        }
    }
Esempio n. 12
0
    //拖拽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;
        }
    }
Esempio n. 13
0
 private void OnDestroy()
 {
     left     = null;
     right    = null;
     cardInfo = null;
 }