Beispiel #1
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__charge = None
        self.__dps = None
        self.__volley = None
        self.__miningyield = None
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__chargeModifiedAttributes = ModifiedAttributeDict()

        if len(self.abilities) != len(self.item.effects):
            self.__abilities = []
            for ability in self.__getAbilities():
                self.__abilities.append(ability)

        if self.__item:
            self.__itemModifiedAttributes.original = self.__item.attributes
            self.__itemModifiedAttributes.overrides = self.__item.overrides
            self.__slot = self.__calculateSlot(self.__item)

            chargeID = self.getModifiedItemAttr("fighterAbilityLaunchBombType")
            if chargeID:
                charge = eos.db.getItem(int(chargeID))
                self.__charge = charge
                self.__chargeModifiedAttributes.original = charge.attributes
                self.__chargeModifiedAttributes.overrides = charge.overrides
Beispiel #2
0
    def build(self):
        """ Builds internal module variables from both init's """

        if self.__charge and self.__charge.category.name != "Charge":
            self.__charge = None

        self.__dps = None
        self.__miningyield = None
        self.__volley = None
        self.__reloadTime = None
        self.__reloadForce = None
        self.__chargeCycles = None
        self.__hardpoint = Hardpoint.NONE
        self.__itemModifiedAttributes = ModifiedAttributeDict(parent=self)
        self.__chargeModifiedAttributes = ModifiedAttributeDict(parent=self)
        self.__slot = self.dummySlot  # defaults to None

        if self.__item:
            self.__itemModifiedAttributes.original = self.__item.attributes
            self.__itemModifiedAttributes.overrides = self.__item.overrides
            self.__hardpoint = self.__calculateHardpoint(self.__item)
            self.__slot = self.__calculateSlot(self.__item)
        if self.__charge:
            self.__chargeModifiedAttributes.original = self.__charge.attributes
            self.__chargeModifiedAttributes.overrides = self.__charge.overrides
Beispiel #3
0
    def buildRack(cls, slot):
        empty = Rack(None)
        empty.__slot = slot
        empty.__hardpoint = Hardpoint.NONE
        empty.__item = 0
        empty.__charge = 0
        empty.dummySlot = slot
        empty.__itemModifiedAttributes = ModifiedAttributeDict()
        empty.__chargeModifiedAttributes = ModifiedAttributeDict()

        return empty
Beispiel #4
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__charge = None
        self.__dps = None
        self.__volley = None
        self.__miningyield = None
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.__item.attributes

        self.__chargeModifiedAttributes = ModifiedAttributeDict()
        chargeID = self.getModifiedItemAttr("entityMissileTypeID")
        if chargeID is not None:
            charge = eos.db.getItem(int(chargeID))
            self.__charge = charge
            self.__chargeModifiedAttributes.original = charge.attributes
Beispiel #5
0
 def __init__(self, item):
     """Initialize cargo from the program"""
     self.__item = item
     self.itemID = item.ID if item is not None else None
     self.amount = 0
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = item.attributes
Beispiel #6
0
 def build(self):
     self.__extraDrains = []
     self.__ehp = None
     self.__weaponDPS = None
     self.__minerYield = None
     self.__weaponVolley = None
     self.__droneDPS = None
     self.__droneVolley = None
     self.__droneYield = None
     self.__sustainableTank = None
     self.__effectiveSustainableTank = None
     self.__effectiveTank = None
     self.__calculated = False
     self.__capStable = None
     self.__capState = None
     self.__capUsed = None
     self.__capRecharge = None
     self.__calculatedTargets = []
     self.factorReload = False
     self.fleet = None
     self.boostsFits = set()
     self.gangBoosts = None
     self.ecmProjectedStr = 1
     self.extraAttributes = ModifiedAttributeDict(self)
     self.extraAttributes.original = self.EXTRA_ATTRIBUTES
Beispiel #7
0
 def __init__(self, item):
     self.__item = item
     self.itemID = item.ID
     self.active = True
     self.amount = 0
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = self.item.attributes
Beispiel #8
0
 def build(self):
     from eos import db
     self.__extraDrains = []
     self.__ehp = None
     self.__weaponDPS = None
     self.__minerYield = None
     self.__weaponVolley = None
     self.__droneDPS = None
     self.__droneVolley = None
     self.__droneYield = None
     self.__sustainableTank = None
     self.__effectiveSustainableTank = None
     self.__effectiveTank = None
     self.__calculated = False
     self.__capStable = None
     self.__capState = None
     self.__capUsed = None
     self.__capRecharge = None
     self.__calculatedTargets = []
     self.factorReload = False
     self.fleet = None
     self.boostsFits = set()
     self.gangBoosts = None
     self.ecmProjectedStr = 1
     self.extraAttributes = ModifiedAttributeDict(self)
     self.extraAttributes.original = self.EXTRA_ATTRIBUTES
     self.ship = Ship(db.getItem(
         self.shipID)) if self.shipID is not None else None
     if self.ship is not None:
         self.mode = self.ship.checkModeItem(
             db.getItem(self.modeID) if self.modeID else None)
     else:
         self.mode = None
Beispiel #9
0
 def __init__(self, item):
     self.__slot = self.__calculateSlot(item)
     self.__item = item
     self.itemID = item.ID
     self.active = True
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = self.item.attributes
Beispiel #10
0
 def __fetchItemInfo(self):
     import eos.db
     item = eos.db.getItem(self.itemID)
     self.__item = item
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = item.attributes
     self.__hardpoint = self.__calculateHardpoint(item)
     self.__slot = self.__calculateSlot(item)
Beispiel #11
0
 def __fetchChargeInfo(self):
     self.__chargeModifiedAttributes = ModifiedAttributeDict()
     if self.chargeID is not None:
         import eos.db
         charge = eos.db.getItem(self.chargeID)
         self.__charge = charge
         self.__chargeModifiedAttributes.original = charge.attributes
     else:
         self.__charge = 0
Beispiel #12
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__charge = None
        self.__dps = None
        self.__volley = None
        self.__miningyield = None
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.__item.attributes
        self.__itemModifiedAttributes.overrides = self.__item.overrides

        self.__chargeModifiedAttributes = ModifiedAttributeDict()
        # pheonix todo: check the attribute itself, not the modified. this will always return 0 now.
        chargeID = self.getModifiedItemAttr("entityMissileTypeID", None)
        if chargeID is not None:
            charge = eos.db.getItem(int(chargeID))
            self.__charge = charge
            self.__chargeModifiedAttributes.original = charge.attributes
            self.__chargeModifiedAttributes.overrides = charge.overrides
Beispiel #13
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__sideEffects = []
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.__item.attributes
        self.__itemModifiedAttributes.overrides = self.__item.overrides
        self.__slot = self.__calculateSlot(self.__item)

        # Legacy booster side effect code, disabling as not currently implemented
        '''
Beispiel #14
0
 def __init__(self, item, owner=None):
     if item.group.name != "Ship Modifiers":
         raise ValueError(
             'Passed item "%s" (category: (%s)) is not a Ship Modifier' %
             (item.name, item.category.name))
     self.owner = owner
     self.__item = item
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = self.item.attributes
     self.__itemModifiedAttributes.overrides = self.item.overrides
Beispiel #15
0
 def build(self):
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = self.__item.attributes
     self.__sideEffects = []
     for effect in self.item.effects.itervalues():
         if effect.isType("boosterSideEffect"):
             s = SideEffect(self)
             s.effect = effect
             s.active = effect.ID in self.__activeSideEffectIDs
             self.__sideEffects.append(s)
Beispiel #16
0
    def __init__(self, item):

        if item.category.name != "Ship":
            raise ValueError('Passed item "%s" (category: (%s)) is not under Ship category'%(item.name, item.category.name))

        self.__item = item
        self.__modeItems = self.__getModeItems()
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.item.attributes

        self.commandBonus = 0
Beispiel #17
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.__item.attributes
        self.__itemModifiedAttributes.overrides = self.__item.overrides
        self.__slot = self.__calculateSlot(self.__item)

        if len(self.sideEffects) != len(self.__getSideEffects()):
            self.__sideEffects = []
            for ability in self.__getSideEffects():
                self.__sideEffects.append(ability)
Beispiel #18
0
    def __init__(self, item):
        self.__item = item if item != None else 0
        self.itemID = item.ID if item is not None else None
        self.__charge = 0
        self.projected = False
        self.state = State.ONLINE
        self.__dps = None
        self.__volley = None
        self.__reloadTime = None
        self.__reloadForce = None
        self.__chargeCycles = None
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__slot = None

        if item != None:
            self.__itemModifiedAttributes.original = item.attributes
            self.__hardpoint = self.__calculateHardpoint(item)
            self.__slot = self.__calculateSlot(item)

        self.__chargeModifiedAttributes = ModifiedAttributeDict()
Beispiel #19
0
    def __fetchChargeInfo(self):
        chargeID = self.getModifiedItemAttr("entityMissileTypeID")
        self.__chargeModifiedAttributes = ModifiedAttributeDict()
        if chargeID is not None:
            import eos.db
            charge = eos.db.getItem(int(chargeID))
            self.__charge = charge

            self.chargeModifiedAttributes.original = charge.attributes
        else:
            self.__charge = 0
Beispiel #20
0
    def init(self):
        """Initialize cargo from the database and validate"""
        self.__item = None

        if self.itemID:
            self.__item = eos.db.getItem(self.itemID)
            if self.__item is None:
                logger.error("Item (id: %d) does not exist", self.itemID)
                return

        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.__item.attributes
Beispiel #21
0
 def init(self):
     if self.dummySlot is None:
         self.__item = None
         self.__charge = None
         self.__volley = None
         self.__dps = None
         self.__reloadTime = None
         self.__reloadForce = None
         self.__chargeCycles = None
     else:
         self.__slot = self.dummySlot
         self.__item = 0
         self.__charge = 0
         self.__dps = 0
         self.__volley = 0
         self.__reloadTime = 0
         self.__reloadForce = None
         self.__chargeCycles = 0
         self.__hardpoint = Hardpoint.NONE
         self.__itemModifiedAttributes = ModifiedAttributeDict()
         self.__chargeModifiedAttributes = ModifiedAttributeDict()
Beispiel #22
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__charge = None
        self.__baseVolley = None
        self.__baseRRAmount = None
        self.__miningYield = None
        self.__miningWaste = None
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self._item.attributes
        self.__itemModifiedAttributes.overrides = self._item.overrides
        self.__chargeModifiedAttributes = ModifiedAttributeDict()

        self._mutaLoadMutators(mutatorClass=MutatorDrone)
        self.__itemModifiedAttributes.mutators = self.mutators

        chargeID = self.getModifiedItemAttr("entityMissileTypeID", None)
        if chargeID:
            charge = eos.db.getItem(int(chargeID))
            self.__charge = charge
            self.__chargeModifiedAttributes.original = charge.attributes
            self.__chargeModifiedAttributes.overrides = charge.overrides
Beispiel #23
0
    def __init__(self, item):

        if item.category.name != "Ship":
            raise ValueError(
                'Passed item "%s" (category: (%s)) is not under Ship category'
                % (item.name, item.category.name))

        self.__item = item
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        if not isinstance(item, int):
            self.__buildOriginal()

        self.commandBonus = 0
Beispiel #24
0
    def __init__(self, item):
        if item.category.name != "Drone":
            raise ValueError("Passed item is not a drone")

        self.__item = item
        self.__charge = None
        self.itemID = item.ID
        self.amount = 0
        self.amountActive = 0
        self.__dps = None
        self.projected = False
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.itemModifiedAttributes.original = self.item.attributes
Beispiel #25
0
    def build(self):
        """ Build object. Assumes proper and valid item already set """
        self.__sideEffects = []
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = self.__item.attributes
        self.__slot = self.__calculateSlot(self.__item)

        for effect in self.__item.effects.itervalues():
            if effect.isType("boosterSideEffect"):
                s = SideEffect(self)
                s.effect = effect
                s.active = effect.ID in self.__activeSideEffectIDs
                self.__sideEffects.append(s)
Beispiel #26
0
    def build(self):
        """ Builds internal module variables from both init's """

        if self.__charge and self.__charge.category.name != "Charge":
            self.__charge = None

        self.__dps = None
        self.__dpsSpool = None
        self.__volley = None
        self.__volleySpool = None
        self.__miningyield = None
        self.__reloadTime = None
        self.__reloadForce = None
        self.__chargeCycles = None
        self.__hardpoint = Hardpoint.NONE
        self.__itemModifiedAttributes = ModifiedAttributeDict(parent=self)
        self.__chargeModifiedAttributes = ModifiedAttributeDict(parent=self)
        self.__slot = self.dummySlot  # defaults to None

        if self.__item:
            self.__itemModifiedAttributes.original = self.__item.attributes
            self.__itemModifiedAttributes.overrides = self.__item.overrides
            self.__hardpoint = self.__calculateHardpoint(self.__item)
            self.__slot = self.__calculateSlot(self.__item)

            # Instantiate / remove mutators if this is a mutated module
            if self.__baseItem:
                for x in self.mutaplasmid.attributes:
                    attr = self.item.attributes[x.name]
                    id = attr.ID
                    if id not in self.mutators:  # create the mutator
                        Mutator(self, attr, attr.value)
                # @todo: remove attributes that are no longer part of the mutaplasmid.

            self.__itemModifiedAttributes.mutators = self.mutators

        if self.__charge:
            self.__chargeModifiedAttributes.original = self.__charge.attributes
            self.__chargeModifiedAttributes.overrides = self.__charge.overrides
Beispiel #27
0
    def __init__(self, item, owner=None):
        self.validate(item)

        self.__item = item
        self.__modeItems = self.__getModeItems()
        self.__itemModifiedAttributes = ModifiedAttributeDict(parent=self)
        self.__itemModifiedAttributes.original = dict(self.item.attributes)
        self.__itemModifiedAttributes.original.update(self.EXTRA_ATTRIBUTES)
        self.__itemModifiedAttributes.overrides = self.item.overrides

        if "maximumRangeCap" in self.__itemModifiedAttributes.original:
            cappingAttrKeyCache["maxTargetRange"] = "maximumRangeCap"

        self.owner = owner
        self.commandBonus = 0
Beispiel #28
0
    def __init__(self, item, parent=None):
        self.validate(item)

        self.__item = item
        self.__modeItems = self.__getModeItems()
        self.__itemModifiedAttributes = ModifiedAttributeDict(parent=self)
        self.__itemModifiedAttributes.original = dict(self.item.attributes)
        self.__itemModifiedAttributes.original.update(self.EXTRA_ATTRIBUTES)
        self.__itemModifiedAttributes.overrides = self.item.overrides

        if "maximumRangeCap" in self.__itemModifiedAttributes.original:
            cappingAttrKeyCache["maxTargetRange"] = "maximumRangeCap"

        # there are occasions when we need to get to the parent fit of the ship, such as when we need the character
        # skills for ship-role gang boosts (Titans)
        self.parent = parent
        self.commandBonus = 0
Beispiel #29
0
    def __init__(self, item, parent=None):

        if item.category.name != "Ship":
            raise ValueError(
                'Passed item "%s" (category: (%s)) is not under Ship category'
                % (item.name, item.category.name))

        self.__item = item
        self.__modeItems = self.__getModeItems()
        self.__itemModifiedAttributes = ModifiedAttributeDict()
        self.__itemModifiedAttributes.original = dict(self.item.attributes)
        self.__itemModifiedAttributes.original.update(self.EXTRA_ATTRIBUTES)
        self.__itemModifiedAttributes.overrides = self.item.overrides

        # there are occasions when we need to get to the parent fit of the ship, such as when we need the character
        # skills for ship-role gang boosts (Titans)
        self.parent = parent
        self.commandBonus = 0
Beispiel #30
0
 def __fetchItemInfo(self):
     import eos.db
     self.__item = eos.db.getItem(self.itemID)
     self.__itemModifiedAttributes = ModifiedAttributeDict()
     self.__itemModifiedAttributes.original = self.__item.attributes