targetInBarFighter.py (3135B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\bracketsAndTargets\targetInBarFighter.py 2 import random 3 from carbon.common.script.util import timerstuff 4 from carbonui.primitives.container import Container 5 from carbonui.primitives.sprite import Sprite 6 from carbonui.primitives.transform import Transform 7 from eve.client.script.ui.inflight.bracketsAndTargets.targetInBar import TargetInBar 8 from eve.client.script.ui.inflight.squadrons.fightersHealthGaugeCont import FightersHealthGauge 9 from spacecomponents.client.messages import MSG_ON_TARGET_BRACKET_REMOVED, MSG_ON_TARGET_BRACKET_ADDED 10 import carbonui.const as uiconst 11 12 class TargetInBarFighter(TargetInBar): 13 __guid__ = 'uicls.TargetInBarFighter' 14 15 def ApplyAttributes(self, attributes): 16 TargetInBar.ApplyAttributes(self, attributes) 17 self.fightersHealthGauge = None 18 self.damageTimer = timerstuff.AutoTimer(random.randint(750, 1000), self.UpdateDamage) 19 20 def AddUIObjects(self, slimItem, itemID = None, **kwargs): 21 self.itemID = itemID 22 barAndImageCont = Container(parent=self, name='barAndImageCont', align=uiconst.TOTOP, height=100, state=uiconst.UI_NORMAL) 23 self.barAndImageCont = barAndImageCont 24 self.iconSize = iconSize = 94 25 self.icon_container = Transform(parent=barAndImageCont, name='iconPar', width=iconSize, height=iconSize, align=uiconst.CENTERTOP, state=uiconst.UI_DISABLED, scalingCenter=(0.5, 0.5)) 26 self.AddUIDeathObjects(80) 27 self.fightersHealthGauge = FightersHealthGauge(parent=self.icon_container, align=uiconst.TOTOP, height=86, top=4) 28 self.fightersHealthGauge.LoadBySlimItem(slimItem) 29 circle = Sprite(name='circle', align=uiconst.CENTER, parent=self.icon_container, width=iconSize + 2, height=iconSize + 2, texturePath='res:/UI/Texture/classes/Target/outerCircle.png', color=(1.0, 1.0, 1.0, 0.5), state=uiconst.UI_DISABLED) 30 self.circle = circle 31 self.UpdateDamage() 32 self.barAndImageCont.hint = self.fightersHealthGauge.hint 33 bp = sm.GetService('michelle').GetBallpark() 34 bp.componentRegistry.SendMessageToItem(self.itemID, MSG_ON_TARGET_BRACKET_ADDED, self) 35 36 def UpdateDamage(self): 37 bp = sm.GetService('michelle').GetBallpark() 38 if bp is None: 39 self.damageTimer = None 40 return 41 dmg = bp.GetDamageState(self.itemID) 42 if dmg is None or not self.fightersHealthGauge: 43 return 44 self.SetDamage(dmg) 45 self.barAndImageCont.hint = self.fightersHealthGauge.hint 46 47 def SetDamage(self, state, *args): 48 damage = state[0] 49 self.fightersHealthGauge.UpdateFighters(damage=damage) 50 51 def SetSquadronSize(self, squadronSize): 52 self.fightersHealthGauge.SetSquadronSize(squadronSize) 53 self.fightersHealthGauge.UpdateFighters() 54 55 def _OnClose(self, *args): 56 bp = sm.GetService('michelle').GetBallpark() 57 bp.componentRegistry.SendMessageToItem(self.itemID, MSG_ON_TARGET_BRACKET_REMOVED) 58 self.damageTimer = None 59 TargetInBar._OnClose(self, args)