NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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