More work on restrictions
This commit is contained in:
@@ -330,7 +330,7 @@ class Skill(HandledItem):
|
|||||||
return
|
return
|
||||||
|
|
||||||
for effect in item.effects.itervalues():
|
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:
|
try:
|
||||||
effect.handler(fit, self, ("skill",))
|
effect.handler(fit, self, ("skill",))
|
||||||
except AttributeError:
|
except AttributeError:
|
||||||
|
|||||||
@@ -517,6 +517,11 @@ class Fit(object):
|
|||||||
self.boosters,
|
self.boosters,
|
||||||
self.appliedImplants,
|
self.appliedImplants,
|
||||||
self.modules
|
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
|
# Items that are restricted. These items are only run on the local
|
||||||
|
|||||||
@@ -117,6 +117,12 @@ class BoosterView(d.Display):
|
|||||||
def addItem(self, event):
|
def addItem(self, event):
|
||||||
sFit = service.Fit.getInstance()
|
sFit = service.Fit.getInstance()
|
||||||
fitID = self.mainFrame.getActiveFit()
|
fitID = self.mainFrame.getActiveFit()
|
||||||
|
|
||||||
|
fit = sFit.getFit(fitID)
|
||||||
|
|
||||||
|
if fit.isStructure:
|
||||||
|
return
|
||||||
|
|
||||||
trigger = sFit.addBooster(fitID, event.itemID)
|
trigger = sFit.addBooster(fitID, event.itemID)
|
||||||
if trigger:
|
if trigger:
|
||||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||||
|
|||||||
@@ -11,8 +11,12 @@ class Cargo(ContextMenu):
|
|||||||
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
self.mainFrame = gui.mainFrame.MainFrame.getInstance()
|
||||||
|
|
||||||
def display(self, srcContext, selection):
|
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
|
# 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 False
|
||||||
return True
|
return True
|
||||||
|
|
||||||
|
|||||||
@@ -195,6 +195,12 @@ class DroneView(d.Display):
|
|||||||
def addItem(self, event):
|
def addItem(self, event):
|
||||||
sFit = service.Fit.getInstance()
|
sFit = service.Fit.getInstance()
|
||||||
fitID = self.mainFrame.getActiveFit()
|
fitID = self.mainFrame.getActiveFit()
|
||||||
|
|
||||||
|
fit = sFit.getFit(fitID)
|
||||||
|
|
||||||
|
if fit.isStructure:
|
||||||
|
return
|
||||||
|
|
||||||
trigger = sFit.addDrone(fitID, event.itemID)
|
trigger = sFit.addDrone(fitID, event.itemID)
|
||||||
if trigger:
|
if trigger:
|
||||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||||
|
|||||||
@@ -365,8 +365,10 @@ class GangView ( ScrolledPanel ):
|
|||||||
#Those are drags coming from pyfa sources, NOT builtin wx drags
|
#Those are drags coming from pyfa sources, NOT builtin wx drags
|
||||||
self.draggedFitID = None
|
self.draggedFitID = None
|
||||||
if type == "fit":
|
if type == "fit":
|
||||||
activeFit = self.mainFrame.getActiveFit()
|
sFit = service.Fit.getInstance()
|
||||||
if activeFit:
|
fit = sFit.getFit(self.mainFrame.getActiveFit())
|
||||||
|
|
||||||
|
if fit and not fit.isStructuree:
|
||||||
self.draggedFitID = fitID
|
self.draggedFitID = fitID
|
||||||
|
|
||||||
pos = wx.GetMousePosition()
|
pos = wx.GetMousePosition()
|
||||||
|
|||||||
@@ -139,6 +139,12 @@ class ImplantDisplay(d.Display):
|
|||||||
def addItem(self, event):
|
def addItem(self, event):
|
||||||
sFit = service.Fit.getInstance()
|
sFit = service.Fit.getInstance()
|
||||||
fitID = self.mainFrame.getActiveFit()
|
fitID = self.mainFrame.getActiveFit()
|
||||||
|
|
||||||
|
fit = sFit.getFit(fitID)
|
||||||
|
|
||||||
|
if fit.isStructure:
|
||||||
|
return
|
||||||
|
|
||||||
trigger = sFit.addImplant(fitID, event.itemID)
|
trigger = sFit.addImplant(fitID, event.itemID)
|
||||||
if trigger:
|
if trigger:
|
||||||
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
wx.PostEvent(self.mainFrame, GE.FitChanged(fitID=fitID))
|
||||||
|
|||||||
@@ -1538,7 +1538,10 @@ class FitItem(SFItem.SFBrowserItem):
|
|||||||
menu.Check(toggleItem.GetId(), self.fitBooster)
|
menu.Check(toggleItem.GetId(), self.fitBooster)
|
||||||
self.Bind(wx.EVT_MENU, self.OnToggleBooster, toggleItem)
|
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
|
# If there is an active fit, get menu for setting individual boosters
|
||||||
menu.AppendSeparator()
|
menu.AppendSeparator()
|
||||||
boosterMenu = self.mainFrame.additionsPane.gangPage.buildBoostermenu()
|
boosterMenu = self.mainFrame.additionsPane.gangPage.buildBoostermenu()
|
||||||
|
|||||||
Reference in New Issue
Block a user