Beispiel #1
0
        public override void Excute()
        {
            int count = actionArg;

            for (int i = 0; i < count; i++)
            {
                if (target.Data.HandCardList.Count >= BattleMgr.MAX_HAND_CARD_COUNT)
                {
                    return;
                }
                if (target.Data.CurrentCardList.Count <= 0)
                {
                    for (int j = 0; j < target.Data.CardList.Count; j++)
                    {
                        target.Data.CurrentCardList.Add(new BattleCardData(target.Data.CardList[j].Data.Id, target.Data.CardList[j].Owner));
                    }
                    //playerData.CurrentCardList = new List<BattleCardData>(playerData.CardList);
                }
                BattleCardData card = target.Data.CurrentCardList[target.Data.CurrentCardList.Count - 1];
                target.Data.CurrentCardList.Remove(card);
                BattleCardData drawedCard = new BattleCardData(card.CardId, owner);
                owner.Data.HandCardList.Add(drawedCard);
                battleMgr.AddUIAction(new UIAction.UIDrawOppCard(drawedCard));
            }
        }
Beispiel #2
0
 public UIBattleCard GetUIBattleCard(BattleCardData cardData)
 {
     if (dicBattleCard.ContainsKey(cardData))
     {
         return(dicBattleCard[cardData]);
     }
     return(null);
 }
Beispiel #3
0
 /// <summary>
 /// 应用卡牌的效果
 /// </summary>
 /// <param name="cardData"></param>
 public void ApplyCardEffect(BattleCardData cardData)
 {
     cardData.Owner.Data.UsedCardList.Add(cardData);
     cardData.Owner.Data.MP -= cardData.Data.Spending;
     for (int i = 0; i < cardData.Data.ActionTypes.Count; i++)
     {
         ApplyAction(cardData.Data.ActionTypes[i], cardData.Data.ActionParams[i], cardData.Data.ActionParams2[i], cardData, cardData.Owner, null, cardData);
     }
 }
 public override int Excute(int damage)
 {
     if (sourceData.ItemType == BattleEffectItemType.Card)
     {
         BattleCardData cardData = sourceData as BattleCardData;
         battleMgr.SetRoundCounter("CardGroup" + cardData.Data.GroupId, 1);
         int count = battleMgr.GetBattleCounter("CardGroup" + cardData.Data.GroupId);
         return(damage + count * actionArg);
     }
     Debug.LogError("不支持非卡牌用此效果!");
     return(damage);
 }
Beispiel #5
0
    public UIBattleCard CreateBattleCard(BattleCardData cardData, UIGrid parentGrid)
    {
        GameObject newCard = GameObject.Instantiate(m_BattleCardTemplate, parentGrid.transform);

        newCard.SetActive(true);
        UIBattleCard battleCard = newCard.GetComponent <UIBattleCard>();

        battleCard.SetData(cardData, this);
        dicBattleCard.Add(cardData, battleCard);
        parentGrid.Reposition();
        return(battleCard);
    }
Beispiel #6
0
 public override void Excute()
 {
     for (int i = 0; i < actionArg; i++)
     {
         if (owner.Data.HandCardList.Count >= BattleMgr.MAX_HAND_CARD_COUNT)
         {
             return;
         }
         BattleCardData cardData = new BattleCardData(actionArg2, owner);
         owner.Data.HandCardList.Add(cardData);
         battleMgr.AddUIAction(new UIAction.UIGetCard(cardData));
     }
 }
Beispiel #7
0
    public void SetData(BattleCardData card, UIBattleForm form)
    {
        CardData  = card;
        cacheForm = form;
        m_TexIconRight.Load(card.Data.IconRightID);
        m_TexIconLeft.Load(card.Data.IconLeftID);
        m_lblName.text = I18N.Get(CardData.Data.Name);
        if (CardData.Data.Type != 0)
        {
            m_spAttack.gameObject.SetActive(false);
            m_lblAttackCount.text = "";
        }
        for (int i = 0; i < CardData.Data.ActionTypes.Count; i++)
        {
            switch ((BattleActionType)CardData.Data.ActionTypes[i])
            {
            case BattleActionType.None:
                break;

            case BattleActionType.AddBuff:
                break;

            case BattleActionType.Attack:
                if (CardData.Data.Type == 0)
                {
                    m_spAttack.gameObject.SetActive(true);
                    m_lblAttackCount.text = CardData.Data.ActionParams[i].ToString();
                }
                break;

            case BattleActionType.RecoverHP:
                break;

            case BattleActionType.RecoverMP:
                break;

            case BattleActionType.DrawCard:
                break;

            default:
                break;
            }
        }
        m_spExpand.gameObject.SetActive(true);
        m_lblExpandCount.text = CardData.Data.Spending.ToString();
        if (card.Owner != Game.BattleManager.MyPlayer)
        {
            m_ContentRoot.SetActive(false);
        }
    }
Beispiel #8
0
    public bool UseCard(BattleCardData battleCardData)
    {
        if (battleCardData.Data.Spending <= battleCardData.Owner.Data.MP)
        {
            battleCardData.Owner.Data.HandCardList.Remove(battleCardData);
            UIAction.UIUseCard useCard = new UIAction.UIUseCard(battleCardData);
            useCard.AddBindUIAction(new UIAction.UIMpSpend(battleCardData.Owner, battleCardData.Data.Spending));
            AddUIAction(useCard);

            //ApplyCardEffect(battleCardData);
            battleCardData.Owner.ApplyCardEffect(battleCardData);
            return(true);
        }
        return(false);
    }
Beispiel #9
0
        public override void Excute()
        {
            //与伤害无关的buff,通过通用触发
            List <BattleCardData> handList = target.Data.HandCardList;

            if (UnityEngine.Random.Range(0, 100) < actionArg)
            {
                if (owner.Data.HandCardList.Count >= BattleMgr.MAX_HAND_CARD_COUNT)
                {
                    return;
                }
                int            cardIndex = UnityEngine.Random.Range(0, handList.Count);
                BattleCardData cardData  = new BattleCardData(handList[cardIndex].CardId, owner);
                owner.Data.HandCardList.Add(cardData);
                battleMgr.AddUIAction(new UIAction.UIGetOppCard(handList[cardIndex], cardData));
                handList.Remove(handList[cardIndex]);
            }
        }
Beispiel #10
0
 /// <summary>
 ///
 /// </summary>
 /// <param name="playerData"></param>
 /// <param name="count"></param>
 public void DrawCard(BattlePlayerData playerData, int count = 1)
 {
     for (int i = 0; i < count; i++)
     {
         if (playerData.HandCardList.Count >= MAX_HAND_CARD_COUNT)
         {
             return;
         }
         if (playerData.CurrentCardList.Count <= 0)
         {
             for (int j = 0; j < playerData.CardList.Count; j++)
             {
                 playerData.CurrentCardList.Add(new BattleCardData(playerData.CardList[j].Data.Id, playerData.CardList[j].Owner));
             }
             //playerData.CurrentCardList = new List<BattleCardData>(playerData.CardList);
         }
         BattleCardData card = playerData.CurrentCardList[UnityEngine.Random.Range(0, playerData.CurrentCardList.Count)];
         playerData.CurrentCardList.Remove(card);
         card.Owner.Data.HandCardList.Add(card);
         AddUIAction(new UIAction.UIDrawCard(card));
     }
 }
Beispiel #11
0
        public override void Excute()
        {
            List <BattleCardData> handList = target.Data.HandCardList;
            List <BattleCardData> sortList = new List <BattleCardData>(handList.Count);

            sortList.AddRange(handList);
            sortList.Sort((c1, c2) => c2.Data.Spending.CompareTo(c1.Data.Spending));
            if (actionArg > sortList.Count)
            {
                actionArg = sortList.Count;
            }
            for (int i = 0; i < actionArg; i++)
            {
                if (owner.Data.HandCardList.Count >= BattleMgr.MAX_HAND_CARD_COUNT)
                {
                    return;
                }
                BattleCardData cardData = new BattleCardData(sortList[i].CardId, owner);
                owner.Data.HandCardList.Add(cardData);
                handList.Remove(sortList[i]);
                battleMgr.AddUIAction(new UIAction.UIGetOppCard(sortList[i], cardData));
            }
        }
Beispiel #12
0
        public override void Excute()
        {
            int count = actionArg;

            for (int i = 0; i < count; i++)
            {
                if (owner.Data.HandCardList.Count >= BattleMgr.MAX_HAND_CARD_COUNT)
                {
                    return;
                }
                if (owner.Data.CurrentCardList.Count <= 0)
                {
                    for (int j = 0; j < owner.Data.CardList.Count; j++)
                    {
                        owner.Data.CurrentCardList.Add(new BattleCardData(owner.Data.CardList[j].Data.Id, owner.Data.CardList[j].Owner));
                    }
                    //playerData.CurrentCardList = new List<BattleCardData>(playerData.CardList);
                }
                BattleCardData card = owner.Data.CurrentCardList[UnityEngine.Random.Range(0, owner.Data.CurrentCardList.Count)];
                owner.Data.CurrentCardList.Remove(card);
                owner.Data.HandCardList.Add(card);
                battleMgr.AddUIAction(new UIAction.UIDrawCard(card));
            }
        }
Beispiel #13
0
 public UIDrawCard(BattleCardData data) : base()
 {
     CardData = data;
 }
Beispiel #14
0
 public UIUseCard(BattleCardData cardData) : base()
 {
     CardData = cardData;
 }
Beispiel #15
0
 public UIDrawOppCard(BattleCardData cardData) : base()
 {
     DrawedCard = cardData;
 }
Beispiel #16
0
 public UIGetOppCard(BattleCardData originCard, BattleCardData nowCard) : base()
 {
     OriginCard = originCard;
     NowCard    = nowCard;
 }