diff --git a/gui/builtinAdditionPanes/droneView.py b/gui/builtinAdditionPanes/droneView.py index ee5b2a7cf..9ae93f5a8 100644 --- a/gui/builtinAdditionPanes/droneView.py +++ b/gui/builtinAdditionPanes/droneView.py @@ -33,6 +33,7 @@ from gui.utils.staticHelpers import DragDropHelper from service.fit import Fit from service.market import Market import gui.fitCommands as cmd +from gui.fitCommands.helpers import droneStackLimit class DroneViewDrop(wx.DropTarget): @@ -216,7 +217,8 @@ class DroneView(Display): event.Skip() return - if self.mainFrame.command.Submit(cmd.GuiAddLocalDroneCommand(fitID=fitID, itemID=event.itemID, amount=1)): + amount = droneStackLimit(fit, event.itemID) if wx.GetMouseState().CmdDown() else 1 + if self.mainFrame.command.Submit(cmd.GuiAddLocalDroneCommand(fitID=fitID, itemID=event.itemID, amount=amount)): self.mainFrame.additionsPane.select('Drones') event.Skip() diff --git a/gui/fitCommands/helpers.py b/gui/fitCommands/helpers.py index a7ce2d738..a551490e8 100644 --- a/gui/fitCommands/helpers.py +++ b/gui/fitCommands/helpers.py @@ -324,7 +324,8 @@ def stateLimit(itemIdentity): return FittingModuleState.ACTIVE -def droneStackLimit(fit, item): +def droneStackLimit(fit, itemIdentity): + item = Market.getInstance().getItem(itemIdentity) hardLimit = max(5, fit.extraAttributes["maxActiveDrones"]) releaseLimit = fit.getReleaseLimitForDrone(item) limit = min(hardLimit, releaseLimit if releaseLimit > 0 else math.inf)