diff --git a/gui/builtinContextMenus/__init__.py b/gui/builtinContextMenus/__init__.py index 55f26256a..10e44a72b 100644 --- a/gui/builtinContextMenus/__init__.py +++ b/gui/builtinContextMenus/__init__.py @@ -22,4 +22,6 @@ __all__ = [ "metaSwap", "implantSets", "fighterAbilities", + "cargoAmmo", + "droneStack" ] diff --git a/gui/builtinContextMenus/cargoAmmo.py b/gui/builtinContextMenus/cargoAmmo.py new file mode 100644 index 000000000..6b1233164 --- /dev/null +++ b/gui/builtinContextMenus/cargoAmmo.py @@ -0,0 +1,34 @@ +from gui.contextMenu import ContextMenu +import gui.mainFrame +import service +import gui.globalEvents as GE +import wx + + +class CargoAmmo(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, srcContext, selection): + if srcContext not in ("marketItemGroup", "marketItemMisc") or self.mainFrame.getActiveFit() is None: + return False + + for selected_item in selection: + if selected_item.category.ID in ( + 8, # Charge + ): + return True + + def getText(self, itmContext, selection): + return "Add {0} to Cargo (x1000)".format(itmContext) + + def activate(self, fullContext, selection, i): + sFit = service.Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + + typeID = int(selection[0].ID) + sFit.addCargo(fitID, typeID, 1000) + self.mainFrame.additionsPane.select("Cargo") + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + +CargoAmmo.register() diff --git a/gui/builtinContextMenus/droneStack.py b/gui/builtinContextMenus/droneStack.py new file mode 100644 index 000000000..687f94906 --- /dev/null +++ b/gui/builtinContextMenus/droneStack.py @@ -0,0 +1,36 @@ +from gui.contextMenu import ContextMenu +import gui.mainFrame +import service +import gui.globalEvents as GE +import wx + + +class CargoAmmo(ContextMenu): + def __init__(self): + self.mainFrame = gui.mainFrame.MainFrame.getInstance() + + def display(self, srcContext, selection): + if srcContext not in ("marketItemGroup", "marketItemMisc") or self.mainFrame.getActiveFit() is None: + return False + + for selected_item in selection: + if selected_item.category.ID in ( + 18, # Drones + ): + return True + + return False + + def getText(self, itmContext, selection): + return "Add {0} to Drone Bay (x5)".format(itmContext) + + def activate(self, fullContext, selection, i): + sFit = service.Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + + typeID = int(selection[0].ID) + sFit.addDrone(fitID, typeID, 5) + self.mainFrame.additionsPane.select("Drones") + wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) + +CargoAmmo.register()