private void UseSpells()
    {
        foreach (CardInstance card in aiPlayerData.hand)
        {
            if (card.card.type == CardType.Spell)
            {
                SpellAbility  ability         = ((SpellAbility)card.card.ability);
                int           numberOfTargets = ability.numberOfTargets;
                List <Target> targets         = new List <Target>();

                if (ability.validTargets == TargetOptions.EnemyCard)
                {
                    targets = findCardsToDamage(numberOfTargets);
                }

                if (ability.validTargets == TargetOptions.AllyCard)
                {
                    targets = findCardsToHeal(numberOfTargets);
                }

                if (targets.Count > 0)
                {
                    ability.ActivateAbility(targets, card.abilityInstance);
                }
            }
        }
    }
Exemple #2
0
        private void AddTarget()
        {
            var objectClicked = owner.GetObjectClicked();

            if (objectClicked != null)
            {
                if (objectClicked.GetComponent <PlayerView>() != null)
                {
                    Target target = (Target)objectClicked.GetComponent <PlayerView>().owner;
                    if (TargetingSystem.IsValid(ability.validTargets, target, true))
                    {
                        chosenTargetsList.Add(target);
                    }
                }
                else if (objectClicked.GetComponent <CardView>() != null)
                {
                    Target target = (Target)objectClicked.GetComponent <CardView>().cardInstance;
                    if (TargetingSystem.IsValid(ability.validTargets, target, true))
                    {
                        if (!chosenTargetsList.Contains(target))
                        {
                            chosenTargetsList.Add(target);
                            chosenCardsViews.Add(objectClicked.GetComponent <CardView>());
                            objectClicked.GetComponent <CardView>().ToggleActive();
                        }
                        else
                        {
                            chosenTargetsList.Remove(target);
                            chosenCardsViews.Remove(objectClicked.GetComponent <CardView>());
                            objectClicked.GetComponent <CardView>().ToggleActive();
                        }
                    }
                }
                else
                {
                    if (chosenCardsViews.Count > 0)
                    {
                        foreach (CardView cardView in chosenCardsViews)
                        {
                            cardView.ToggleActive();
                        }
                        chosenCardsViews.Clear();
                        chosenTargetsList.Clear();
                        Complete();
                    }
                }
            }
            else
            {
                Complete();
            }

            if (chosenTargetsList.Count == ability.numberOfTargets || (owner.playerSystem.enemy.table.Count < ability.numberOfTargets && chosenTargetsList.Count == owner.playerSystem.enemy.table.Count && chosenTargetsList.Count != 0))
            {
                foreach (CardView cardView in chosenCardsViews)
                {
                    cardView.ToggleActive();
                }
                Debug.Log("Activating spell ability....");
                ability.ActivateAbility(chosenTargetsList, card.abilityInstance);
                Complete();
            }
        }