} //卡牌类型 CardType public CardInstance(uint tplId) { instId = CardTool.GetUniCardInstId(); this.tplId = tplId; this.cardType = CardTemplateData.GetData(tplId).nType; }
//自身回合结束处理 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)); }
// 构造函数 public CardFighter(int ID, int templateID, int level) { this.ID = ID; this.cardData = DataManager.GetInstance().cardData[templateID]; this.Level = level; // 初始化技能 InitSkill(); // 重置数据 Reset(); }
//尝试使用卡牌 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); }
/// <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); }
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); }