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)); } }
public UIBattleCard GetUIBattleCard(BattleCardData cardData) { if (dicBattleCard.ContainsKey(cardData)) { return(dicBattleCard[cardData]); } return(null); }
/// <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); }
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); }
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)); } }
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); } }
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); }
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]); } }
/// <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)); } }
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)); } }
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)); } }
public UIDrawCard(BattleCardData data) : base() { CardData = data; }
public UIUseCard(BattleCardData cardData) : base() { CardData = cardData; }
public UIDrawOppCard(BattleCardData cardData) : base() { DrawedCard = cardData; }
public UIGetOppCard(BattleCardData originCard, BattleCardData nowCard) : base() { OriginCard = originCard; NowCard = nowCard; }