(self)
| 1445 | return self.__extraDrains.__iter__() |
| 1446 | |
| 1447 | def __generateDrain(self): |
| 1448 | drains = [] |
| 1449 | capUsed = 0 |
| 1450 | capAdded = 0 |
| 1451 | for mod in self.activeModulesIter(): |
| 1452 | if (mod.getModifiedItemAttr("capacitorNeed") or 0) != 0: |
| 1453 | cycleTime = mod.rawCycleTime or 0 |
| 1454 | reactivationTime = mod.getModifiedItemAttr("moduleReactivationDelay") or 0 |
| 1455 | fullCycleTime = cycleTime + reactivationTime |
| 1456 | reloadTime = mod.reloadTime |
| 1457 | if fullCycleTime > 0: |
| 1458 | capNeed = mod.capUse |
| 1459 | if capNeed > 0: |
| 1460 | capUsed += capNeed |
| 1461 | else: |
| 1462 | capAdded -= capNeed |
| 1463 | |
| 1464 | # If this is a turret, don't stagger activations |
| 1465 | disableStagger = mod.hardpoint == FittingHardpoint.TURRET |
| 1466 | |
| 1467 | drains.append(( |
| 1468 | int(fullCycleTime), |
| 1469 | mod.getModifiedItemAttr("capacitorNeed") or 0, |
| 1470 | mod.numShots or 0, |
| 1471 | disableStagger, |
| 1472 | reloadTime, |
| 1473 | mod.item.group.name == 'Capacitor Booster')) |
| 1474 | |
| 1475 | for fullCycleTime, capNeed, clipSize, reloadTime in self.iterDrains(): |
| 1476 | drains.append(( |
| 1477 | int(fullCycleTime), |
| 1478 | capNeed, |
| 1479 | clipSize, |
| 1480 | # Stagger incoming effects for cap simulation |
| 1481 | False, |
| 1482 | reloadTime, |
| 1483 | False)) |
| 1484 | if capNeed > 0: |
| 1485 | capUsed += capNeed / (fullCycleTime / 1000.0) |
| 1486 | else: |
| 1487 | capAdded += -capNeed / (fullCycleTime / 1000.0) |
| 1488 | |
| 1489 | return drains, capUsed, capAdded |
| 1490 | |
| 1491 | def simulateCap(self): |
| 1492 | drains, self.__capUsed, self.__capRecharge = self.__generateDrain() |
no test coverage detected