remoteEffect.py (2220B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dogma\effects\remoteEffect.py 2 import ccpProfile 3 from dogma.effects import Effect 4 from dogma.effects.tracker import DogmaEffectTracker 5 from logging import getLogger 6 from shipgroup import get_ship_class_id 7 logger = getLogger(__name__) 8 9 class RemoteEffect(Effect): 10 11 def _LogTryRemoteEffect(self, dogma_lm, event_class, actor_id, item_id, target_ship_id, change_amount = None): 12 with ccpProfile.Timer('RemoteEffect::_LogTryRemoteEffect'): 13 if not event_class: 14 return 15 if not actor_id: 16 return 17 actor_ship_id = dogma_lm.GetShipForPilot(actor_id) 18 if not actor_ship_id or not target_ship_id: 19 return 20 target_id = dogma_lm.GetPilot(target_ship_id) 21 if not target_id: 22 return 23 actor_ship_type_id = getattr(dogma_lm.inventory2.GetItem(actor_ship_id), 'typeID', None) 24 target_ship_type_id = getattr(dogma_lm.inventory2.GetItem(target_ship_id), 'typeID', None) 25 if not actor_ship_type_id or not target_ship_type_id: 26 return 27 target_ship_class = get_ship_class_id(target_ship_type_id) 28 module_type_id = getattr(dogma_lm.inventory2.GetItem(item_id), 'typeID', None) 29 if not module_type_id: 30 return 31 target_corp_id, target_alliance_id, target_faction_id = dogma_lm.GetCharacterOrganization(target_id) 32 solar_system_id = dogma_lm.locationID 33 solar_system = cfg.mapSystemCache.Get(solar_system_id) 34 constellation_id = solar_system.constellationID 35 region_id = solar_system.regionID 36 try: 37 DogmaEffectTracker.track_remote_support_effect(event_class, actor_id, actor_ship_id, actor_ship_type_id, target_id, target_ship_id, target_ship_type_id, target_ship_class, target_corp_id, target_alliance_id, target_faction_id, change_amount, module_type_id, solar_system_id, constellation_id, region_id) 38 except Exception as exc: 39 logger.exception('Failed to track remote support effect {}: {}'.format(event_class, exc))