mixedcards/Assets/Battle/CardsMonsters/VampireFangsMCard.cs
2020-09-19 23:47:21 -04:00

39 lines
1.4 KiB
C#

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];
}
}