23 lines
931 B
Python
23 lines
931 B
Python
import math
|
|
|
|
from .base import SmoothGraph
|
|
|
|
|
|
class FitShieldRegenVsShieldPercGraph(SmoothGraph):
|
|
|
|
def __init__(self):
|
|
super().__init__()
|
|
import gui.mainFrame
|
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
|
|
|
def getYForX(self, fit, extraData, perc):
|
|
maxShield = fit.ship.getModifiedItemAttr('shieldCapacity')
|
|
regenTime = fit.ship.getModifiedItemAttr('shieldRechargeRate') / 1000
|
|
currentShield = maxShield * perc / 100
|
|
# https://wiki.eveuniversity.org/Capacitor#Capacitor_recharge_rate (shield is similar to cap)
|
|
regen = 10 * maxShield / regenTime * (math.sqrt(currentShield / maxShield) - currentShield / maxShield)
|
|
useEhp = self.mainFrame.statsPane.nameViewMap["resistancesViewFull"].showEffective
|
|
if fit.damagePattern is not None and useEhp:
|
|
regen = fit.damagePattern.effectivify(fit, regen, 'shield')
|
|
return regen
|