Enemy Behaviors
[CreateAssetMenu(fileName = "behavior", menuName = "TcgEngine/Behaviors/LowHP", order = 20)]
public class BehaviorLowHP : BehaviorData
{
public override Card SelectPlayCard(Battle data, BattleCharacter character, List<Card> cards, int turn)
{
//Find card with highest damage
int highest = 0;
Card target = cards.Count > 0 ? cards[0] : null; //Play first card if no card deals damage
foreach (Card card in cards)
{
foreach (AbilityData ability in card.GetAbilities())
{
int damage = card.GetAbilityValue(character);
if (ability.HasEffect<EffectDamage>() && damage > highest)
{
target = card;
highest = damage;
}
}
}
return target;
}
public override BattleCharacter SelectCharacterTarget(Battle data, BattleCharacter character, Card card, List<BattleCharacter> characters, int turn)
{
//Find lowest HP
int lowest = 9999;
BattleCharacter target = null;
foreach (BattleCharacter tcharacter in characters)
{
if (tcharacter.GetHP() < lowest)
{
lowest = tcharacter.GetHP();
target = tcharacter;
}
}
return target;
}
public override Card SelectCardTarget(Battle data, BattleCharacter character, Card card, List<Card> cards, int turn)
{
return GetRandomCard(data, character, cards, turn);
}
public override Slot SelectSlotTarget(Battle data, BattleCharacter character, Card card, List<Slot> slots, int turn)
{
return GetRandomSlot(data, character, slots, turn);
}
public override string GetBehaviorText()
{
return "Attacks the champion with lowest health";
}
}Last updated