public void DiscardEnergyCard(EnergyCard energyCard, GameField game, bool isExtraCost = false) { if (!isExtraCost) { var preventer = TemporaryAbilities.OfType <EffectPreventer>().FirstOrDefault(); if (preventer != null) { game.GameLog.AddMessage($"Discard energy card prevented by {preventer.Name}"); return; } } AttachedEnergy.Remove(energyCard); Owner.DiscardPile.Add(energyCard); game?.SendEventToPlayers(new AttachedEnergyDiscardedEvent { FromPokemonId = Id, DiscardedCard = energyCard }); energyCard.OnPutInDiscard(Owner); }
public bool CanAttack() { return(!IsParalyzed && !IsAsleep && !TemporaryAbilities.OfType <PassiveAbility>().Any(x => x.ModifierType == PassiveModifierType.StopAttack)); }