public bool DamageTarget(BaseCard card, DamageMultipleTimesEffect damageMultipleTimesEffect, List <IEnemyInstance> targets) { //TODO add calculation based on other variables foreach (var target in targets) { for (int i = 0; i < damageMultipleTimesEffect.HitTimes; i++) { var damage = card.CalculateDamage(_gameWorldManager, damageMultipleTimesEffect.DamageAmount, target); Logger.Log($"Damaging target: {target.Name}({target.UniqueId}) for {damage} damage"); target.ActualHealth = target.ActualHealth - damage; _gameWorldManager.EventManager.EnemyDamageTaken(damage, target); } } return(true); }
public bool DamageRandomsTarget(BaseCard baseCard, DamageMultipleTimesEffect damageMultipleTimesEffect, List <IEnemyInstance> gameWorldEnemies) { for (int i = 0; i < damageMultipleTimesEffect.HitTimes; i++) { Random rnd = new Random(); int r = rnd.Next(gameWorldEnemies.Count); DamageTarget(baseCard, new DamageMultipleTimesEffect() { HitTimes = 1, DamageAmount = damageMultipleTimesEffect.DamageAmount }, new List <IEnemyInstance>() { gameWorldEnemies[r] }); } return(true); }