private static void Collect(Hero hero, ICard <CardType> nextCard, Slot <ICard <CardType> > newSlot, ICard <CardType> heroCard, Slot <ICard <CardType> > originalSlot) { switch (nextCard.Type) { case CardType.Gold: hero.AddGold(nextCard.Value); break; case CardType.Weapon: hero.PickupWeapon(nextCard.Value); break; } newSlot.Card = heroCard; originalSlot.Card = null; }