__init__.py (18912B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dogma\effects\__init__.py 2 import dogma.data as dogma_data 3 from eve.common.script.mgt import buffBarConst 4 import evetypes 5 from dogma import const 6 MODIFIER_FUNCTIONS = {'LocationRequiredSkillModifier': 'on all items located in <b>{domain}</b> requiring skill <b>{skillTypeID}</b>', 7 'LocationGroupModifier': 'on all items located in <b>{domain}</b> in group <b>{groupID}</b>', 8 'OwnerRequiredSkillModifier': 'on all items owned by <b>{domain}</b> that require skill <b>{skillTypeID}</b>', 9 'ItemModifier': '<b>{domain}</b>'} 10 MODIFIER_ATTRIBUTE_NAMES = ['domain', 11 'func', 12 'modifiedAttributeID', 13 'modifyingAttributeID', 14 'operation', 15 'effectID', 16 'groupID', 17 'skillTypeID'] 18 19 def _GetModifierDict(modifier): 20 ret = {} 21 for key in MODIFIER_ATTRIBUTE_NAMES: 22 value = getattr(modifier, key) 23 if key in ('modifiedAttributeID', 'modifyingAttributeID'): 24 newValue = '{} ({})'.format(dogma_data.get_attribute(value).name, value) 25 elif key == 'domain': 26 if value is None: 27 newValue = 'self' 28 else: 29 newValue = value.replace('ID', '') 30 elif key == 'skillTypeID' and value is not None: 31 newValue = evetypes.GetName(value) 32 elif key == 'groupID' and value is not None: 33 newValue = evetypes.GetGroupNameByGroup(value) 34 else: 35 newValue = value 36 ret[key] = newValue 37 38 ret['domainInfo'] = MODIFIER_FUNCTIONS.get(modifier.func, ' UNKNOWN {func}').format(**ret) 39 return ret 40 41 42 def IterReadableModifierStrings(modifiers): 43 for modifier in modifiers: 44 if modifier.func in MODIFIER_FUNCTIONS: 45 formatDict = _GetModifierDict(modifier) 46 yield 'Modifies <b>{modifiedAttributeID}</b> on {domainInfo} with attribute <b>{modifyingAttributeID}</b>'.format(**formatDict) 47 elif modifier.func == 'EffectStopper': 48 effectID = modifier.effectID 49 yield 'Forcibly stops effect %s' % dogma_data.get_effect_name(effectID) 50 51 52 def IsCloakingEffect(effectID): 53 return effectID in [const.effectCloaking, const.effectCloakingWarpSafe, const.effectCloakingPrototype] 54 55 56 class Effect(object): 57 __guid__ = 'dogmaXP.Effect' 58 isPythonEffect = True 59 __modifier_only__ = False 60 __modifies_character__ = False 61 __modifies_ship__ = False 62 __modifier_domain_other__ = False 63 MODIFIER_CHANGES = [] 64 LOCATION_AND_GROUP_MODIFIER_CHANGES = [] 65 SKILL_MODIFIER_CHANGES_FOR_LOCATION = [] 66 SKILL_MODIFIER_CHANGES_FOR_OWNER = [] 67 68 def RestrictedStop(self, env, dogmaLM, itemID, shipID, charID, otherID, targetID): 69 pass 70 71 def PreStartChecks(self, env, dogmaLM, itemID, shipID, charID, otherID, targetID): 72 pass 73 74 def StartChecks(self, env, dogmaLM, itemID, shipID, charID, otherID, targetID): 75 pass 76 77 def Start(self, env, dogmaLM, itemID, shipID, charID, otherID, targetID): 78 pass 79 80 def Stop(self, env, dogmaLM, itemID, shipID, charID, otherID, targetID): 81 pass 82 83 def AddModifiers(self, dogmaLM, toItemID, fromItemID): 84 for operation, toAttribID, fromAttribID in self.MODIFIER_CHANGES: 85 dogmaLM.AddModifier(operation, toItemID, toAttribID, fromItemID, fromAttribID) 86 87 def RemoveModifiers(self, dogmaLM, toItemID, fromItemID): 88 for operation, toAttribID, fromAttribID in self.MODIFIER_CHANGES: 89 dogmaLM.RemoveModifier(operation, toItemID, toAttribID, fromItemID, fromAttribID) 90 91 def AddLocationGroupModifiers(self, dogmaLM, toLocationID, fromItemID): 92 for operation, groupID, toAttribID, fromAttribID in self.LOCATION_AND_GROUP_MODIFIER_CHANGES: 93 dogmaLM.AddLocationGroupModifier(operation, toLocationID, groupID, toAttribID, fromItemID, fromAttribID) 94 95 def RemoveLocationGroupModifiers(self, dogmaLM, toLocationID, fromItemID): 96 for operation, groupID, toAttribID, fromAttribID in self.LOCATION_AND_GROUP_MODIFIER_CHANGES: 97 dogmaLM.RemoveLocationGroupModifier(operation, toLocationID, groupID, toAttribID, fromItemID, fromAttribID) 98 99 def AddLocationRequiredSkillModifiers(self, dogmaLM, toLocationID, fromItemID): 100 for operation, skillTypeID, affectedAttributeID, affectingAttributeID in self.SKILL_MODIFIER_CHANGES_FOR_LOCATION: 101 dogmaLM.AddLocationRequiredSkillModifier(operation, toLocationID, skillTypeID, affectedAttributeID, fromItemID, affectingAttributeID) 102 103 def RemoveLocationRequiredSkillModifiers(self, dogmaLM, toLocationID, fromItemID): 104 for operation, skillTypeID, affectedAttributeID, affectingAttributeID in self.SKILL_MODIFIER_CHANGES_FOR_LOCATION: 105 dogmaLM.RemoveLocationRequiredSkillModifier(operation, toLocationID, skillTypeID, affectedAttributeID, fromItemID, affectingAttributeID) 106 107 def AddOwnerRequiredSkillModifiers(self, dogmaLM, ownerID, fromItemID): 108 for operation, affectedSkillTypeID, affectedAttributeID, affectingAttributeID in self.SKILL_MODIFIER_CHANGES_FOR_OWNER: 109 dogmaLM.AddOwnerRequiredSkillModifier(operation, ownerID, affectedSkillTypeID, affectedAttributeID, fromItemID, affectingAttributeID) 110 111 def RemoveOwnerRequiredSkillModifiers(self, dogmaLM, ownerID, fromItemID): 112 for operation, affectedSkillTypeID, affectedAttributeID, affectingAttributeID in self.SKILL_MODIFIER_CHANGES_FOR_OWNER: 113 dogmaLM.RemoveOwnerRequiredSkillModifier(operation, ownerID, affectedSkillTypeID, affectedAttributeID, fromItemID, affectingAttributeID) 114 115 def RefreshEffect(self, dogmaLM, env, itemID, shipID): 116 pass 117 118 119 def GetName(effectID): 120 return dogma_data.get_effect_name(effectID) 121 122 123 def IsDefault(typeID, effectID): 124 for typeEffect in dogma_data.get_type_effects(typeID): 125 if effectID == typeEffect.effectID: 126 if typeEffect.isDefault: 127 return True 128 else: 129 return False 130 131 raise KeyError() 132 133 134 def GetEwarTypeByEffectID(effectID): 135 effect = dogma_data.get_effect(effectID) 136 if effect.electronicChance: 137 return buffBarConst.Slot_Electronic 138 if effect.propulsionChance: 139 return buffBarConst.Slot_Webify 140 ewarType = BUFF_SLOTS_BY_EFFECT_ID.get(effectID, None) 141 return ewarType 142 143 144 BUFF_SLOTS_BY_EFFECT_ID = {const.effectShipModuleFocusedWarpDisruptionScript: buffBarConst.Slot_WarpScrambler, 145 const.effectShipModuleFocusedWarpScramblingScript: buffBarConst.Slot_WarpScramblerMWD, 146 const.effectEwTargetPaint: buffBarConst.Slot_EwTargetPaint, 147 const.effectTargetMaxTargetRangeAndScanResolutionBonusHostile: buffBarConst.Slot_EwRemoteSensorDamp, 148 const.effectTargetGunneryMaxRangeAndTrackingSpeedBonusHostile: buffBarConst.Slot_EwTrackingDisrupt, 149 const.effectTargetGunneryMaxRangeAndTrackingSpeedAndFalloffBonusHostile: buffBarConst.Slot_EwTrackingDisrupt, 150 const.effectTurretWeaponRangeFalloffTrackingSpeedMultiplyTargetHostile: buffBarConst.Slot_EwTrackingDisrupt, 151 const.effectEntitySensorDampen: buffBarConst.Slot_EwRemoteSensorDamp, 152 const.effectSensorBoostTargetedHostile: buffBarConst.Slot_EwRemoteSensorDamp, 153 const.effectNpcEntityTrackingDisruptor: buffBarConst.Slot_EwTrackingDisrupt, 154 const.effectGuidanceDisrupt: buffBarConst.Slot_EwGuidanceDisrupt, 155 const.effectEntityTargetPaint: buffBarConst.Slot_EwTargetPaint, 156 const.effectWarpDisrupt: buffBarConst.Slot_WarpScrambler, 157 const.effectDecreaseTargetSpeed: buffBarConst.Slot_Webify, 158 const.effectWarpScrambleForEntity: buffBarConst.Slot_WarpScrambler, 159 const.effectModifyTargetSpeed2: buffBarConst.Slot_Webify, 160 const.effectConcordWarpScramble: buffBarConst.Slot_WarpScrambler, 161 const.effectConcordModifyTargetSpeed: buffBarConst.Slot_Webify, 162 const.effectWarpScrambleBlockMWDWithNPCEffect: buffBarConst.Slot_WarpScramblerMWD, 163 const.effectWarpDisruptSphere: buffBarConst.Slot_FocusedWarpScrambler, 164 const.effectLeech: buffBarConst.Slot_EwEnergyVampire, 165 const.effectEnergyDestabilizationNew: buffBarConst.Slot_EwEnergyNeut, 166 const.effectEntityCapacitorDrain: buffBarConst.Slot_EwEnergyNeut, 167 const.effectEnergyDestabilizationForStructure: buffBarConst.Slot_EwEnergyNeut, 168 const.effectEnergyNeutralizerFalloff: buffBarConst.Slot_EwEnergyNeut, 169 const.effectEnergyNosferatuFalloff: buffBarConst.Slot_EwEnergyVampire, 170 const.effectWarpScrambleForStructure: buffBarConst.Slot_WarpScrambler, 171 const.effectDecreaseTargetSpeedForStructures: buffBarConst.Slot_Webify, 172 const.effectEssWarpScramble: buffBarConst.Slot_WarpScrambler, 173 const.effectWarpScrambleTargetMWDBlockActivationForEntity: buffBarConst.Slot_WarpScramblerMWD, 174 const.effectEwTestEffectJam: buffBarConst.Slot_Electronic, 175 const.effectEntityTargetJam: buffBarConst.Slot_Electronic, 176 const.effectFighterAbilityECM: buffBarConst.Slot_Electronic, 177 const.effectFighterAbilityEnergyNeutralizer: buffBarConst.Slot_EwEnergyNeut, 178 const.effectFighterAbilityStasisWebifier: buffBarConst.Slot_Webify, 179 const.effectFighterAbilityWarpDisruption: buffBarConst.Slot_WarpScrambler, 180 const.effectFighterAbilityTackle: buffBarConst.Slot_FighterTackle, 181 const.effectRemoteSensorDampFalloff: buffBarConst.Slot_EwRemoteSensorDamp, 182 const.effectRemoteTargetPaintFalloff: buffBarConst.Slot_EwTargetPaint, 183 const.effectShipModuleTrackingDisruptor: buffBarConst.Slot_EwTrackingDisrupt, 184 const.effectRemoteWebifierFalloff: buffBarConst.Slot_Webify, 185 const.effectShipModuleGuidanceDisruptor: buffBarConst.Slot_EwGuidanceDisrupt, 186 const.effectRemoteECMFalloff: buffBarConst.Slot_Electronic, 187 const.effectEntityECMFalloff: buffBarConst.Slot_Electronic, 188 const.effectStructureEwEffectJam: buffBarConst.Slot_Electronic, 189 const.effectStructureEwTargetPaint: buffBarConst.Slot_EwTargetPaint, 190 const.effectStructureEnergyNeutralizerFalloff: buffBarConst.Slot_EwEnergyNeut, 191 const.effectStructureWarpScrambleBlockMWDWithNPCEffect: buffBarConst.Slot_WarpScramblerMWD, 192 const.effectStructureDecreaseTargetSpeed: buffBarConst.Slot_Webify, 193 const.effectStructureTargetMaxTargetRangeAndScanResolutionBonusHostile: buffBarConst.Slot_EwRemoteSensorDamp, 194 const.effectStructureTargetGunneryMaxRangeAndTrackingSpeedAndFalloffBonusHostile: buffBarConst.Slot_EwTrackingDisrupt, 195 const.effectStructureModuleEffectStasisWebifier: buffBarConst.Slot_Webify, 196 const.effectStructureModuleEffectTargetPainter: buffBarConst.Slot_EwTargetPaint, 197 const.effectStructureModuleEffectRemoteSensorDampener: buffBarConst.Slot_EwRemoteSensorDamp, 198 const.effectStructureModuleEffectECM: buffBarConst.Slot_Electronic, 199 const.effectStructureModuleEffectWeaponDisruption: buffBarConst.Slot_EwTrackingDisrupt, 200 const.effectEntityEnergyNeutralizerFalloff: buffBarConst.Slot_EwEnergyNeut, 201 const.effectStarbaseEnergyNeutralizerFalloff: buffBarConst.Slot_EwEnergyNeut, 202 const.effectRemoteSensorDampEntity: buffBarConst.Slot_EwRemoteSensorDamp, 203 const.effectRemoteTargetPaintEntity: buffBarConst.Slot_EwTargetPaint, 204 const.effectNpcEntityWeaponDisruptor: buffBarConst.Slot_EwTrackingDisrupt, 205 const.effectRemoteWebifierEntity: buffBarConst.Slot_Webify, 206 const.effectRemoteTracking: buffBarConst.Slot_RemoteTracking, 207 const.effectEnergyTransfer: buffBarConst.Slot_EnergyTransfer, 208 const.effectTargetMaxTargetRangeAndScanResolutionBonusAssistance: buffBarConst.Slot_SensorBooster, 209 const.effectScanStrengthTargetPercentBonus: buffBarConst.Slot_EccmProjector, 210 const.effectShipModuleRemoteHullRepairer: buffBarConst.Slot_RemoteHullRepair, 211 const.effectTargetArmorRepair: buffBarConst.Slot_RemoteArmorRepair, 212 const.effectShieldTransfer: buffBarConst.Slot_ShieldTransfer, 213 const.effectShipModuleRemoteArmorRepairer: buffBarConst.Slot_RemoteArmorRepair, 214 const.effectShipModuleRemoteArmorMutadaptiveRepairer: buffBarConst.Slot_RemoteArmorMutadaptiveRepairer, 215 const.effectShipModuleAncillaryRemoteArmorRepairer: buffBarConst.Slot_RemoteArmorRepair, 216 const.effectShipModuleRemoteCapacitorTransmitter: buffBarConst.Slot_EnergyTransfer, 217 const.effectShipModuleRemoteShieldBooster: buffBarConst.Slot_ShieldTransfer, 218 const.effectShipModuleAncillaryRemoteShieldBooster: buffBarConst.Slot_ShieldTransfer, 219 const.effectRemoteSensorBoostFalloff: buffBarConst.Slot_SensorBooster, 220 const.effectShipModuleRemoteTrackingComputer: buffBarConst.Slot_RemoteTracking, 221 const.effectRemoteECCMFalloff: buffBarConst.Slot_EccmProjector, 222 const.effectStructureTargetMaxTargetRangeAndScanResolutionBonusAssistance: buffBarConst.Slot_SensorBooster, 223 const.effectStructureTargetGunneryMaxRangeFalloffTrackingSpeedBonusAssistance: buffBarConst.Slot_RemoteTracking, 224 const.effectNpcEntityRemoteHullRepairer: buffBarConst.Slot_RemoteHullRepair, 225 const.effectNpcEntityRemoteArmorRepairer: buffBarConst.Slot_RemoteArmorRepair, 226 const.effectNpcEntityRemoteShieldBooster: buffBarConst.Slot_ShieldTransfer, 227 const.effectNpcBehaviorRemoteArmorRepairer: buffBarConst.Slot_RemoteArmorRepair, 228 const.effectNpcBehaviorRemoteCapacitorTransmitter: buffBarConst.Slot_EnergyTransfer, 229 const.effectNpcBehaviorRemoteShieldBooster: buffBarConst.Slot_ShieldTransfer, 230 const.effectBehaviorECM: buffBarConst.Slot_Electronic, 231 const.effectNpcBehaviorEnergyNeutralizer: buffBarConst.Slot_EwEnergyNeut, 232 const.effectNpcBehaviorEnergyNosferatu: buffBarConst.Slot_EwEnergyVampire, 233 const.effectNpcBehaviorGuidanceDisruptor: buffBarConst.Slot_EwGuidanceDisrupt, 234 const.effectBehaviorSensorDampener: buffBarConst.Slot_EwRemoteSensorDamp, 235 const.effectBehaviorTargetPainter: buffBarConst.Slot_EwTargetPaint, 236 const.effectNpcBehaviorTrackingDisruptor: buffBarConst.Slot_EwTrackingDisrupt, 237 const.effectBehaviorWarpDisrupt: buffBarConst.Slot_WarpScrambler, 238 const.effectBehaviorWarpScramble: buffBarConst.Slot_WarpScramblerMWD, 239 const.effectNpcBehaviorWebifier: buffBarConst.Slot_Webify} 240 LOG_EVENT_NAMES_FOR_EWAR_EFFECTS = {const.effectShipModuleFocusedWarpDisruptionScript: 'warpScrambler', 241 const.effectShipModuleFocusedWarpScramblingScript: 'warpScramblerMWD', 242 const.effectEwTargetPaint: 'ewTargetPaint', 243 const.effectTargetMaxTargetRangeAndScanResolutionBonusHostile: 'ewRemoteSensorDamp', 244 const.effectTargetGunneryMaxRangeAndTrackingSpeedBonusHostile: 'ewTrackingDisrupt', 245 const.effectTargetGunneryMaxRangeAndTrackingSpeedAndFalloffBonusHostile: 'ewTrackingDisrupt', 246 const.effectTurretWeaponRangeFalloffTrackingSpeedMultiplyTargetHostile: 'ewTrackingDisrupt', 247 const.effectEntitySensorDampen: 'ewRemoteSensorDamp', 248 const.effectSensorBoostTargetedHostile: 'ewRemoteSensorDamp', 249 const.effectNpcEntityTrackingDisruptor: 'ewTrackingDisrupt', 250 const.effectGuidanceDisrupt: 'ewGuidanceDisrupt', 251 const.effectEntityTargetPaint: 'ewTargetPaint', 252 const.effectWarpDisrupt: 'warpDisrupt', 253 const.effectDecreaseTargetSpeed: 'webify', 254 const.effectWarpScrambleForEntity: 'warpScrambler', 255 const.effectModifyTargetSpeed2: 'webify', 256 const.effectConcordWarpScramble: 'warpScrambler', 257 const.effectConcordModifyTargetSpeed: 'webify', 258 const.effectWarpScrambleBlockMWDWithNPCEffect: 'warpScramblerMWD', 259 const.effectWarpDisruptSphere: 'focusedWarpScrambler', 260 const.effectLeech: 'ewEnergyVampire', 261 const.effectEnergyDestabilizationNew: 'ewEnergyNeut', 262 const.effectEntityCapacitorDrain: 'ewEnergyNeut', 263 const.effectEnergyDestabilizationForStructure: 'ewEnergyNeut', 264 const.effectEnergyNeutralizerFalloff: 'ewEnergyNeut', 265 const.effectEnergyNosferatuFalloff: 'ewEnergyVampire', 266 const.effectWarpScrambleForStructure: 'warpScrambler', 267 const.effectDecreaseTargetSpeedForStructures: 'webify', 268 const.effectEssWarpScramble: 'warpScrambler', 269 const.effectWarpScrambleTargetMWDBlockActivationForEntity: 'warpScramblerMWD', 270 const.effectEwTestEffectJam: 'electronic', 271 const.effectEntityTargetJam: 'electronic', 272 const.effectFighterAbilityECM: 'electronic', 273 const.effectFighterAbilityEnergyNeutralizer: 'ewEnergyNeut', 274 const.effectFighterAbilityStasisWebifier: 'webify', 275 const.effectFighterAbilityWarpDisruption: 'warpScrambler', 276 const.effectFighterAbilityTackle: 'fighterTackle', 277 const.effectRemoteSensorDampFalloff: 'ewRemoteSensorDamp', 278 const.effectRemoteTargetPaintFalloff: 'ewTargetPaint', 279 const.effectShipModuleTrackingDisruptor: 'ewTrackingDisrupt', 280 const.effectRemoteWebifierFalloff: 'webify', 281 const.effectShipModuleGuidanceDisruptor: 'ewGuidanceDisrupt', 282 const.effectRemoteECMFalloff: 'electronic', 283 const.effectEntityECMFalloff: 'electronic', 284 const.effectStructureEwEffectJam: 'electronic', 285 const.effectStructureEwTargetPaint: 'ewTargetPaint', 286 const.effectStructureEnergyNeutralizerFalloff: 'ewEnergyNeut', 287 const.effectStructureWarpScrambleBlockMWDWithNPCEffect: 'warpScramblerMWD', 288 const.effectStructureDecreaseTargetSpeed: 'webify', 289 const.effectStructureTargetMaxTargetRangeAndScanResolutionBonusHostile: 'ewRemoteSensorDamp', 290 const.effectStructureTargetGunneryMaxRangeAndTrackingSpeedAndFalloffBonusHostile: 'ewTrackingDisrupt', 291 const.effectDoomsdayAOEECM: 'electronic', 292 const.effectDoomsdayAOEPaint: 'ewTargetPaint', 293 const.effectDoomsdayAOENeut: 'ewEnergyNeut', 294 const.effectDoomsdayAOEWeb: 'webify', 295 const.effectDoomsdayAOETrack: 'ewTrackingDisrupt', 296 const.effectDoomsdayAOEDamp: 'ewRemoteSensorDamp', 297 const.effectStructureModuleEffectStasisWebifier: 'webify', 298 const.effectStructureModuleEffectTargetPainter: 'ewTargetPaint', 299 const.effectStructureModuleEffectRemoteSensorDampener: 'ewRemoteSensorDamp', 300 const.effectStructureModuleEffectECM: 'electronic', 301 const.effectStructureModuleEffectWeaponDisruption: 'ewTrackingDisrupt', 302 const.effectEntityEnergyNeutralizerFalloff: 'ewEnergyNeut', 303 const.effectStarbaseEnergyNeutralizerFalloff: 'ewEnergyNeut', 304 const.effectRemoteSensorDampEntity: 'ewRemoteSensorDamp', 305 const.effectRemoteTargetPaintEntity: 'ewTargetPaint', 306 const.effectNpcEntityWeaponDisruptor: 'ewTrackingDisrupt', 307 const.effectRemoteWebifierEntity: 'webify', 308 const.effectBehaviorECM: 'electronic', 309 const.effectNpcBehaviorEnergyNeutralizer: 'ewEnergyNeut', 310 const.effectNpcBehaviorEnergyNosferatu: 'ewEnergyVampire', 311 const.effectNpcBehaviorGuidanceDisruptor: 'ewGuidanceDisrupt', 312 const.effectBehaviorSensorDampener: 'ewRemoteSensorDamp', 313 const.effectBehaviorTargetPainter: 'ewTargetPaint', 314 const.effectNpcBehaviorTrackingDisruptor: 'ewTrackingDisrupt', 315 const.effectBehaviorWarpDisrupt: 'warpScrambler', 316 const.effectBehaviorWarpScramble: 'warpScramblerMWD', 317 const.effectNpcBehaviorWebifier: 'webify'} 318 SKILL_ACCELERATOR_EFFECT_IDS = {const.effectAnalyticalMindIntelligenceBonusModAddIntelligenceLocationChar, 319 const.effectEmpathyCharismaBonusModAddCharismaLocationChar, 320 const.effectInstantRecallMemoryBonusModAddMemoryLocationChar, 321 const.effectIronWillWillpowerBonusModAddWillpowerLocationChar, 322 const.effectSpatialAwarenessPerceptionBonusModAddPerceptionLocationChar} 323 324 def IsBoosterSkillAccelerator(dogmaStaticMgr, boosterRecord): 325 boosterEffectIds = dogmaStaticMgr.GetPassiveFilteredEffectsByType(boosterRecord.boosterTypeID) 326 for effect_id in SKILL_ACCELERATOR_EFFECT_IDS: 327 if effect_id in boosterEffectIds: 328 return True 329 330 return False