internal override void Play(EffectSet ef, Player player, IEnemy enemy, int upgradeCount, IList <CardInstance> targets = null, Deck deck = null, long?key = null)
        {
            var oe = new OneEffect
            {
                Action = (Fight f, Deck d, List <string> history) =>
                {
                    f._Player.Energy += 2;
                    history.Add("Gained 2 energy mana from SeeingRed");
                }
            };

            ef.FightEffect.Add(oe);
        }
        public override void EndFight(Deck d, EffectSet relicEf)
        {
            var oe = new OneEffect();

            //TODO why is this weird.  oneEffect can actually cause multiple histories.  So probably refactor the return value.

            oe.Action = (Fight f, Deck d, List <string> history) =>
            {
                f._Player.HealFor(6, out string healres);
                history.Add($"Burning Blood Heal {healres}");
            };
            relicEf.FightEffect.Add(oe);
        }
        internal override void Play(EffectSet ef, Player player, IEnemy enemy, int upgradeCount, IList <CardInstance> targets = null, Deck deck = null, long?key = null)
        {
            var x = new OneEffect
            {
                Action = (Fight f, Deck d, List <string> history) =>
                {
                    var theCard = d.Draw(player: player, targetCards: null, count: 1, reshuffle: true, ef: ef, history: history).SingleOrDefault();
                    if (theCard == null)
                    {
                        history.Add("Havok drew nothing");
                        return;
                    }

                    f.PlayCard(theCard, forceExhaust: true, newCard: true, source: new List <CardInstance>()
                    {
                        theCard
                    });
                    history.Add($"Havok drew and played {theCard} which then exhausted");
                }
            };

            ef.FightEffect.Add(x);
        }