MCPcopy Index your code
hub / github.com/pyfa-org/Pyfa / Drone

Class Drone

eos/saveddata/drone.py:39–427  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

37
38
39class Drone(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, MutatedMixin):
40 MINING_ATTRIBUTES = ("miningAmount",)
41
42 def __init__(self, item, baseItem=None, mutaplasmid=None):
43 """Initialize a drone from the program"""
44 self._item = item
45 self._mutaInit(baseItem=baseItem, mutaplasmid=mutaplasmid)
46
47 if self.isInvalid:
48 raise ValueError("Passed item is not a Drone")
49
50 self.itemID = item.ID if item is not None else None
51 self.amount = 0
52 self.amountActive = 0
53 self.projected = False
54 self.projectionRange = None
55 self.build()
56
57 @reconstructor
58 def init(self):
59 """Initialize a drone from the database and validate"""
60 self._item = None
61
62 if self.itemID:
63 self._item = eos.db.getItem(self.itemID)
64 if self._item is None:
65 pyfalog.error("Item (id: {0}) does not exist", self.itemID)
66 return
67
68 try:
69 self._mutaReconstruct()
70 except MutaError:
71 return
72
73 if self.isInvalid:
74 pyfalog.error("Item (id: {0}) is not a Drone", self.itemID)
75 return
76
77 self.build()
78
79 def build(self):
80 """ Build object. Assumes proper and valid item already set """
81 self.__charge = None
82 self.__baseVolley = None
83 self.__baseRRAmount = None
84 self.__miningYield = None
85 self.__miningDrain = None
86 self.__ehp = None
87 self.__itemModifiedAttributes = ModifiedAttributeDict()
88 self.__itemModifiedAttributes.original = self._item.attributes
89 self.__itemModifiedAttributes.overrides = self._item.overrides
90 self.__chargeModifiedAttributes = ModifiedAttributeDict()
91
92 self._mutaLoadMutators(mutatorClass=MutatorDrone)
93 self.__itemModifiedAttributes.mutators = self.mutators
94
95 chargeID = self.getModifiedItemAttr("entityMissileTypeID", None)
96 if chargeID:

Callers 8

importESIFunction · 0.90
getTestSetMethod · 0.90
importXmlFunction · 0.90
importEftCfgFunction · 0.90
addDroneMethod · 0.90
processImportInfoFunction · 0.90
toDroneMethod · 0.90
__deepcopy__Method · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected