2727from .calc .projected import getScramRange , getScrammables , getTackledSpeed , getSigRadiusMult
2828
2929
30- def applyDamage (dmgMap , applicationMap , tgtResists ):
30+ def applyDamage (dmgMap , applicationMap , tgtResists , tgtFullHp ):
3131 total = DmgTypes .default ()
3232 for key , dmg in dmgMap .items ():
3333 total += dmg * applicationMap .get (key , 0 )
@@ -145,7 +145,8 @@ def _getCommonData(self, miscParams, src, tgt):
145145 'srcScramRange' : getScramRange (src = src ) if applyProjected else None ,
146146 'tgtScrammables' : getScrammables (tgt = tgt ) if applyProjected else (),
147147 'dmgMap' : self ._getDamagePerKey (src = src , time = miscParams ['time' ]),
148- 'tgtResists' : tgt .getResists ()}
148+ 'tgtResists' : tgt .getResists (),
149+ 'tgtFullHp' : tgt .getFullHp ()}
149150
150151 def _calculatePoint (self , x , miscParams , src , tgt , commonData ):
151152 distance = x
@@ -187,7 +188,8 @@ def _calculatePoint(self, x, miscParams, src, tgt, commonData):
187188 y = applyDamage (
188189 dmgMap = commonData ['dmgMap' ],
189190 applicationMap = applicationMap ,
190- tgtResists = commonData ['tgtResists' ]).total
191+ tgtResists = commonData ['tgtResists' ],
192+ tgtFullHp = commonData ['tgtFullHp' ]).total
191193 return y
192194
193195
@@ -242,14 +244,17 @@ def getRange(self, xRange, miscParams, src, tgt):
242244 self ._prepareTimeCache (src = src , maxTime = maxTime )
243245 timeCache = self ._getTimeCacheData (src = src )
244246 applicationMap = self ._prepareApplicationMap (miscParams = miscParams , src = src , tgt = tgt )
245- tgtResists = tgt .getResists ()
246247 # Custom iteration for time graph to show all data points
247248 currentDmg = None
248249 currentTime = None
249250 for currentTime in sorted (timeCache ):
250251 prevDmg = currentDmg
251252 currentDmgData = timeCache [currentTime ]
252- currentDmg = applyDamage (dmgMap = currentDmgData , applicationMap = applicationMap , tgtResists = tgtResists ).total
253+ currentDmg = applyDamage (
254+ dmgMap = currentDmgData ,
255+ applicationMap = applicationMap ,
256+ tgtResists = tgt .getResists (),
257+ tgtFullHp = tgt .getFullHp ()).total
253258 if currentTime < minTime :
254259 continue
255260 # First set of data points
@@ -295,7 +300,11 @@ def getPoint(self, x, miscParams, src, tgt):
295300 self ._prepareTimeCache (src = src , maxTime = time )
296301 dmgData = self ._getTimeCacheDataPoint (src = src , time = time )
297302 applicationMap = self ._prepareApplicationMap (miscParams = miscParams , src = src , tgt = tgt )
298- y = applyDamage (dmgMap = dmgData , applicationMap = applicationMap , tgtResists = tgt .getResists ()).total
303+ y = applyDamage (
304+ dmgMap = dmgData ,
305+ applicationMap = applicationMap ,
306+ tgtResists = tgt .getResists (),
307+ tgtFullHp = tgt .getFullHp ()).total
299308 return y
300309
301310
@@ -311,7 +320,8 @@ def _getCommonData(self, miscParams, src, tgt):
311320 return {
312321 'applyProjected' : GraphSettings .getInstance ().get ('applyProjected' ),
313322 'dmgMap' : self ._getDamagePerKey (src = src , time = miscParams ['time' ]),
314- 'tgtResists' : tgt .getResists ()}
323+ 'tgtResists' : tgt .getResists (),
324+ 'tgtFullHp' : tgt .getFullHp ()}
315325
316326 def _calculatePoint (self , x , miscParams , src , tgt , commonData ):
317327 tgtSpeed = x
@@ -354,7 +364,8 @@ def _calculatePoint(self, x, miscParams, src, tgt, commonData):
354364 y = applyDamage (
355365 dmgMap = commonData ['dmgMap' ],
356366 applicationMap = applicationMap ,
357- tgtResists = commonData ['tgtResists' ]).total
367+ tgtResists = commonData ['tgtResists' ],
368+ tgtFullHp = commonData ['tgtFullHp' ]).total
358369 return y
359370
360371
@@ -399,7 +410,8 @@ def _getCommonData(self, miscParams, src, tgt):
399410 'tgtSpeed' : tgtSpeed ,
400411 'tgtSigMult' : tgtSigMult ,
401412 'dmgMap' : self ._getDamagePerKey (src = src , time = miscParams ['time' ]),
402- 'tgtResists' : tgt .getResists ()}
413+ 'tgtResists' : tgt .getResists (),
414+ 'tgtFullHp' : tgt .getFullHp ()}
403415
404416 def _calculatePoint (self , x , miscParams , src , tgt , commonData ):
405417 tgtSigRadius = x
@@ -415,7 +427,8 @@ def _calculatePoint(self, x, miscParams, src, tgt, commonData):
415427 y = applyDamage (
416428 dmgMap = commonData ['dmgMap' ],
417429 applicationMap = applicationMap ,
418- tgtResists = commonData ['tgtResists' ]).total
430+ tgtResists = commonData ['tgtResists' ],
431+ tgtFullHp = commonData ['tgtFullHp' ]).total
419432 return y
420433
421434
0 commit comments