public override void Trigger(IGame game, IEffectHandle handle) { var defeatedEnemies = new List<IEnemyInPlay>(); foreach (var enemy in game.StagingArea.CardsInStagingArea.OfType<IEnemyInPlay>()) { if (enemy.Damage >= enemy.Card.PrintedHitPoints) { defeatedEnemies.Add(enemy); } } foreach (var player in game.Players) { foreach (var enemy in player.EngagedEnemies) { if (enemy.Damage >= enemy.Card.PrintedHitPoints) { defeatedEnemies.Add(enemy); } } } foreach (var enemy in defeatedEnemies) { var defeatedEffect = new EnemyDefeatedEffect(game, enemy, attackers); var defeatedHandle = defeatedEffect.GetHandle(game); game.AddEffect(defeatedEffect); game.TriggerEffect(defeatedHandle); } handle.Resolve(GetCompletedStatus()); }
public override void Trigger(IGame game, IEffectHandle handle) { var defeatedEnemies = new List <IEnemyInPlay>(); foreach (var enemy in game.StagingArea.CardsInStagingArea.OfType <IEnemyInPlay>()) { if (enemy.Damage >= enemy.Card.PrintedHitPoints) { defeatedEnemies.Add(enemy); } } foreach (var player in game.Players) { foreach (var enemy in player.EngagedEnemies) { if (enemy.Damage >= enemy.Card.PrintedHitPoints) { defeatedEnemies.Add(enemy); } } } foreach (var enemy in defeatedEnemies) { var defeatedEffect = new EnemyDefeatedEffect(game, enemy, attackers); var defeatedHandle = defeatedEffect.GetHandle(game); game.AddEffect(defeatedEffect); game.TriggerEffect(defeatedHandle); } handle.Resolve(GetCompletedStatus()); }