diff --git a/eos/saveddata/module.py b/eos/saveddata/module.py index 1efa44d7f..500ce0977 100644 --- a/eos/saveddata/module.py +++ b/eos/saveddata/module.py @@ -18,6 +18,7 @@ # =============================================================================== from logbook import Logger +from copy import deepcopy from sqlalchemy.orm import validates, reconstructor from math import floor @@ -110,6 +111,7 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): self.__item = None self.__baseItem = None self.__charge = None + self.__mutaplasmid = None # we need this early if module is invalid and returns early self.__slot = self.dummySlot @@ -352,11 +354,11 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): @property def baseItem(self): - return self.__baseItem if self.__baseItem != 0 else None # what? + return self.__baseItem @property def mutaplasmid(self): - return self.__mutaplasmid if self.__mutaplasmid != 0 else None + return self.__mutaplasmid @property def charge(self): @@ -838,9 +840,13 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut): if item is None: copy = Module.buildEmpty(self.slot) else: - copy = Module(self.item) + copy = Module(self.item, self.baseItem, self.mutaplasmid) copy.charge = self.charge copy.state = self.state + + for x in self.mutators.values(): + Mutator(copy, x.attribute, x.value) + return copy def __repr__(self):