public void Start(IAnimal victim) { _victim = victim; var defence = _victim.Upgrades.Where(x => x.UpgradeType == UpgradeType.Mimicry || x.UpgradeType == UpgradeType.Running || x.UpgradeType == UpgradeType.TailLoss).ToList(); if (defence.Count > 0) { DefenceCardsNotUsed = defence.ToDictionary(item => item, item => true); DefenceChoose?.Invoke(this, new DefenceChooseEventArgs(this, DefenceCardsNotUsed)); } else { if (victim.Upgrades.Any(x => x.UpgradeType == UpgradeType.Poisonous)) { Attacker.Poisoned = true; } FightOver?.Invoke(this, new FightOverEventArgs(this, true)); } }