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

deathzoneSvc.py (1769B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\deathzoneSvc.py
      2 import gametime
      3 from carbon.common.script.sys.service import Service
      4 from enum import Enum
      5 from eve.client.script.ui.services.deathzone.deathzoneUIController import DeathZoneUIController
      6 
      7 class DeathzoneSvc(Service):
      8     __guid__ = 'svc.deathzoneSvc'
      9     __displayname__ = 'Deathzone client service'
     10     __exportedcalls__ = {'InDeathZone': [],
     11      'GetHullDamageFraction': []}
     12     __startupdependencies__ = ['machoNet', 'heroNotification', 'sceneManager']
     13     __notifyevents__ = ['OnSessionChanged', 'OnDeathzoneStateUpdate']
     14     placeholderDeathzoneUITasklet = None
     15     trackingData = None
     16 
     17     def Run(self, *args, **kwargs):
     18         super(DeathzoneSvc, self).Run(*args, **kwargs)
     19         self.deathZoneUIController = DeathZoneUIController(self.heroNotification, self.sceneManager)
     20         self.trackingData = None
     21 
     22     def InDeathZone(self):
     23         return self.trackingData is not None
     24 
     25     def GetHullDamageFraction(self):
     26         if self.trackingData:
     27             return self.trackingData.GetHullDamageFractionPerTick(gametime.GetSimTime())
     28         return 0.0
     29 
     30     def OnSessionChanged(self, isremote, session, change):
     31         if 'solarsystemid2' in change:
     32             self.trackingData = None
     33             self.deathZoneUIController.Remove()
     34 
     35     def OnDeathzoneStateUpdate(self, solarsystemID, shipID, trackingData):
     36         if solarsystemID != session.solarsystemid2 or shipID != session.shipid:
     37             return
     38         self.trackingData = trackingData
     39         if trackingData is None:
     40             self.deathZoneUIController.EnterSafeZoneState()
     41         else:
     42             self.deathZoneUIController.EnterDeathZoneState(trackingData)