using System.Collections; using System.Collections.Generic; using UnityEngine; public class VampireFangsMCard : MonsterCard { public VampireFangsMCard(BattleParticipant owner) : base(owner, MCardId.VampireFangs, "VampireFangs", 2, CardType.Attack, "Steals 2 HP from target.") { } public override IEnumerator Use(IBattleEffectApplier effectApplier, MonsterViewpoint monsterViewpoint) { BattleParticipant target = DetermineTarget(monsterViewpoint); DealDamageEffect damageEffect = new DealDamageEffect(target, 2); effectApplier.Apply(damageEffect); if (damageEffect.AmountDealt > 0) { HealEffect healEffect = new HealEffect(this.owner, damageEffect.AmountDealt); effectApplier.Apply(healEffect); } yield break; } private BattleParticipant DetermineTarget(MonsterViewpoint monsterViewpoint) { return GetHeroWithHighestHP(monsterViewpoint); } private BattleHero GetHeroWithHighestHP(MonsterViewpoint monsterViewpoint) { int highestHPHeroIndex = -1; int highestHP = -1; for (int i = 0; i < monsterViewpoint.Heroes.Length; i++) { int heroHP = monsterViewpoint.Heroes[i].GetHP(); if (heroHP > highestHP) { highestHPHeroIndex = i; highestHP = heroHP; } } return monsterViewpoint.Heroes[highestHPHeroIndex]; } }