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; } }