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); } } } }
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(); } }