Add support for ihub system-wide effects

This commit is contained in:
DarkPhoenix
2025-05-24 14:25:21 +02:00
parent 73b3e347fb
commit b1f048ac93
3 changed files with 20 additions and 24 deletions

View File

@@ -63,11 +63,10 @@ class Effect100001(BaseEffect):
@staticmethod
def handler(fit, beacon, context, projectionRange, **kwargs):
for i in (1, 4):
for i in range(1, 4):
if id := beacon.getModifiedItemAttr(f'warfareBuff{i}ID'):
value = beacon.getModifiedItemAttr(f'warfareBuff{i}Value')
if id:
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
fit.addCommandBonus(id, value, beacon, kwargs['effect'], 'early')
class Effect4(BaseEffect):

View File

@@ -66,8 +66,8 @@ class Module(HandledItem, HandledCharge, ItemAttrShortcut, ChargeAttrShortcut, M
"""An instance of this class represents a module together with its charge and modified attributes"""
MINING_ATTRIBUTES = ("miningAmount",)
SYSTEM_GROUPS = (
"Effect Beacon", "MassiveEnvironments", "Abyssal Hazards",
"Non-Interactable Object", "Destructible Effect Beacon")
"Effect Beacon", "MassiveEnvironments", "Abyssal Hazards", "Non-Interactable Object",
"Destructible Effect Beacon", "Sovereignty Hub System Effect Generator Upgrades")
def __init__(self, item, baseItem=None, mutaplasmid=None):
"""Initialize a module from the program"""

View File

@@ -128,6 +128,7 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
data.groups[_t('Pirate Insurgency')] = self.getEffectBeacons(
_t('ContextMenu|ProjectedEffectManipulation|Insurgency'),
extra_garbage=(_t('ContextMenu|ProjectedEffectManipulation|Beacon'),))
data.groups[_t('IHub Upgrades')] = self.getIHubEffects()
return data
def getEffectBeacons(self, *groups, extra_garbage=()):
@@ -219,19 +220,6 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
subsubdata.items.append(Entry(beacon.ID, beacon.customName, beacon.customName))
subdata.sort()
# PVP weather
data.items.append(Entry(49766, _t('PvP Weather'), _t('PvP Weather')))
return data
def getDestructibleBeacons(self):
data = Group()
sMkt = Market.getInstance()
for item in sMkt.getItemsByGroup(sMkt.getGroup('Destructible Effect Beacon')):
if not item.isType('projected'):
continue
data.items.append(Entry(item.ID, item.name, item.name))
data.sort()
return data
def getDrifterIncursion(self):
@@ -242,7 +230,7 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
return data
def getInvasionBeacons(self):
data = self.getDestructibleBeacons()
data = Group()
# Trig Minor Victory
item = Market.getInstance().getItem(87177)
data.items.append(Entry(item.ID, item.name, item.name))
@@ -254,11 +242,20 @@ class AddEnvironmentEffect(ContextMenuUnconditional):
data.items.append(Entry(item.ID, item.name, item.name))
return data
def getInsurgencyBeacons(self):
data = self.getDestructibleBeacons()
# Suppression Interdiction Range Beacon
item = Market.getInstance().getItem(79839)
data.items.append(Entry(item.ID, item.name, item.name))
def getIHubEffects(self):
data = Group()
# Electric
item = Market.getInstance().getItem(87950)
data.items.append(Entry(item.ID, item.name, _t('Electric')))
# Plasma
item = Market.getInstance().getItem(87949)
data.items.append(Entry(item.ID, item.name, _t('Plasma')))
# Exotic
item = Market.getInstance().getItem(87951)
data.items.append(Entry(item.ID, item.name, _t('Exotic')))
# Gamma
item = Market.getInstance().getItem(87815)
data.items.append(Entry(item.ID, item.name, _t('Gamma')))
return data
AddEnvironmentEffect.register()