diff --git a/eos/capSim.py b/eos/capSim.py index 90734d8e1..68e0dae29 100644 --- a/eos/capSim.py +++ b/eos/capSim.py @@ -82,18 +82,23 @@ class CapSimulator(object): if self.scale: duration, capNeed = self.scale_activation(duration, capNeed) - if self.stagger: - duration = int(duration/amount) - else: - capNeed *= amount - - period = lcm(period, duration) - # set clipSize to infinite if reloads are disabled unless it's # a cap booster module. if not self.reload and capNeed > 0: clipSize = 0 + if self.stagger: + if clipSize == 0: + duration = int(duration/amount) + else: + stagger_amount = (duration*clipsize+10000)/amount + for i in range(1, amount): + heapq.heappush(self.state, [i*stagger_amount, duration, capNeed, 0, clipSize]) + else: + capNeed *= amount + + period = lcm(period, duration) + # period optimization doesn't work when reloads are active. if clipSize: disable_period = True