Rework local drone commands

This commit is contained in:
DarkPhoenix
2019-04-12 23:46:41 +03:00
parent e6c9db3eef
commit 36c19fe6e8
5 changed files with 101 additions and 60 deletions

View File

@@ -4,6 +4,7 @@ import eos.db
from eos.const import FittingModuleState
from eos.saveddata.booster import Booster
from eos.saveddata.cargo import Cargo
from eos.saveddata.drone import Drone
from eos.saveddata.module import Module
from service.market import Market
from utils.repr import makeReprStr
@@ -144,6 +145,38 @@ class CargoInfo:
return makeReprStr(self, ['itemID', 'amount'])
class DroneInfo:
def __init__(self, itemID, amount, amountActive):
self.itemID = itemID
self.amount = amount
self.amountActive = amountActive
@classmethod
def fromDrone(cls, drone):
if drone is None:
return None
info = cls(
itemID=drone.itemID,
amount=drone.amount,
amountActive=drone.amountActive)
return info
def toDrone(self):
item = Market.getInstance().getItem(self.itemID)
try:
drone = Drone(item)
except ValueError:
pyfalog.warning('Invalid item: {}'.format(self.itemID))
return None
drone.amount = self.amount
drone.amountActive = self.amountActive
return drone
def __repr__(self):
return makeReprStr(self, ['itemID', 'amount', 'amountActive'])
def stateLimit(itemIdentity):
item = Market.getInstance().getItem(itemIdentity)
if {'moduleBonusAssaultDamageControl', 'moduleBonusIndustrialInvulnerability'}.intersection(item.effects):