void CyclePasses() { PowerControllerInstance.CyclePasses(); CurCycle++; NotificationControllerInstance.SpawnNotification($"== Cycle {CurCycle} Complete =="); Debug.Log($"Cycle Lasted, Now On: {CurCycle}"); bool eventApplied = false; foreach (CycleEvent curEvent in CycleEvents.Where(cycle => cycle.MyCycleEventType == CycleEventType.Set && cycle.CycleNumber == CurCycle)) { curEvent.ApplyEvent(OperationHandlerInstance); eventApplied = true; } if (!eventApplied) { List <CycleEvent> eligibleEvents = CycleEvents.Where(cycle => cycle.CycleNumber <= CurCycle && cycle.MyCycleEventType == CycleEventType.Random).ToList(); if (eligibleEvents.Any()) { int chosenEvent = Random.Range(0, eligibleEvents.Count); eligibleEvents[chosenEvent].ApplyEvent(OperationHandlerInstance); } } }