Move resistance calculation to multiplication method
This commit is contained in:
@@ -398,7 +398,7 @@ class ModifiedAttributeDict(collections.MutableMapping):
|
|||||||
self.__placehold(attributeName)
|
self.__placehold(attributeName)
|
||||||
self.__afflict(attributeName, "+", increase, increase != 0)
|
self.__afflict(attributeName, "+", increase, increase != 0)
|
||||||
|
|
||||||
def multiply(self, attributeName, multiplier, stackingPenalties=False, penaltyGroup="default", skill=None, resist=True, *args, **kwargs):
|
def multiply(self, attributeName, multiplier, stackingPenalties=False, penaltyGroup="default", skill=None, *args, **kwargs):
|
||||||
"""Multiply value of given attribute by given factor"""
|
"""Multiply value of given attribute by given factor"""
|
||||||
if multiplier is None: # See GH issue 397
|
if multiplier is None: # See GH issue 397
|
||||||
return
|
return
|
||||||
@@ -406,6 +406,14 @@ class ModifiedAttributeDict(collections.MutableMapping):
|
|||||||
if skill:
|
if skill:
|
||||||
multiplier *= self.__handleSkill(skill)
|
multiplier *= self.__handleSkill(skill)
|
||||||
|
|
||||||
|
resisted = False
|
||||||
|
# Goddammit CCP, make up your mind where you want this information >.< See #1139
|
||||||
|
if 'effect' in kwargs:
|
||||||
|
resistFactor = ModifiedAttributeDict.getResistance(self.fit, kwargs['effect']) or 1
|
||||||
|
if resistFactor != 1:
|
||||||
|
resisted = True
|
||||||
|
multiplier *= (multiplier - 1) * resistFactor + 1
|
||||||
|
|
||||||
# If we're asked to do stacking penalized multiplication, append values
|
# If we're asked to do stacking penalized multiplication, append values
|
||||||
# to per penalty group lists
|
# to per penalty group lists
|
||||||
if stackingPenalties:
|
if stackingPenalties:
|
||||||
@@ -426,7 +434,7 @@ class ModifiedAttributeDict(collections.MutableMapping):
|
|||||||
afflictPenal = ""
|
afflictPenal = ""
|
||||||
if stackingPenalties:
|
if stackingPenalties:
|
||||||
afflictPenal += "s"
|
afflictPenal += "s"
|
||||||
if resist:
|
if resisted:
|
||||||
afflictPenal += "r"
|
afflictPenal += "r"
|
||||||
|
|
||||||
self.__afflict(attributeName, "%s*" % afflictPenal, multiplier, multiplier != 1)
|
self.__afflict(attributeName, "%s*" % afflictPenal, multiplier, multiplier != 1)
|
||||||
@@ -436,15 +444,8 @@ class ModifiedAttributeDict(collections.MutableMapping):
|
|||||||
if skill:
|
if skill:
|
||||||
boostFactor *= self.__handleSkill(skill)
|
boostFactor *= self.__handleSkill(skill)
|
||||||
|
|
||||||
resist = None
|
|
||||||
|
|
||||||
# Goddammit CCP, make up your mind where you want this information >.< See #1139
|
|
||||||
if 'effect' in kwargs:
|
|
||||||
resist = ModifiedAttributeDict.getResistance(self.fit, kwargs['effect']) or 1
|
|
||||||
boostFactor *= resist
|
|
||||||
|
|
||||||
# We just transform percentage boost into multiplication factor
|
# We just transform percentage boost into multiplication factor
|
||||||
self.multiply(attributeName, 1 + boostFactor / 100.0, resist=(True if resist else False), *args, **kwargs)
|
self.multiply(attributeName, 1 + boostFactor / 100.0, *args, **kwargs)
|
||||||
|
|
||||||
def force(self, attributeName, value):
|
def force(self, attributeName, value):
|
||||||
"""Force value to attribute and prohibit any changes to it"""
|
"""Force value to attribute and prohibit any changes to it"""
|
||||||
|
|||||||
Reference in New Issue
Block a user