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

entosisCaptureTarget.py (3879B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\entosis\spacecomponents\client\entosisCaptureTarget.py
      2 import logging
      3 from carbon.common.lib.const import SEC
      4 import entosis.ui.entosisController
      5 from entosis.ui.entosisTimer import EntosisTimer
      6 from spacecomponents.client.display import EntryData, TIMER_ICON
      7 from spacecomponents.common.components.component import Component
      8 from spacecomponents.client.messages import MSG_ON_ADDED_TO_SPACE, MSG_ON_SLIM_ITEM_UPDATED, MSG_ON_BRACKET_CREATED
      9 logger = logging.getLogger(__name__)
     10 
     11 class EntosisCaptureTarget(Component):
     12     controllingTeamId = None
     13     scoringTeamId = None
     14     scoringAttributes = None
     15     entosisCounterController = None
     16     defenderTeamId = None
     17     twoDirectionalCapture = False
     18 
     19     def __init__(self, itemID, typeID, attributes, componentRegistry):
     20         Component.__init__(self, itemID, typeID, attributes, componentRegistry)
     21         self.SubscribeToMessage(MSG_ON_ADDED_TO_SPACE, self._OnAddedToSpace)
     22         self.SubscribeToMessage(MSG_ON_SLIM_ITEM_UPDATED, self._OnSlimItemUpdated)
     23         self.SubscribeToMessage(MSG_ON_BRACKET_CREATED, self._OnBracketCreated)
     24 
     25     def _OnAddedToSpace(self, slimItem):
     26         self.__UpdateEntosisScoreFromSlimItem(slimItem)
     27 
     28     def _OnSlimItemUpdated(self, slimItem):
     29         self.__UpdateEntosisScoreFromSlimItem(slimItem)
     30 
     31     def _OnBracketCreated(self, bracket, slimItem):
     32         timer = EntosisTimer(parent=bracket)
     33         self.entosisCounterController = entosis.ui.entosisController.EntosisCounterController(timer, bracket, self.componentRegistry, slimItem, self)
     34 
     35     def __UpdateEntosisScoreFromSlimItem(self, slimItem):
     36         if slimItem.entosis_score is not None:
     37             self.controllingTeamId, self.scoringTeamId, self.scoringAttributes, self.defenderTeamId = slimItem.entosis_score
     38             if self.scoringAttributes and self.entosisCounterController is not None:
     39                 self.entosisCounterController.SetScoreValues(self.controllingTeamId, self.scoringTeamId, self.scoringAttributes, self.defenderTeamId)
     40 
     41     def GetCaptureTime(self):
     42         return self.attributes.captureTimeSeconds
     43 
     44     def IsTwoDirectionalCaptureTarget(self):
     45         return self.twoDirectionalCapture
     46 
     47     def SetTimerColor(self, foregroundColor, backgroundColor, arrowColor):
     48         if self.entosisCounterController is not None:
     49             self.entosisCounterController.timer.SetTimerColor(foregroundColor, backgroundColor, arrowColor)
     50 
     51     def SetTimerInvertedMode(self, isInverted):
     52         if self.entosisCounterController is not None:
     53             self.entosisCounterController.SetTimerInvertedMode(isInverted)
     54 
     55     @staticmethod
     56     def GetAttributeInfo(typeID, attributes, instance, localization):
     57         from eve.client.script.ui.control.entries.header import Header
     58         from eve.client.script.ui.control.entries.label_text import LabelTextSides
     59         headerLabel = localization.GetByLabel('UI/Inflight/SpaceComponents/EntosisCaptureTarget/InfoAttributesHeader')
     60         attributeEntries = [EntryData(Header, headerLabel), EntryData(LabelTextSides, localization.GetByLabel('UI/Inflight/SpaceComponents/EntosisCaptureTarget/BaseCaptureTimeLabel'), localization.GetByLabel('UI/Inflight/SpaceComponents/EntosisCaptureTarget/BaseCaptureTimeValue', duration=long(attributes.captureTimeSeconds * SEC)), iconID=TIMER_ICON)]
     61         if attributes.defensiveRegenRate:
     62             regenTimeSeconds = attributes.captureTimeSeconds / attributes.defensiveRegenRate
     63             attributeEntries.append(EntryData(LabelTextSides, localization.GetByLabel('UI/Inflight/SpaceComponents/EntosisCaptureTarget/DefensiveRegenTimeLabel'), localization.GetByLabel('UI/Inflight/SpaceComponents/EntosisCaptureTarget/DefensiveRegenTimeValue', duration=long(regenTimeSeconds * SEC)), iconID=TIMER_ICON))
     64         return attributeEntries