Exemple #1
0
        public bool Equals(Player other)
        {
            if (ReferenceEquals(null, other))
            {
                return(false);
            }

            if (ReferenceEquals(this, other))
            {
                return(true);
            }

            return(CardStats.OrderBy(cs => cs.Key).SequenceEqual(other.CardStats.OrderBy(cs => cs.Key)) &&
                   ComputerDifficulty == other.ComputerDifficulty &&
                   ComputerPlayerId == other.ComputerPlayerId &&
                   Equals(ExperienceProgress, other.ExperienceProgress) &&
                   Equals(HumanPlayerId, other.HumanPlayerId) &&
                   IsHuman == other.IsHuman &&
                   LeaderId == other.LeaderId &&
                   LeaderPowerStats.OrderBy(lps => lps.Key).SequenceEqual(other.LeaderPowerStats.OrderBy(lps => lps.Key)) &&
                   PlayerCompletedMatch == other.PlayerCompletedMatch &&
                   PlayerMatchOutcome == other.PlayerMatchOutcome &&
                   PointStats.OrderBy(p => p.Key).SequenceEqual(other.PointStats.OrderBy(p => p.Key)) &&
                   Equals(RatingProgress, other.RatingProgress) &&
                   TeamId == other.TeamId &&
                   TeamPlayerIndex == other.TeamPlayerIndex &&
                   TimeInMatch.Equals(other.TimeInMatch) &&
                   UnitStats.OrderBy(us => us.Key).SequenceEqual(other.UnitStats.OrderBy(us => us.Key)) &&
                   WaveStats.OrderBy(ws => ws.Key).SequenceEqual(other.WaveStats.OrderBy(ws => ws.Key)));
        }
Exemple #2
0
    public void GetCard(CardStats card)
    {
        if (card.isBooked)
        {
            bookedCardsNumber--;
            freeBookedPlaces[card.cardInBookingPlaceNumber] = true;
        }

        PayChips(card);

        AddPoint(card.pointValue);

        AddCardGem(card.color);

        card.MoveToPlayer(this);

        nobleCardStash.CheckPlayerCardValues(this);

        if (!card.isBooked)
        {
            cardManager.PlaceCard(card.gameObject);
        }

        EndTurn();
    }
Exemple #3
0
 private void Start()
 {
     if (thisCard.GetComponent <CardStats>() != null)
     {
         thisCard = this.GetComponent <CardStats>();
     }
 }
Exemple #4
0
    public void PlayCard(CardStats cardStats)
    {
        //TODO: CHANGE STATS HERE DEPENDING ON WHAT CARD IS PLAYED
        Debug.Log(cardStats.GetStats());

        _parent.SetActive(false);
        _hub.SetActive(true);
    }
Exemple #5
0
 public void Start()
 {
     if (GetComponent <CardDisplay>() != null)
     {
         ThisCard        = GetComponent <CardDisplay>().card;
         gameObject.name = ThisCard.name;
     }
 }
Exemple #6
0
 public void Add(CardStats newStats)
 {
     if (nextCards.Contains(newStats))
     {
         return;
     }
     nextCards.Add(newStats);
 }
    private void ShowBigCard()
    {
        GameObject cardDetails = transform.parent.parent.parent.GetComponent <CollectionManager>().cardDetails;
        CardStats  cardStats   = GetComponent <CardStats>();

        cardDetails.SetActive(true);
        cardDetails.transform.Find("BigImage")
        .GetComponent <Image>()
        .sprite = Resources.Load <Sprite>("Cards/List/591x380/" + cardStats._id);

        if (cardStats.faction == "Special")
        {// Special Card
            cardDetails.transform.Find("BigEffect")
            .GetComponent <Image>()
            .sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats._idstr);
        }
        else
        {                                      // Unit Card or Leader
            if (cardStats.ability == "leader") // Leader Card
            {
                cardDetails.transform.Find("BigEffect")
                .GetComponent <Image>()
                .sprite = Resources.Load <Sprite>("Cards/EffectBox/Leader/" + cardStats._id);
            }
            else // Unit Card
            {
                if (cardStats.unique)
                {
                    cardDetails.transform.Find("BigEffect")
                    .GetComponent <Image>()
                    .sprite = Resources.Load <Sprite>("Cards/EffectBox/hero");
                }

                if (cardStats.ability != "")
                {
                    cardDetails.transform.Find("BigEffect")
                    .GetComponent <Image>()
                    .sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats.ability);
                }
                else if (!cardStats.unique)
                {
                    // No ability (normal unit)
                    if (cardStats.row == "close_range")
                    {
                        cardDetails.transform.Find("BigEffect")
                        .GetComponent <Image>()
                        .sprite = Resources.Load <Sprite>("Cards/EffectBox/agile");
                    }
                    else
                    {
                        cardDetails.transform.Find("BigEffect")
                        .GetComponent <Image>()
                        .sprite = Resources.Load <Sprite>("Cards/EffectBox/normal_unit");
                    }
                }
            }
        }
    }
    public void OnDrop(PointerEventData eventData)        //When a card is being dropped on the zone, it adds 1 card to the total and it checks if there are 2 cards
    {
        if (totalCards < 2)
        {
            currentCards [totalCards] = eventData.pointerDrag.gameObject;
            totalCards++;
            Debug.Log(eventData.pointerDrag.name + " was dropped on " + gameObject.name);
            if (totalCards > 2)
            {
                totalPoints = 0;
            }

            CardStats cardStats = eventData.pointerDrag.gameObject.GetComponent <CardStats> ();

            if (cardStats != null)               //Giving the cards a value
            {
                Debug.Log(cardStats.cardName);
                if (cardStats.cardName == "Lex")
                {
                    totalPoints += 4;
                }
                if (cardStats.cardName == "Luca")
                {
                    totalPoints += 5;
                }
                if (cardStats.cardName == "hahayes")
                {
                    totalPoints += 3;
                }
                if (cardStats.cardName == "Sam")
                {
                    totalPoints += 7;
                }
                if (cardStats.cardName == "Roggi")
                {
                    totalPoints += 9;
                }
                if (cardStats.cardName == "Freddi")
                {
                    totalPoints += 6;
                }
                if (cardStats.cardName == "Doge")
                {
                    totalPoints += 8;
                }
            }

            Draggable d = eventData.pointerDrag.GetComponent <Draggable> ();            //Changes the parent object of the card
            if (d != null)
            {
                if (typeOfItem == d.typeOfItem || typeOfItem == Draggable.slot.INVENTORY1)
                {
                    d.parentToReturnTo = this.transform;
                }
            }
        }
    }
Exemple #9
0
    //----------------------------------------On card creation-----------------------------------------------//
    private void OnCreation()
    {
        CardStats card = cardStats.GetComponent <CardStats>();

        // Change the artwork based on ID
        artworkImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/List/135x87/" + card._id);

        if (card.faction == "Special")
        {// Special Card:
            // Change to the corresponding special Icon
            natureImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Special/" + card._idstr);
            rowImage.GetComponent <Image>().color     = new Color(0, 0, 0, 0);
            abilityImage.GetComponent <Image>().color = new Color(0, 0, 0, 0);
        }
        else
        {// Unit Card or Leader:
            if (card.ability == "leader")
            {
                natureImage.GetComponent <Image>().color  = new Color(0, 0, 0, 0);
                rowImage.GetComponent <Image>().color     = new Color(0, 0, 0, 0);
                abilityImage.GetComponent <Image>().color = new Color(0, 0, 0, 0);
            }
            else
            {
                // Change the strength, strength text color and uniqueness image
                strengthImage.GetComponent <TextMeshProUGUI>().text = card.strength.ToString();
                if (card.unique)
                {
                    natureImage.GetComponent <Image>().sprite            = Resources.Load <Sprite>("Cards/Nature/unique");
                    strengthImage.GetComponent <TextMeshProUGUI>().color = new Color(255, 255, 255);
                }
                else
                {
                    natureImage.GetComponent <Image>().sprite            = Resources.Load <Sprite>("Cards/Nature/not_unique");
                    strengthImage.GetComponent <TextMeshProUGUI>().color = new Color(0, 0, 0);
                }
                // Change row Image
                rowImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Row/" + card.row);
                // Change the ability image
                if (card.ability == "")
                {
                    abilityImage.GetComponent <Image>().color = new Color(0, 0, 0, 0);
                }
                else
                {
                    if (card.ability.Contains("scorch"))
                    {
                        abilityImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Ability/scorch");
                    }
                    else
                    {
                        abilityImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/Ability/" + card.ability);
                    }
                }
            }
        }
    }
Exemple #10
0
 public void EasySet(CardStats x)//this doesn't help here, but helps log all the cards in general
 {
     Id         = x.getId();
     CardName   = x.getName();
     CardHealth = x.getHealth();
     CardPower  = x.getPower();
     card       = x.getCard();
     suit       = x.getSuit();
 }
Exemple #11
0
    public void BookCard(CardStats card)
    {
        card.MoveToPlayerBooks(this);

        cardManager.PlaceCard(card.gameObject);

        goldChipNumber++;
        bookedCardsNumber++;

        chipStashes.Find(c => c.stashColor == "GOL").GiveChipToPlayer(this);

        EndTurn();
    }
    public CardStats GetCardByName(string name)//returns a cardStats according to its id in the dictionary
    {
        CardStats originalCard = null;

        cardsDictionary.TryGetValue(name, out originalCard); //searches for the cardName of the dictionary
        if (originalCard == null)                            //if doesn't exists return null and finishes the function
        {
            return(null);
        }
        CardStats newInstance = Instantiate(originalCard); //se does exists, instantiates it

        newInstance.name = originalCard.cardName;          //to make sure the name is going to be the same
        return(newInstance);                               //returns the cardStats
    }
Exemple #13
0
    // Start is called before the first frame update
    void Start()
    {
        playerStatsScript   = GameObject.Find("Player").GetComponent <PlayerStats>();
        backgroundMouseFlag = GameObject.Find("Field Background").GetComponent <BackgroundMouseFlag>();

        selected      = false;
        myHUDPosition = transform.position;

        myCardStats   = GetComponent <CardStats>();
        myCardEffects = GetComponent <CardEffects>();
        myRenderer    = GetComponent <Renderer>();

        listOfAlliedUnitsToSpawn = new List <GameObject>();
    }
Exemple #14
0
 public CardStats GetNext()
 {
     if (cards.Count > 0)
     {
         int       index    = GetRandomIndex(cards);
         CardStats toReturn = cards[index];
         cards.RemoveAt(index);
         return(toReturn);
     }
     else
     {
         int index = GetRandomIndex(defaultCards);
         return(defaultCards[index]);
     }
 }
Exemple #15
0
 public void DisplayView(CardStats cs)
 {
     if (cs.card == null)
     {
         return;
     }
     cardNameText.text = cs.cardName;
     skillText.text    = cs.skill;
     type.text         = cs.type;
     artwork.sprite    = cs.card.artwork;
     manaCostText.text = cs.manacost.ToString();
     healthText.text   = cs.currentHealth.ToString();
     manaText.text     = cs.mana.ToString();
     damageText.text   = cs.physicalDamage.ToString();
 }
Exemple #16
0
    //--------------------------------------------Big info on the right--------------------------------------------//
    private void ShowBigInfo()
    {
        CardStats cardStats = GetComponent <CardDisplay>().cardStats.GetComponent <CardStats>();

        bigImage  = Instantiate(BigImage);
        bigEffect = Instantiate(BigEffect);

        bigImage.transform.SetParent(Canvas.transform, false);
        bigEffect.transform.SetParent(Canvas.transform, false);

        bigImage.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/List/591x380/" + cardStats._id);

        if (cardStats.faction == "Special")
        {// Special Card
            bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats._idstr);
        }
        else
        {                                      // Unit Card or Leader
            if (cardStats.ability == "leader") // Leader Card
            {
                bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/Leader/" + cardStats._id);
            }
            else // Unit Card
            {
                if (cardStats.unique)
                {
                    bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/hero");
                }

                if (cardStats.ability != "")
                {
                    bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/" + cardStats.ability);
                }
                else if (!cardStats.unique)
                {
                    // No ability (normal unit)
                    if (cardStats.row == "close_range")
                    {
                        bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/agile");
                    }
                    else
                    {
                        bigEffect.GetComponent <Image>().sprite = Resources.Load <Sprite>("Cards/EffectBox/normal_unit");
                    }
                }
            }
        }
    }
Exemple #17
0
        public void ApplyModifier(CardStats cardStat, sbyte value)
        {
            switch (cardStat)
            {
            case CardStats.Defense:
                DefenseModifier = value;
                return;

            case CardStats.Damage:
                DamageModifier = value;
                return;

            default:
                return;
            }
        }
Exemple #18
0
    private Card GenerateCard(int cardIndex, int[] cardDistribution, List <Global.Suits> suitPool)
    {
        var stats = new CardStats();

        stats.denomination = cardDistribution[cardIndex] % Global.denominations.Length;
        int suitAssignment = (int)Mathf.Floor(cardDistribution[cardIndex] / (float)Global.denominations.Length);

        stats.suit   = suitPool[suitAssignment];
        stats.turned = false;
        stats.id     = cardIndex;

        var newCard = Instantiate(cardPrefab);

        newCard.Initialize(stats);
        return(newCard);
    }
Exemple #19
0
    public void DrawCards()
    {
        for (int i = 0; i < 5; i++)
        {
            if (drawPile.Count == 0)
            {
                ShuffleDeck();
            }

            CardStats cardStats = drawPile[Random.Range(0, drawPile.Count)];
            drawPile.Remove(cardStats);
            hand.Add(cardStats);

            GameObject newCard = Instantiate(cardPrefab, cardSlots[i], false);
            newCard.GetComponent <Card>().cardStats = cardStats;
            newCard.GetComponent <Card>().position  = i;
        }
    }
Exemple #20
0
 public Card(string id, string name, Gui.Card card, Player parent, ZoneType zone)
 {
     _stats        = new CardStats(card.Stats);
     Name          = name;
     Type          = card.Type;
     Id            = id;
     Tags          = card.Tags;
     _parent       = parent;
     _zone         = zone;
     Target        = card.Target;
     Effects       = card.GetInterfaces <IEffect>();
     FirstTurnPlay = true;
     Parent.Game.Subscribe(this);
     foreach (var effect in Effects)
     {
         effect.SetParent(this);
     }
 }
Exemple #21
0
    public void Set(CardStats card)
    {
        List <CardStat> cardStats = card.GetStats();

        art.sprite = card.sprite;
        art.color  = (card.IsMastered()) ? dark : light;

        for (int i = 0; i < stats.Length; i++)
        {
            if (i < cardStats.Count)
            {
                stats[i].Set(cardStats[i]);
            }
            else
            {
                stats[i].Clear();
            }
        }
    }
Exemple #22
0
 void Update()
 {
     if (GetComponent <CardStats>() != null)
     {
         cs = GetComponent <CardStats>();
         if (cs.card == null)
         {
             return;
         }
         cardNameText.text = cs.cardName;
         skillText.text    = cs.skill;
         type.text         = cs.type;
         artwork.sprite    = cs.card.artwork;
         manaCostText.text = cs.manacost.ToString();
         healthText.text   = cs.currentHealth.ToString();
         manaText.text     = cs.mana.ToString();
         damageText.text   = cs.physicalDamage.ToString();
     }
 }
Exemple #23
0
    public void OnCardSelect()
    {
        if (isSelectable)
        {
            // If the turn is the player's and the card is his, hence the Tag
            if (controller.battleState == BattleState.PLAYERTURN && gameObject.CompareTag("Player") && !controller.PlayerInfo.CanDiscard)
            {
                // Lightoff any previous fields
                controller.LightoffField(true);
                controller.LightoffField(false);
                if (CheckSameCard())
                {
                    gameObject.GetComponent <CardHover>().isHoverable = true;
                    controller.selectedCard = null;
                    //Debug.Log("Player deselected a card !");
                }
                else
                {
                    gameObject.GetComponent <CardHover>().isHoverable = false;
                    controller.selectedCard = gameObject;
                    //Debug.Log("Player selected a new card!");
                    // Hightlights the appropriate field based on: Card Faction AND Card Row
                    controller.HighlightField(gameObject.GetComponent <CardDisplay>().cardStats.GetComponent <CardStats>(), true);
                }
            }
        }

        // Related to card swapping (Decoy)
        if (controller.swapActivated && !isSelectable)
        {
            CardStats card_stats = gameObject.GetComponent <CardDisplay>().cardStats.GetComponent <CardStats>();
            if (card_stats.faction != "Special" && !card_stats.unique && !(card_stats.ability == "leader"))
            {
                gameObject.GetComponent <CardHover>().DestroyEffect();
                controller.Decoy(card_stats._id, gameObject.tag, transform.parent.parent.name);
            }
            else
            {
                Debug.Log("Cannot Decoy !");
            }
        }
    }
Exemple #24
0
 public override int GetHashCode()
 {
     unchecked
     {
         var hashCode = CardStats?.GetHashCode() ?? 0;
         hashCode = (hashCode * 397) ^ ComputerDifficulty.GetHashCode();
         hashCode = (hashCode * 397) ^ ComputerPlayerId.GetHashCode();
         hashCode = (hashCode * 397) ^ (ExperienceProgress != null ? ExperienceProgress.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ (HumanPlayerId != null ? HumanPlayerId.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ IsHuman.GetHashCode();
         hashCode = (hashCode * 397) ^ LeaderId;
         hashCode = (hashCode * 397) ^ (LeaderPowerStats?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ PlayerCompletedMatch.GetHashCode();
         hashCode = (hashCode * 397) ^ PlayerMatchOutcome.GetHashCode();
         hashCode = (hashCode * 397) ^ (PointStats?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (RatingProgress != null ? RatingProgress.GetHashCode() : 0);
         hashCode = (hashCode * 397) ^ TeamId;
         hashCode = (hashCode * 397) ^ TeamPlayerIndex;
         hashCode = (hashCode * 397) ^ TimeInMatch.GetHashCode();
         hashCode = (hashCode * 397) ^ (UnitStats?.GetHashCode() ?? 0);
         hashCode = (hashCode * 397) ^ (WaveStats?.GetHashCode() ?? 0);
         return(hashCode);
     }
 }
Exemple #25
0
    public void DrawCard(int numberOfCards)
    {
        for (int i = 0; i < numberOfCards; i++)
        {
            if (drawPile.Count == 0)
            {
                ShuffleDeck();
            }

            for (int j = 0; j < cardSlots.Count; j++)
            {
                if (cardSlots[j].childCount == 0)
                {
                    CardStats drawnCard = drawPile[Random.Range(0, drawPile.Count)];
                    drawPile.Remove(drawnCard);
                    hand.Add(drawnCard);

                    GameObject newCard = Instantiate(cardPrefab, cardSlots[j], false);
                    newCard.GetComponent <Card>().position  = j;
                    newCard.GetComponent <Card>().cardStats = drawnCard;
                }
            }
        }
    }
Exemple #26
0
    public void Initialize(CardStats stats)
    {
        this.stats = stats;

        switch (stats.suit)
        {
        case Global.Suits.Hearts:
        case Global.Suits.Diamonds:
            foreach (var suit in suits)
            {
                suit.sprite = stats.suit == Global.Suits.Hearts ? hearts : diamonds;
            }
            foreach (var number in numbers)
            {
                number.color = Color.red;
            }
            break;

        case Global.Suits.Clubs:
        case Global.Suits.Spades:
            foreach (var suit in suits)
            {
                suit.sprite = stats.suit == Global.Suits.Clubs ? clubs : spades;
            }
            foreach (var number in numbers)
            {
                number.color = Color.black;
            }
            break;
        }

        foreach (var number in numbers)
        {
            number.text = Global.denominations[stats.denomination];
        }
    }
Exemple #27
0
        // Logs stat change into chat
        public void LogStatChange(CardStats stat, PlayableCard card, sbyte value)
        {
            var message = $"{card.Name}'s {stat.GetDescription()} has been changed by {value}";

            WriteLog(message, CombatLogTypes.StatChange);
        }
Exemple #28
0
 public void PayChips(CardStats card)
 {
     for (int i = 0; i < card.whiteChipsValue - whiteCardNumber; i++)
     {
         if (whiteChips.Count != 0)
         {
             chipStashes.Find(c => c.stashColor == "WHI").GetBackChipFromPlayer(whiteChips[whiteChips.Count - 1]);
             whiteChips.RemoveAt(whiteChips.Count - 1);
             whiteChipNumber--;
         }
         else
         {
             chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]);
             goldChips.RemoveAt(goldChips.Count - 1);
             goldChipNumber--;
         }
     }
     for (int i = 0; i < card.blueChipsValue - blueCardNumber; i++)
     {
         if (blueChips.Count != 0)
         {
             chipStashes.Find(c => c.stashColor == "BLU").GetBackChipFromPlayer(blueChips[blueChips.Count - 1]);
             blueChips.RemoveAt(blueChips.Count - 1);
             blueChipNumber--;
         }
         else
         {
             chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]);
             goldChips.RemoveAt(goldChips.Count - 1);
             goldChipNumber--;
         }
     }
     for (int i = 0; i < card.greenChipsValue - greenCardNumber; i++)
     {
         if (greenChips.Count != 0)
         {
             chipStashes.Find(c => c.stashColor == "GRE").GetBackChipFromPlayer(greenChips[greenChips.Count - 1]);
             greenChips.RemoveAt(greenChips.Count - 1);
             greenChipNumber--;
         }
         else
         {
             chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]);
             goldChips.RemoveAt(goldChips.Count - 1);
             goldChipNumber--;
         }
     }
     for (int i = 0; i < card.redChipsValue - redCardNumber; i++)
     {
         if (redChips.Count != 0)
         {
             chipStashes.Find(c => c.stashColor == "RED").GetBackChipFromPlayer(redChips[redChips.Count - 1]);
             redChips.RemoveAt(redChips.Count - 1);
             redChipNumber--;
         }
         else
         {
             chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]);
             goldChips.RemoveAt(goldChips.Count - 1);
             goldChipNumber--;
         }
     }
     for (int i = 0; i < card.blackChipsValue - blackCardNumber; i++)
     {
         if (blackChips.Count != 0)
         {
             chipStashes.Find(c => c.stashColor == "BLA").GetBackChipFromPlayer(blackChips[blackChips.Count - 1]);
             blackChips.RemoveAt(blackChips.Count - 1);
             blackChipNumber--;
         }
         else
         {
             chipStashes.Find(c => c.stashColor == "GOL").GetBackChipFromPlayer(goldChips[goldChips.Count - 1]);
             goldChips.RemoveAt(goldChips.Count - 1);
             goldChipNumber--;
         }
     }
 }
Exemple #29
0
 private void Start()
 {
     panel    = GameObject.Find("Screen Overlay Canvas/ClosePanel");
     viewCard = GameObject.Find("Screen Overlay Canvas/ViewCard");
     cs       = GetComponent <CardStats>();
 }
Exemple #30
0
 public void RunCardEffects(CardStats thisCardStats, List <GameObject> enemiesInRange)
 {
     cardEffect(thisCardStats.effect1, thisCardStats.magnitude, enemiesInRange);
     cardEffect(thisCardStats.effect2, 0, enemiesInRange);
 }