More work on restrictions

This commit is contained in:
blitzmann
2016-07-04 10:49:57 -04:00
parent fe8c3a4957
commit 10c79ac812
8 changed files with 37 additions and 5 deletions

View File

@@ -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:

View File

@@ -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

View File

@@ -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))

View File

@@ -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

View File

@@ -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))

View File

@@ -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()

View File

@@ -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))

View File

@@ -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()