(self)
| 431 | return self.__miningDrain |
| 432 | |
| 433 | def __calculateMining(self): |
| 434 | yield_ = self.getModifiedItemAttr("miningAmount") |
| 435 | if yield_: |
| 436 | cycleParams = self.getCycleParameters() |
| 437 | if cycleParams is None: |
| 438 | yps = 0 |
| 439 | else: |
| 440 | cycleTime = cycleParams.averageTime |
| 441 | yps = yield_ / (cycleTime / 1000.0) |
| 442 | else: |
| 443 | yps = 0 |
| 444 | wasteChance = self.getModifiedItemAttr("miningWasteProbability") |
| 445 | wasteMult = self.getModifiedItemAttr("miningWastedVolumeMultiplier") |
| 446 | dps = yps * (1 + max(0, min(1, wasteChance / 100)) * wasteMult) |
| 447 | critChance = self.getModifiedItemAttr("miningCritChance") |
| 448 | critBonusMult = self.getModifiedItemAttr("miningCritBonusYield") |
| 449 | yps += yps * critChance * critBonusMult |
| 450 | return yps, dps |
| 451 | |
| 452 | def isDealingDamage(self, ignoreState=False): |
| 453 | volleyParams = self.getVolleyParameters(ignoreState=ignoreState) |
no test coverage detected