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

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)