private void FireNewBolt() { float nextDecay = GetRandomTime(decay, decayRandomize); Bolt oldestBolt = bolts[0]; float oldestBoltTime = 0f; foreach (Bolt bolt in bolts) { if (bolt.decayed) { bolt.Fire(nextDecay); return; } else if (bolt.time > oldestBoltTime) { oldestBolt = bolt; oldestBoltTime = bolt.time; } } //if no decayed bolts exist, refresh the oldest one oldestBolt.Fire(nextDecay); }