Esempio n. 1
0
    }                                           //卡牌类型 CardType

    public CardInstance(uint tplId)
    {
        instId     = CardTool.GetUniCardInstId();
        this.tplId = tplId;

        this.cardType = CardTemplateData.GetData(tplId).nType;
    }
Esempio n. 2
0
    //自身回合结束处理
    private IEnumerator SelfBoutEndHandle()
    {
        FighterData boutEndFighterData = (FighterData)_battleModel.selfData.Clone();

        Message.Send(MsgType.SELF_BOUT_END, boutEndFighterData);

        //虚无卡牌,在回合结束时消耗
        var handListCopy = new List <CardInstance>(_battleModel.GetHandList());

        foreach (var handCard in handListCopy)
        {
            CardTemplate cardTpl = CardTemplateData.GetData(handCard.tplId);
            if (cardTpl == null)
            {
                continue;
            }

            if (cardTpl.bEthereal)
            {
                _battleModel.ExhaustHandCard(handCard);
            }
        }

        //回合结束buff结算
        SettleBuffOnBoutEnd(_battleModel.selfData);

        //手牌飞入弃牌堆
        handListCopy = new List <CardInstance>(_battleModel.GetHandList());
        foreach (var handCard in handListCopy)
        {
            _battleModel.MoveHandCardToUsed(handCard);
        }
        yield return(new WaitForSeconds(AnimationTime.HAND_TO_USED));
    }
Esempio n. 3
0
    // 构造函数
    public CardFighter(int ID, int templateID, int level)
    {
        this.ID       = ID;
        this.cardData = DataManager.GetInstance().cardData[templateID];
        this.Level    = level;

        // 初始化技能
        InitSkill();

        // 重置数据
        Reset();
    }
Esempio n. 4
0
        //尝试使用卡牌
        private bool TryUseCard(CardInstance cardInstance)
        {
            if (cardInstance == null)
            {
                return(false);
            }
            CardTemplate template = CardTemplateData.GetData(cardInstance.tplId);

            if (template == null)
            {
                return(false);
            }
            if (_battleModel.curCost < template.iCost)  //如果费用不足,todo:根据卡牌实例里的费用
            {
                return(false);
            }
            switch (template.nTargetType)
            {
            case CardTargetType.ONE_ENEMY:
                //判断是否鼠标放置在某个敌人上面 是就对敌人使用
                if (ftEnemy.rootContainer.HitTest(Stage.inst.touchPosition, true) == ftEnemy.rootContainer)
                {
                    _manager.UseSkillCard(cardInstance, template, ftEnemy.instId);
                    //_battleModel.UseSkillCard(cardInstance, template, ftEnemy.instId);
                    return(true);
                }
                break;

            case CardTargetType.SELF:
            case CardTargetType.ALL_ENEMY:
            case CardTargetType.NONE:
                //判断是否超过某个高度 是就使用
                if (Stage.inst.touchPosition.y < _skillUseY)
                {
                    _manager.UseSkillCard(cardInstance, template);
                    //_battleModel.UseSkillCard(cardInstance, template);
                    return(true);
                }
                break;

            default:
                Debug.LogError("unhandle card targettype:" + template.nTargetType);
                return(false);
            }
            return(false);
        }
Esempio n. 5
0
 /// <summary>
 /// 设置卡牌信息
 /// </summary>
 /// <param name="drawCard"></param>
 internal void SetCard(CardInstance cardInst, bool checkUse = true)
 {
     _cardInst = cardInst;
     _template = CardTemplateData.GetData(cardInst.tplId);
     if (_template == null)
     {
         return;
     }
     if (_template.iCost == -1)
     {
         txtCost.text = "X";
     }
     else
     {
         txtCost.text = _template.iCost.ToString();
     }
     txtName.text = _template.szName;
     txtType.text = GetTypeDesc(_template.nType);
     RefreshDesc();
     UpdateUsable(checkUse);
 }
Esempio n. 6
0
 private static void Add(CardTemplateData card)
 {
     _templates[card.Id] = new CardTemplate(card.Type, card.PieceType, card.Title,
                                            card.ManaCost, card.Power, card.Health, card.Model);
 }