From 10c79ac812ebea3aacb6e2dbc2ce4cd1a66707a7 Mon Sep 17 00:00:00 2001 From: blitzmann Date: Mon, 4 Jul 2016 10:49:57 -0400 Subject: [PATCH] More work on restrictions --- eos/saveddata/character.py | 2 +- eos/saveddata/fit.py | 5 +++++ gui/boosterView.py | 6 ++++++ gui/builtinContextMenus/cargo.py | 6 +++++- gui/droneView.py | 6 ++++++ gui/gangView.py | 6 ++++-- gui/implantView.py | 6 ++++++ gui/shipBrowser.py | 5 ++++- 8 files changed, 37 insertions(+), 5 deletions(-) diff --git a/eos/saveddata/character.py b/eos/saveddata/character.py index ce4650449..1f5832ea2 100644 --- a/eos/saveddata/character.py +++ b/eos/saveddata/character.py @@ -330,7 +330,7 @@ class Skill(HandledItem): return for effect in item.effects.itervalues(): - if effect.runTime == runTime and effect.isType("passive") and (not isinstance(fit.ship, eos.types.Citadel) or effect.isType("structure")): + if effect.runTime == runTime and effect.isType("passive") and (not fit.isStructure or effect.isType("structure")): try: effect.handler(fit, self, ("skill",)) except AttributeError: diff --git a/eos/saveddata/fit.py b/eos/saveddata/fit.py index 4371041e3..00ad84cbe 100644 --- a/eos/saveddata/fit.py +++ b/eos/saveddata/fit.py @@ -517,6 +517,11 @@ class Fit(object): self.boosters, self.appliedImplants, self.modules + ] if not self.isStructure else [ + # Ensure a restricted set for citadels + (self.character, self.ship), + self.fighters, + self.modules ] # Items that are restricted. These items are only run on the local diff --git a/gui/boosterView.py b/gui/boosterView.py index e71dabbb8..5c8dca993 100644 --- a/gui/boosterView.py +++ b/gui/boosterView.py @@ -117,6 +117,12 @@ class BoosterView(d.Display): def addItem(self, event): sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() + + fit = sFit.getFit(fitID) + + if fit.isStructure: + return + trigger = sFit.addBooster(fitID, event.itemID) if trigger: wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/builtinContextMenus/cargo.py b/gui/builtinContextMenus/cargo.py index 3cc86902b..0b4c031b4 100644 --- a/gui/builtinContextMenus/cargo.py +++ b/gui/builtinContextMenus/cargo.py @@ -11,8 +11,12 @@ class Cargo(ContextMenu): self.mainFrame = gui.mainFrame.MainFrame.getInstance() def display(self, srcContext, selection): + sFit = service.Fit.getInstance() + fitID = self.mainFrame.getActiveFit() + + fit = sFit.getFit(fitID) # Make sure context menu registers in the correct view - if srcContext not in ("marketItemGroup", "marketItemMisc") or self.mainFrame.getActiveFit() is None: + if srcContext not in ("marketItemGroup", "marketItemMisc") or not fit or fit.isStructure: return False return True diff --git a/gui/droneView.py b/gui/droneView.py index 9b02d1925..531c28d05 100644 --- a/gui/droneView.py +++ b/gui/droneView.py @@ -195,6 +195,12 @@ class DroneView(d.Display): def addItem(self, event): sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() + + fit = sFit.getFit(fitID) + + if fit.isStructure: + return + trigger = sFit.addDrone(fitID, event.itemID) if trigger: wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/gangView.py b/gui/gangView.py index 949406ff0..704ea31d3 100644 --- a/gui/gangView.py +++ b/gui/gangView.py @@ -365,8 +365,10 @@ class GangView ( ScrolledPanel ): #Those are drags coming from pyfa sources, NOT builtin wx drags self.draggedFitID = None if type == "fit": - activeFit = self.mainFrame.getActiveFit() - if activeFit: + sFit = service.Fit.getInstance() + fit = sFit.getFit(self.mainFrame.getActiveFit()) + + if fit and not fit.isStructuree: self.draggedFitID = fitID pos = wx.GetMousePosition() diff --git a/gui/implantView.py b/gui/implantView.py index 2f5a34213..15da4d097 100644 --- a/gui/implantView.py +++ b/gui/implantView.py @@ -139,6 +139,12 @@ class ImplantDisplay(d.Display): def addItem(self, event): sFit = service.Fit.getInstance() fitID = self.mainFrame.getActiveFit() + + fit = sFit.getFit(fitID) + + if fit.isStructure: + return + trigger = sFit.addImplant(fitID, event.itemID) if trigger: wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID)) diff --git a/gui/shipBrowser.py b/gui/shipBrowser.py index e0aedebe3..94c682101 100644 --- a/gui/shipBrowser.py +++ b/gui/shipBrowser.py @@ -1538,7 +1538,10 @@ class FitItem(SFItem.SFBrowserItem): menu.Check(toggleItem.GetId(), self.fitBooster) self.Bind(wx.EVT_MENU, self.OnToggleBooster, toggleItem) - if self.mainFrame.getActiveFit(): + sFit = service.Fit.getInstance() + fit = sFit.getFit(self.mainFrame.getActiveFit()) + + if fit and not fit.isStructure: # If there is an active fit, get menu for setting individual boosters menu.AppendSeparator() boosterMenu = self.mainFrame.additionsPane.gangPage.buildBoostermenu()