public bool BuffedEmanator => (ActiveBuffsList.Find(x => x is Buff_Emanator)?.Active) ?? false; //used by patches.

        public void RegisterBuff(Buff buff)
        {
            if (!ActiveBuffsList.Contains(buff))
            {
                ActiveBuffsList.Add(buff);
            }
        }
        public Buff ApplyRandomBuff(Predicate <Buff> validator)
        {
            if (ActiveBuffsList.Where(x => validator(x)).TryRandomElement(out Buff result))
            {
                result.Apply();
            }

            return(result);
        }
        public override void FinalizeInit()
        {
            base.FinalizeInit();

            Buff_Chemfuel.Register();
            Buff_Emanator.Register();
            Buff_Pemmican.Register();
            Buff_PsychTea.Register();

            foreach (Buff item in ActiveBuffsList.Where(x => x.Active))
            {
                item.Apply();
            }

            if (occuringTick < 4f && timesHeld == 0) // I picked 4 in case of extraordinarily large values of 0.
            {
                occuringTick = GenTicks.TicksAbs + new FloatRange(GenDate.TicksPerDay * 45, GenDate.TicksPerYear).RandomInRange;
            }
        }