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